diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java index 7be788b6e..38aec3039 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java @@ -10,7 +10,7 @@ public class BodyReaderHttpServletRequestWrapper extends XssHttpServletRequestWr public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException { super(request); - StringBuffer stringBuilder = new StringBuffer(); + StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; try { InputStream inputStream = request.getInputStream(); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java b/mallinkBApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java index 7be788b6e..38aec3039 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java @@ -10,7 +10,7 @@ public class BodyReaderHttpServletRequestWrapper extends XssHttpServletRequestWr public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException { super(request); - StringBuffer stringBuilder = new StringBuffer(); + StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; try { InputStream inputStream = request.getInputStream(); diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java b/mallinkCApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java index 7be788b6e..38aec3039 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java @@ -10,7 +10,7 @@ public class BodyReaderHttpServletRequestWrapper extends XssHttpServletRequestWr public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException { super(request); - StringBuffer stringBuilder = new StringBuffer(); + StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; try { InputStream inputStream = request.getInputStream(); diff --git a/mallinkCallback/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java b/mallinkCallback/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java index 7be788b6e..38aec3039 100644 --- a/mallinkCallback/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java +++ b/mallinkCallback/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java @@ -10,7 +10,7 @@ public class BodyReaderHttpServletRequestWrapper extends XssHttpServletRequestWr public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException { super(request); - StringBuffer stringBuilder = new StringBuffer(); + StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; try { InputStream inputStream = request.getInputStream(); diff --git a/mallinkSchedule/src/main/java/com/iformall/controller/UserTagsController.java b/mallinkSchedule/src/main/java/com/iformall/controller/UserTagsController.java new file mode 100644 index 000000000..63864d432 --- /dev/null +++ b/mallinkSchedule/src/main/java/com/iformall/controller/UserTagsController.java @@ -0,0 +1,50 @@ +package com.iformall.controller; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.msg.WxMsgRecord; +import com.iformall.enums.EnumAssignTagsTrigger; +import com.iformall.mq.MqBaseProducer; +import com.iformall.mq.impl.RabbitMqMessageProducer; +import com.iformall.service.WxCUserBasicInfoService; +import com.iformall.service.WxCUserTagsService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + + +@RestController +@Api(description = "登录相关接口") +public class UserTagsController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxCUserTagsService wxCUserTagsService; + + @Autowired + WxCUserBasicInfoService wxCUserBasicInfoService; + + @GetMapping("/userTag") + public void mqtest() { + WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo(); + + int pageIndex = 1; + final int pageSize = 1000; + + PageInfo page; + do{ + page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageIndex++, pageSize); + page.getList().stream().forEach(cubi -> { + long lStart = System.currentTimeMillis(); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_SCAN, cubi); + logger.info("user tag cost time: {}", System.currentTimeMillis() - lStart); + }); + } while ((page.isHasNextPage())); + } +} \ No newline at end of file diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java index 8a6011f40..7ac17824f 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java @@ -22,7 +22,8 @@ public class WxCUserTagsSchedule { @Autowired WxCUserBasicInfoService wxCUserBasicInfoService; - @Scheduled(cron = "0 0 1 25 * ?") // 每月25日凌晨01:00对会员列表扫描补录标签 + // TODO 先不执行打标签操作了, 数据量太大,导致数据库CPU 100% + //@Scheduled(cron = "0 0 0 25 * ?") // 每月25日凌晨01:00对会员列表扫描补录标签 //@Scheduled(cron = "0 */5 * * * ?") // 测试1分钟一次 public void wxCUserTagsSchedule() { WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo(); @@ -33,7 +34,7 @@ public class WxCUserTagsSchedule { PageInfo page; do{ page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageIndex++, pageSize); - page.getList().parallelStream().forEach(cubi -> { + page.getList().stream().forEach(cubi -> { wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_SCAN, cubi); }); } while ((page.isHasNextPage())); diff --git a/mallinkService/src/main/java/com/iformall/service/ExcelService.java b/mallinkService/src/main/java/com/iformall/service/ExcelService.java index b5ab9e51d..bfe9e93fc 100644 --- a/mallinkService/src/main/java/com/iformall/service/ExcelService.java +++ b/mallinkService/src/main/java/com/iformall/service/ExcelService.java @@ -1,6 +1,8 @@ package com.iformall.service; +import cn.afterturn.easypoi.csv.CsvExportUtil; +import cn.afterturn.easypoi.csv.entity.CsvExportParams; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; @@ -36,19 +38,20 @@ public class ExcelService { defaultExport(list, pojoClass, fileName, response, exportParams, false); } - public void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, HttpServletResponse response, boolean template) - { + public void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, HttpServletResponse response, boolean template) { defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF), template); } - public void exportExcel(List> list, String fileName, HttpServletResponse response) - { + public void exportCsv(List list, String title, String sheetName, Class pojoClass, String fileName, HttpServletResponse response, boolean template) { + defaultExportCsv(list, pojoClass, fileName, response, new CsvExportParams(), template); + } + + public void exportExcel(List> list, String fileName, HttpServletResponse response) { defaultExport(list, fileName, response); } - private void defaultExport(List list, Class pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams, boolean template) - { - Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list); + private void defaultExport(List list, Class pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams, boolean template) { + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list); if (workbook != null) { if (template) { Sheet sheetAt = workbook.getSheetAt(0); @@ -65,24 +68,33 @@ public class ExcelService { downLoadExcel(fileName, response, workbook); } - private void defaultExport(List> list, String fileName, HttpServletResponse response) - { + private void defaultExportCsv(List list, Class pojoClass, String fileName, HttpServletResponse response, CsvExportParams exportParams, boolean template) { + try { + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + CsvExportUtil.exportCsv(exportParams, pojoClass, list, response.getOutputStream()); + } catch (IOException e) { + throw new MallinkException(ErrorCode.EXCEL_EXPORT_ERROR.getCode(), e.getMessage()); + } + } + + private void defaultExport(List> list, String fileName, HttpServletResponse response) { Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF); - if (workbook != null); - downLoadExcel(fileName, response, workbook); + if (workbook != null) ; + downLoadExcel(fileName, response, workbook); } - private void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) - { + private void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) { try { response.setCharacterEncoding("UTF-8"); response.setHeader("content-Type", "application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); - workbook.write(response.getOutputStream()); } - catch (IOException e) - { - throw new MallinkException(ErrorCode.EXCEL_EXPORT_ERROR.getCode(),e.getMessage()); + workbook.write(response.getOutputStream()); + } catch (IOException e) { + throw new MallinkException(ErrorCode.EXCEL_EXPORT_ERROR.getCode(), e.getMessage()); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java index 7fe1859d2..ba9670aa7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java @@ -99,7 +99,7 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService { for (WxActivityJoin activityJoin : list) { String answer = activityJoin.getAnswer(); if (StringUtils.isNotEmpty(answer)) { - StringBuffer quesAnswer = new StringBuffer(); + StringBuilder quesAnswer = new StringBuilder(); List wxActivityJoinQuestionAnswers = JSONArray.parseArray(answer, WxActivityJoinQuestionAnswer.class); for (int i = 0; i < wxActivityJoinQuestionAnswers.size(); i++) { WxActivityJoinQuestionAnswer wxActivityJoinQuestionAnswer = wxActivityJoinQuestionAnswers.get(i); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java index da80b3454..9dc9a97e4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java @@ -213,7 +213,7 @@ public class WxCouponInjectServiceImpl implements WxCouponInjectService { if(cUsers.size()==0){ return new ResultData(ErrorCode.MSG_NO_VALID_PHONE); } - StringBuffer sb=new StringBuffer(); + StringBuilder sb=new StringBuilder(); for(WxCUser user:cUsers){ String phone = user.getPhone(); if(null!=phone && !phone.equals("")){ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 8bb5d2897..06413212b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -314,7 +314,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } } }); - excelService.exportExcel(list, null, filename, WxCouponOrderBVo.class, filename + ".xlsx", response, false); + excelService.exportCsv(list, null, filename, WxCouponOrderBVo.class, filename + ".csv", response, false); } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index aee6f8a36..4b31c2d05 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -284,7 +284,7 @@ public class WxCouponServiceImpl implements WxCouponService { } if (share) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); boolean flag = false; for (int i = 0, size = merchantParamList.size(); i < size; i++) { JSONObject jsonObject = merchantParamList.get(i); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index b46126115..7a250b8de 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -1505,7 +1505,7 @@ public class WxFlowServiceImpl implements WxFlowService { int length=10; String base = "abcdefghijklmnopqrstuvwxyz"; Random random = new Random(); - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); diff --git a/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java b/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java index 48451260a..d5d4889ef 100644 --- a/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java @@ -111,7 +111,7 @@ public class HttpUtil { if(code == 200){ //请求成功 in = new BufferedReader(new InputStreamReader(response.getEntity() .getContent(),"utf-8")); - StringBuffer sb = new StringBuffer(""); + StringBuilder sb = new StringBuilder(""); String line = ""; String NL = System.getProperty("line.separator"); while ((line = in.readLine()) != null) { @@ -175,7 +175,7 @@ public class HttpUtil { if(code == 200){ //请求成功 in = new BufferedReader(new InputStreamReader(response.getEntity() .getContent(),"utf-8")); - StringBuffer sb = new StringBuffer(""); + StringBuilder sb = new StringBuilder(""); String line = ""; String NL = System.getProperty("line.separator"); while ((line = in.readLine()) != null) { diff --git a/mallinkService/src/main/java/com/iformall/utils/PriceUtil.java b/mallinkService/src/main/java/com/iformall/utils/PriceUtil.java index 3a4b1a27d..de6a31b2c 100644 --- a/mallinkService/src/main/java/com/iformall/utils/PriceUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/PriceUtil.java @@ -76,7 +76,7 @@ public class PriceUtil { * @return 对应的汉语大写 */ public static String number2CNMontrayUnit(BigDecimal numberOfMoney) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); // -1, 0, or 1 as the value of this BigDecimal is negative, zero, or // positive. int signum = numberOfMoney.signum(); diff --git a/mallinkService/src/main/java/com/iformall/utils/RandomUtils.java b/mallinkService/src/main/java/com/iformall/utils/RandomUtils.java index dd149ac25..cebf73f3b 100644 --- a/mallinkService/src/main/java/com/iformall/utils/RandomUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/RandomUtils.java @@ -13,7 +13,7 @@ public class RandomUtils { }; public static String getStr(int lenght) { - StringBuffer str = new StringBuffer(); + StringBuilder str = new StringBuilder(); for(int i = 0;i < lenght; i++) { Double number=Math.random()*(randomValues.length-1); str.append(randomValues[number.intValue()]); @@ -22,7 +22,7 @@ public class RandomUtils { } public static String getNum(int lenght) { - StringBuffer str = new StringBuffer(); + StringBuilder str = new StringBuilder(); for(int i = 0;i < lenght; i++) { Double number=Math.random()*(randomNums.length-1); str.append(randomNums[number.intValue()]); diff --git a/mallinkService/src/main/java/com/iformall/utils/XmlUtil.java b/mallinkService/src/main/java/com/iformall/utils/XmlUtil.java index 16c3dea00..1b31af06a 100644 --- a/mallinkService/src/main/java/com/iformall/utils/XmlUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/XmlUtil.java @@ -437,7 +437,7 @@ public final class XmlUtil { * 将SortedMap 集合转化成 xml格式 */ public static String getRequestXml(SortedMap parameters){ - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.append(""); Set es = parameters.entrySet(); Iterator it = es.iterator(); diff --git a/mallinkService/src/main/java/com/iformall/utils/car/BoLinkUtil.java b/mallinkService/src/main/java/com/iformall/utils/car/BoLinkUtil.java index 6774431a6..4e4f0ac9d 100644 --- a/mallinkService/src/main/java/com/iformall/utils/car/BoLinkUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/car/BoLinkUtil.java @@ -74,7 +74,7 @@ public class BoLinkUtil { public static String md5(String data) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(data.getBytes()); - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); byte[] bits = md.digest(); for(int i=0;i @@ -742,7 +742,7 @@ left join wx_c_user cu on cu.id = co.c_user_id left join wx_merchant_b_user bu on co.b_user_id = bu.id left join wx_merchant m on m.id = bu.merchant_id - left join wx_merchant_subsidy ms on co.id = ms.coupon_order_id + left join wx_merchant_subsidy ms on co.id = ms.coupon_order_id and ms.type = 1 where co.id = #{id} and c.id = co.coupon_id diff --git a/mallinkSysAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java b/mallinkSysAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java index 7be788b6e..38aec3039 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/interceptor/BodyReaderHttpServletRequestWrapper.java @@ -10,7 +10,7 @@ public class BodyReaderHttpServletRequestWrapper extends XssHttpServletRequestWr public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException { super(request); - StringBuffer stringBuilder = new StringBuffer(); + StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; try { InputStream inputStream = request.getInputStream();