From 45494aee163e5938c6b92157c58c41ac38527cf6 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 17:58:58 +0800 Subject: [PATCH 01/16] =?UTF-8?q?[A=E7=AB=AF=E4=BC=9A=E5=91=98=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=85=A5][=E4=BF=AE=E5=A4=8D]:=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=AF=BC=E5=85=A5=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 30 ++-- .../service/WxCUserBasicInfoService.java | 4 +- .../impl/WxCUserBasicInfoServiceImpl.java | 163 ++++++++++-------- 3 files changed, 114 insertions(+), 83 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index b3870c09e..8629100aa 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -39,6 +39,8 @@ import static com.iformall.domain.po.WxCouponOrder.Field.CreateDate_DESC; public class WxCUserBasicInfoController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); + private String importMemPrev = "importmem/"; + @Autowired private WxCUserBasicInfoService wxCUserBasicInfoService; @@ -223,10 +225,11 @@ public class WxCUserBasicInfoController extends BaseController { } @RequestMapping("/exportData") - public void exportData(HttpServletRequest request, HttpServletResponse response) { + public void exportData(@ModelAttribute WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) { logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::exportData"); - - wxCUserBasicInfoService.exportData(request, response, getTenantId()); + if(basicInfo == null) basicInfo = new WxCUserBasicInfo(); + basicInfo.setTenantId(getTenantId()); + wxCUserBasicInfoService.exportData(basicInfo, request, response); } @@ -242,27 +245,28 @@ public class WxCUserBasicInfoController extends BaseController { public ResultData importTemplate(@RequestParam("file") MultipartFile file) { logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::importTemplate"); if (file.isEmpty()) { - throw new MallinkException(500, "上传文件不能为空"); + throw new MallinkException(Result.ERROR, "上传文件不能为空"); } //得到当前用户ID - String userId = getUser().getId().toString(); + String userId = "" + getUser().getId(); + String importKey = importMemPrev + userId; //查询当前用户得到的值是否为空,为空继续,不为空,返回模板正在导入 - Boolean allCount = stringRedisTemplate.opsForHash().hasKey(userId, "allCount"); + Boolean allCount = stringRedisTemplate.opsForHash().hasKey(importKey, "allCount"); if (allCount) { return new ResultData(Result.SUCCESS, "模板正在导入"); } - stringRedisTemplate.opsForHash().putIfAbsent(userId, "allCount", 0 + ""); - stringRedisTemplate.opsForHash().putIfAbsent(userId, "allSuccessCount", 0 + ""); - stringRedisTemplate.opsForHash().putIfAbsent(userId, "successCount", ""); - stringRedisTemplate.opsForHash().putIfAbsent(userId, "failCount", ""); - wxCUserBasicInfoService.importTemplate(file, getTenantId(), userId); - stringRedisTemplate.expire(userId,30,TimeUnit.MINUTES); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", 0 + ""); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allSuccessCount", 0 + ""); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "successCount", ""); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", ""); + wxCUserBasicInfoService.importTemplate(file, getTenantId(), importKey); + stringRedisTemplate.expire(importKey,30,TimeUnit.MINUTES); return new ResultData(Result.SUCCESS, "模板正在导入"); } @GetMapping("/queryTemplateCount") public ResultData queryTemplateCount() { - String importKey = "import-" + getUser().getId(); + String importKey = importMemPrev + getUser().getId(); Map entries = stringRedisTemplate.opsForHash().entries(importKey); logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>1"); if (entries.size() < 4) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index 2fa33087a..0c62edd06 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -99,11 +99,11 @@ public interface WxCUserBasicInfoService { long findCountByScore(WxCUserBasicInfoDto dto); - void exportData(HttpServletRequest request, HttpServletResponse response, String tenantId); + void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response); void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId); - ResultData importTemplate(MultipartFile file, String tenantId, String userId); + ResultData importTemplate(MultipartFile file, String tenantId, String importKey); long findCount(WxCUserBasicInfoDto dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index ff36a341e..d8d84c6aa 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -8,12 +8,12 @@ import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxCUserTags; import com.iformall.domain.po.WxTags; import com.iformall.domain.vo.CUserBaseInfoT; import com.iformall.domain.vo.CUserBaseVo; @@ -153,10 +153,8 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { @Override - public void exportData(HttpServletRequest request, HttpServletResponse response, String tenantId) { - WxCUserBasicInfo basicInfoQ = new WxCUserBasicInfo(); - basicInfoQ.setTenantId(tenantId); - List memberlist = wxCUserBasicInfoMapper.findVoList(basicInfoQ); + public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) { + List memberlist = wxCUserBasicInfoMapper.findVoList(basicInfo); XSSFWorkbook workbook; String filepath = Constant.fileDirectory; @@ -514,31 +512,55 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { @Async @Override - public ResultData importTemplate(MultipartFile file, String tenantId, String userId) { + public ResultData importTemplate(MultipartFile file, String tenantId, String importKey) { final IdWorker idWorker = IdWorker.get(); - String importKey = "import-" + userId; - - //默认添加到redis里 - stringRedisTemplate.opsForHash().put(importKey, "allCount", ""); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "0"); - ImportParams params = new ImportParams(); // 需要验证 params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); + IExcelDataHandler handler = new UserExcelHandler(); + handler.setNeedHandlerFields(new String[] { "手机号" }); params.setNeedVerify(true); + ExcelImportResult datalist = null; try { - ExcelImportResult datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); - List successList = datalist.getList(); - List failList = datalist.getFailList(); + datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); + } catch (Exception e) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR); + } + + if(datalist == null) { + logger.error("导入模板失败: 模板数据解析失败"); + return new ResultData(ErrorCode.MEM_IMPORT_ERR); + } + + List successList = datalist.getList(); + List failList = datalist.getFailList(); + + int total = successList.size() + failList.size(); + int all_success = successList.size(); + int all_fail = failList.size(); + + WxTags wxTagsQ = new WxTags(); + List tagList = wxTagsMapper.findList(wxTagsQ); + + try { + //添加到redis里 + stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); + stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); + logger.info("验证通过的数量: " + successList.size()); logger.info("验证未通过的数量: " + failList.size()); - successList.parallelStream().forEach(uBase->{ + successList.parallelStream().forEach(uBase -> { if (StringUtils.isBlank(uBase.getPhone())) { logger.error("手机号为空", uBase.toString()); @@ -546,6 +568,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { } WxCUserBasicInfo userBase = InitUserBaseInfo(uBase, tenantId); if (userBase == null) { + logger.error("userBase为null", uBase.toString()); return; } @@ -568,24 +591,12 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { oldUserBase.setUpdateDate(new Date()); oldUserBase.setCreateDate(userBase.getCreateDate()); } else { - // check c_user 是否存在 - WxCUser cUserQ = new WxCUser(); - cUserQ.setTenantId(tenantId); - cUserQ.setPhone(userBase.getPhone()); - List cUsers = wxCUserMapper.findList(cUserQ); - if (cUsers.size() > 0) { - WxCUser wUser = cUsers.get(0); - if (wUser != null) { - userBase.setId(wUser.getId()); - userBase.setNickName(wUser.getNickName()); - } - } else { - userBase.setId(idWorker.nextId()); - } + userBase.setId(idWorker.nextId()); } // update 昵称 - if (oldUserBase != null) { + { + // check c_user 是否存在 WxCUser cUserQ = new WxCUser(); cUserQ.setTenantId(tenantId); cUserQ.setPhone(userBase.getPhone()); @@ -594,8 +605,13 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { WxCUser user = userList.get(0); if (user != null) { if (oldUserBase != null) { - oldUserBase.setNickName(user.getNickName()); + if(oldUserBase != null) { + oldUserBase.setNickName(user.getNickName()); + } + userBase.setId(user.getId()); + userBase.setNickName(user.getNickName()); } else { + userBase.setNickName(user.getNickName()); } } @@ -603,55 +619,66 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { } if (oldUserBase != null) { + logger.info("update user base: " + oldUserBase.getId()); wxCUserBasicInfoMapper.updateByPrimaryKeySelective(oldUserBase); } else { - wxCUserBasicInfoMapper.insertSelective(userBase); + logger.info("insert user base: " + userBase.getId()); + try { + wxCUserBasicInfoMapper.insertSelective(userBase); + } catch (Exception e) { + logger.error(e.getMessage()); + return; + } } // update tags - if (StringUtils.isNotBlank(userBase.getTagNames())) { - // get tag ids - String tagNames = userBase.getTagNames(); - List tagIdList = new ArrayList<>(); - for (String tagName : tagNames.split("/")) { - List wxTagsList = wxTagsMapper.getByName(tagName); - if (wxTagsList.size()==1) { - WxTags wxTags = wxTagsList.get(0); - tagIdList.add(Long.valueOf(wxTags.getId())); + try { + if (StringUtils.isNotBlank(userBase.getTagNames())) { + // get tag ids + String tagNames = userBase.getTagNames(); + List tagIdList = new ArrayList<>(); + for (String tagName : tagNames.split("/")) { + for(WxTags tag: tagList) { + if(tagName.equals(tag.getName())) { + tagIdList.add(Long.valueOf(tag.getId())); + break; + } + } } - } - if (oldUserBase != null){ - wxCUserTagsService.assignTags(tagIdList,oldUserBase); - }else{ - wxCUserTagsService.assignTags(tagIdList,userBase); + if (oldUserBase != null){ + wxCUserTagsService.assignTags(tagIdList,oldUserBase); + }else{ + wxCUserTagsService.assignTags(tagIdList,userBase); + } } - } - //触发自动打标签 - if (oldUserBase != null) { - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,oldUserBase); - } - else{ - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase); - } - - // 成长值 - if (StringUtils.isNotBlank(uBase.getPoins())) { + //触发自动打标签 if (oldUserBase != null) { - wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, oldUserBase, uBase.getPoins()); - } else { - wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, userBase, uBase.getPoins()); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,oldUserBase); + } + else{ + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase); + } + + // 成长值 + if (StringUtils.isNotBlank(uBase.getPoins())) { + if (oldUserBase != null) { + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, oldUserBase, uBase.getPoins()); + } else { + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, userBase, uBase.getPoins()); + } } + } catch (Exception e) { + logger.error(e.getMessage()); + logger.error("打标签+成长值失败--继续导入"); + return; } //记数 - stringRedisTemplate.opsForHash().increment(userId,"successCount",1); + stringRedisTemplate.opsForHash().increment(importKey,"successCount",1); }); } catch (Exception e) { - stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); + stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + all_fail); e.printStackTrace(); logger.error("导入模板失败:"+e.getMessage()); } From fcb58afa5275629964d4cab03c823609de2f01c0 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 19:38:23 +0800 Subject: [PATCH 02/16] =?UTF-8?q?[A=E7=AB=AF=E4=BC=9A=E5=91=98=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=85=A5][=E4=BF=AE=E5=A4=8D]:=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=AF=BC=E5=85=A5=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 10 +++---- .../impl/WxCUserBasicInfoServiceImpl.java | 26 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 8629100aa..a08a72f38 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -257,7 +257,7 @@ public class WxCUserBasicInfoController extends BaseController { } stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", 0 + ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allSuccessCount", 0 + ""); - stringRedisTemplate.opsForHash().putIfAbsent(importKey, "successCount", ""); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "processCount", ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", ""); wxCUserBasicInfoService.importTemplate(file, getTenantId(), importKey); stringRedisTemplate.expire(importKey,30,TimeUnit.MINUTES); @@ -275,7 +275,7 @@ public class WxCUserBasicInfoController extends BaseController { } String allCount = entries.get("allCount").toString(); String allSuccessCount = entries.get("allSuccessCount").toString(); - String successCount = entries.get("successCount").toString(); + String processCount = entries.get("processCount").toString(); String failCount = entries.get("failCount").toString(); if (StringUtils.isNotBlank(failCount) && allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); @@ -283,16 +283,16 @@ public class WxCUserBasicInfoController extends BaseController { //完全失败 stringRedisTemplate.opsForHash().delete(importKey, "allCount"); stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); - stringRedisTemplate.opsForHash().delete(importKey, "successCount"); + stringRedisTemplate.opsForHash().delete(importKey, "processCount"); stringRedisTemplate.opsForHash().delete(importKey, "failCount"); return new ResultData(ErrorCode.MEM_IMPORT_ERR); } //导入完成 - if (StringUtils.isNotBlank(allSuccessCount) && allSuccessCount.equals(successCount)) { + if (StringUtils.isNotBlank(allSuccessCount) && allSuccessCount.equals(processCount)) { ResultData ok = new ResultData(Result.SUCCESS, "ok", entries); stringRedisTemplate.opsForHash().delete(importKey, "allCount"); stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); - stringRedisTemplate.opsForHash().delete(importKey, "successCount"); + stringRedisTemplate.opsForHash().delete(importKey, "processCount"); stringRedisTemplate.opsForHash().delete(importKey, "failCount"); return ok; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index d8d84c6aa..203399f79 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -529,7 +529,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { } catch (Exception e) { stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); logger.error(e.getMessage()); return new ResultData(ErrorCode.MEM_IMPORT_ERR); @@ -547,27 +547,29 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { int all_success = successList.size(); int all_fail = failList.size(); + //添加到redis里 + stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); + stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); + + logger.info("验证通过的数量: " + successList.size()); + logger.info("验证未通过的数量: " + failList.size()); + WxTags wxTagsQ = new WxTags(); List tagList = wxTagsMapper.findList(wxTagsQ); try { - //添加到redis里 - stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); - stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); - - logger.info("验证通过的数量: " + successList.size()); - logger.info("验证未通过的数量: " + failList.size()); - successList.parallelStream().forEach(uBase -> { if (StringUtils.isBlank(uBase.getPhone())) { + stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); logger.error("手机号为空", uBase.toString()); return; } WxCUserBasicInfo userBase = InitUserBaseInfo(uBase, tenantId); if (userBase == null) { + stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); logger.error("userBase为null", uBase.toString()); return; } @@ -626,6 +628,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { try { wxCUserBasicInfoMapper.insertSelective(userBase); } catch (Exception e) { + stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); logger.error(e.getMessage()); return; } @@ -671,11 +674,10 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { } catch (Exception e) { logger.error(e.getMessage()); logger.error("打标签+成长值失败--继续导入"); - return; } //记数 - stringRedisTemplate.opsForHash().increment(importKey,"successCount",1); + stringRedisTemplate.opsForHash().increment(importKey,"processCount",1); }); } catch (Exception e) { stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + all_fail); From 2f4cdfef71955a0f187c9450b78cbad6079a6ecb Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 20:27:11 +0800 Subject: [PATCH 03/16] =?UTF-8?q?[A=E7=AB=AF=E4=BC=9A=E5=91=98=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=85=A5][=E4=BF=AE=E5=A4=8D]:=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=AF=BC=E5=85=A5=E4=BF=AE=E5=A4=8D,=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=AF=BC=E5=87=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxCUserBasicInfoController.java | 15 +++++++++++++-- .../main/java/com/iformall/common/ErrorCode.java | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index a08a72f38..e2b38ee4c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -224,10 +224,21 @@ public class WxCUserBasicInfoController extends BaseController { return new ResultData(Result.SUCCESS, "查询成功", page); } - @RequestMapping("/exportData") + @ApiOperation("会员记录导出") + @GetMapping("/exportData") public void exportData(@ModelAttribute WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) { logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::exportData"); - if(basicInfo == null) basicInfo = new WxCUserBasicInfo(); + if(basicInfo == null) { + basicInfo = new WxCUserBasicInfo(); + } else { + if (StringUtils.isBlank(basicInfo.getPhone())) { + basicInfo.setPhone(null); + } + if (StringUtils.isBlank(basicInfo.getName())) { + basicInfo.setName(null); + } + } + basicInfo.setTenantId(getTenantId()); wxCUserBasicInfoService.exportData(basicInfo, request, response); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 802959840..a4a4c18ad 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -253,7 +253,7 @@ public enum ErrorCode{ /** * 会员 */ - MEM_IMPORT_ERR(13000, "模板导入失败,请尝试重新导入"), + MEM_IMPORT_ERR(13000, "模板导入失败,请检查数据,尝试重新导入"), MEM_SCORE_NOT_ENOUGH(13001, "成长值不够扣减值"), /** From 38e0fc631bc908e3f7b96c04c52035c33e67a831 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 20:49:45 +0800 Subject: [PATCH 04/16] =?UTF-8?q?[=E6=89=AB=E7=A0=81=E5=BC=82=E5=B8=B8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E6=89=AB=E7=A0=81decode=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/utils/HashUtil.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/utils/HashUtil.java b/mallinkService/src/main/java/com/iformall/utils/HashUtil.java index 4d99d09ed..594463fea 100644 --- a/mallinkService/src/main/java/com/iformall/utils/HashUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/HashUtil.java @@ -91,7 +91,7 @@ public class HashUtil { } try { String enc = hash("md5", str); - enc = new String(Base64.getUrlEncoder().encode(enc.getBytes("utf-8"))); + enc = new String(Base64.getUrlEncoder().encode(enc.getBytes("utf-8")), "utf-8"); return enc; } catch (UnsupportedEncodingException e) { return null; @@ -102,7 +102,13 @@ public class HashUtil { if (str == null) { return null; } - String dec = new String(Base64.getUrlDecoder().decode(str)); - return dec; + try { + String dec = new String(Base64.getUrlDecoder().decode(str), "utf-8"); + return dec; + } catch (Exception e) { + System.out.println(str); + System.out.println(e.getMessage()); + return null; + } } } From ee7f74d1734f2e8632193b0e1386f53b3c09d564 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 21:33:41 +0800 Subject: [PATCH 05/16] =?UTF-8?q?[=E8=A1=A5=E8=B4=B4=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=A3=80=E6=B5=8B][=E4=BF=AE=E6=94=B9]:=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E5=88=B8=E5=8F=8A=E5=82=A8=E5=80=BC=E5=8D=A1=E8=A1=A5=E8=B4=B4?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxCouponServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 dc17646f0..7bdf6f7d5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -116,18 +116,22 @@ public class WxCouponServiceImpl implements WxCouponService { if(record.getType().equals(EnumCouponType.COUPON_MULTIMCH.getCode()) || record.getType().equals(EnumCouponType.CARD_MULTIMCH.getCode())) { Integer subsidyType = record.getSubsidyType(); + Integer subsidyNum = record.getSubsidyNum(); if(subsidyType == null) { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "请填写补贴类型"); } + if(subsidyNum == null) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "请填写补贴金额"); + } if(subsidyType.equals(EnumCouponSubsidyType.WECHAT_COUPON.getCode())) { // 微信 立减 - if(record.getSubsidyNum() > record.getSalePrice()) { + if(subsidyNum > record.getSalePrice()) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "补贴额大于售价"); } } else if(subsidyType.equals(EnumCouponSubsidyType.OFFLINE_SUBSIDY.getCode())) { // 线下补贴 int subsidy_num = record.getPrice() - record.getSalePrice(); - if(record.getSubsidyNum() > subsidy_num) { + if(subsidyNum > subsidy_num) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "补贴额大于面额与售价的差值"); } } else if(subsidyType.equals(EnumCouponSubsidyType.WECHAT_MCHPAY.getCode())) { From 44c61c7528d30346b5c92c9b29de42baf0c8e2d2 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 9 Jan 2019 11:46:30 +0800 Subject: [PATCH 06/16] =?UTF-8?q?[BUG][1000780]:=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=20version:.434.561=EF=BC=9A=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E7=9F=AD=E4=BF=A1=E6=B2=A1=E6=9C=89=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E5=87=BA=E5=8F=91=E9=80=81=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/interceptor/HttpServletRequestWrapperFilter.java | 3 ++- .../main/java/com/iformall/interceptor/RequestInterceptor.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java index 4df979d09..fdd92deb4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java @@ -20,7 +20,8 @@ public class HttpServletRequestWrapperFilter implements Filter { if (!url.contains("awsFileUpload") && !url.contains("cimgUpload") && !url.contains("ueditor/exec") - && !url.contains("/wxCUserBasicInfo/importTemplate")) { + && !url.contains("/wxCUserBasicInfo/importTemplate") + && !url.contains("wxMsgCallback")) { requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); } else { requestWrapper = null; diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java index 3adf70465..cb7503741 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -47,7 +47,8 @@ public class RequestInterceptor extends HandlerInterceptorAdapter { || url.contains("awsFileUpload") || url.contains("cimgUpload") || url.contains("ueditor/exec") - || url.contains("/wxCUserBasicInfo/importTemplate")) { + || url.contains("/wxCUserBasicInfo/importTemplate") + || url.contains("wxMsgCallback")) { // pvlog不检查幂等 // awsFileUpload不检查幂等 // ueditor 不检查幂等 From 43ea2fa2b5dd1a0de44df1acfe160521bc13167e Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 9 Jan 2019 13:45:26 +0800 Subject: [PATCH 07/16] =?UTF-8?q?[exception][=E4=BF=AE=E5=A4=8D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/WxCUserBasicInfoController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index e2b38ee4c..5e5b1f85e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -81,7 +81,7 @@ public class WxCUserBasicInfoController extends BaseController { if (info.getTagId() != null) { WxCUserTags uTag = wxCUserTagsService.getById(info.getTagId()); - if (StringUtils.isNotBlank(uTag.getTags())) { + if (uTag != null && StringUtils.isNotBlank(uTag.getTags())) { List ids = JSONObject.parseArray(uTag.getTags(), Long.class); info.setTagsList(wxCUserTagsService.findTagList(getTenantId(), ids)); } From 047849d935d7fee3948d9403b585b1f019cd6a6f Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 9 Jan 2019 13:51:59 +0800 Subject: [PATCH 08/16] =?UTF-8?q?[EXCEPTION=E5=A4=84=E7=90=86][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E5=8D=A1=E5=88=97=E8=A1=A8=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E6=9C=AA=E5=A1=AB=E5=86=99=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WxCardPayController.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCardPayController.java index 6b043e982..5f4a90463 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCardPayController.java @@ -59,7 +59,12 @@ public class WxCardPayController extends BaseController { public ResultData cardOrderList(@ModelAttribute WxCardVo wxCardVo, Integer pageNum, Integer pageSize) { String ipStr = getIpAddr(); logger.info("cardPay/cardOrderList: " + ipStr); - if (wxCardVo == null) wxCardVo = new WxCardVo(); + if (wxCardVo == null) {wxCardVo = new WxCardVo();} + else { + if(StringUtils.isBlank(wxCardVo.getOuPhone())) { + wxCardVo.setOuPhone(null); + } + } MallUserInfo user = getUser(); wxCardVo.setTenantId(user.getTenantId()); if(StringUtils.isNotBlank(wxCardVo.getStatusStr())) { From a966b1b045efa724c1c8aed5a26b5fc0c1c4b136 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 9 Jan 2019 13:21:18 +0800 Subject: [PATCH 09/16] =?UTF-8?q?[BUG][1000780]:=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=20version:.434.561=EF=BC=9A=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E7=9F=AD=E4=BF=A1=E6=B2=A1=E6=9C=89=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E5=87=BA=E5=8F=91=E9=80=81=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HttpServletRequestWrapperFilter.java | 11 ++++------- .../interceptor/RequestInterceptor.java | 8 ++------ .../main/java/com/iformall/utils/UrlCheck.java | 18 ++++++++++++++++++ .../resources/mapper/WxMsgCallbackMapper.xml | 6 +++--- 4 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java index fdd92deb4..644546097 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java @@ -1,5 +1,7 @@ package com.iformall.interceptor; +import com.iformall.utils.UrlCheck; + import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; @@ -17,14 +19,8 @@ public class HttpServletRequestWrapperFilter implements Filter { ServletRequest requestWrapper = null; if (request instanceof HttpServletRequest) { String url = ((HttpServletRequest) request).getRequestURI(); - if (!url.contains("awsFileUpload") - && !url.contains("cimgUpload") - && !url.contains("ueditor/exec") - && !url.contains("/wxCUserBasicInfo/importTemplate") - && !url.contains("wxMsgCallback")) { + if (!UrlCheck.checkUrl(url)) { requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); - } else { - requestWrapper = null; } } if (null == requestWrapper) { @@ -35,6 +31,7 @@ public class HttpServletRequestWrapperFilter implements Filter { } + @Override public void destroy() { diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java index cb7503741..fd3d41f9f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -4,6 +4,7 @@ import com.iformall.common.ErrorCode; import com.iformall.exception.MallinkException; import com.iformall.utils.HashUtil; import com.iformall.utils.IPUtil; +import com.iformall.utils.UrlCheck; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.RedisTemplate; @@ -43,12 +44,7 @@ public class RequestInterceptor extends HandlerInterceptorAdapter { String ipaddress = IPUtil.getIpAddr(request); String url = request.getRequestURL().toString(); - if(url.contains("pvlog") - || url.contains("awsFileUpload") - || url.contains("cimgUpload") - || url.contains("ueditor/exec") - || url.contains("/wxCUserBasicInfo/importTemplate") - || url.contains("wxMsgCallback")) { + if (UrlCheck.checkUrl(url)) { // pvlog不检查幂等 // awsFileUpload不检查幂等 // ueditor 不检查幂等 diff --git a/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java b/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java new file mode 100644 index 000000000..b19e6ef37 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java @@ -0,0 +1,18 @@ +package com.iformall.utils; + +/** + * @author gongbiao + */ +public class UrlCheck { + + public static boolean checkUrl(String url) { + return url.contains("awsFileUpload") + || url.contains("cimgUpload") + || url.contains("ueditor/exec") + || url.contains("/wxCUserBasicInfo/importTemplate") + || url.contains("wxMsgCallback") + || url.contains("notify") + || url.contains("pvlog"); + } + +} diff --git a/mallinkService/src/main/resources/mapper/WxMsgCallbackMapper.xml b/mallinkService/src/main/resources/mapper/WxMsgCallbackMapper.xml index 2b0a7b372..c817cccea 100644 --- a/mallinkService/src/main/resources/mapper/WxMsgCallbackMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMsgCallbackMapper.xml @@ -38,9 +38,9 @@ and `batch_no` like concat('%', #{batchNo},'%') - - - + + + and `phone` like concat('%', #{phone},'%') From 526f6faf4baefd60cd2adc5997069adec9ba10d4 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 9 Jan 2019 14:29:59 +0800 Subject: [PATCH 10/16] =?UTF-8?q?[BUG][1000780]:=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=20version:.434.561=EF=BC=9A=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E7=9F=AD=E4=BF=A1=E6=B2=A1=E6=9C=89=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E5=87=BA=E5=8F=91=E9=80=81=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/enums/EnumMsgSendStatus.java | 1 + .../com/iformall/service/impl/WxMsgCallbackServiceImpl.java | 6 +++++- .../java/com/iformall/service/impl/WxMsgServiceImpl.java | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgSendStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgSendStatus.java index 5008a1c88..4bec81de7 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgSendStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgSendStatus.java @@ -4,6 +4,7 @@ package com.iformall.enums; * Created by Stormeye on 2018/08/09. */ public enum EnumMsgSendStatus { + MSG_SENDING(2, "发送中"), MSG_SEND_SUCCESS(1,"发送成功"), MSG_SEND_FAIL(0,"发送失败") ; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java index 2608a5298..fa73fa083 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java @@ -83,7 +83,11 @@ public class WxMsgCallbackServiceImpl implements WxMsgCallbackService { if(callback!=null){//有更新,无插入 callback.setSign(param.get("sign")); callback.setTenantId(tenantId); - callback.setStatus(wxMsgCallback.getStatus()); + if (!wxMsgCallback.getStatus().equals(EnumMsgSendStatus.MSG_SEND_SUCCESS.getCode())) { + callback.setStatus(EnumMsgSendStatus.MSG_SEND_FAIL.getCode()); + } else { + callback.setStatus(EnumMsgSendStatus.MSG_SEND_SUCCESS.getCode()); + } callback.setStatusMsg(wxMsgCallback.getStatusMsg()); callback.setBegintime(wxMsgCallback.getBegintime()); callback.setEndtime(wxMsgCallback.getEndtime()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java index e361bd042..352e4b308 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java @@ -262,7 +262,8 @@ public class WxMsgServiceImpl implements WxMsgService { wxMsgCallback.setTenantId(wxmsg.getTenantId()); wxMsgCallback.setBatchNo(batchNo); wxMsgCallback.setMsgId(wxmsg.getId()); - wxMsgCallback.setStatus(EnumMsgSendStatus.MSG_SEND_FAIL.getCode()); + wxMsgCallback.setStatus(EnumMsgSendStatus.MSG_SENDING.getCode()); + wxMsgCallback.setStatusMsg(EnumMsgSendStatus.MSG_SENDING.getMessage()); wxMsgCallback.setCreatetime(new Date()); wxMsgCallbackMapper.insertSelective(wxMsgCallback); } From e3713377ade1dfae911fb21ecf3b50b719415a68 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 08:31:58 +0800 Subject: [PATCH 11/16] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=20=E5=B9=B6=E5=8F=91=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8D=E6=88=90=E5=8A=9F=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 93 +++++- .../service/WxCUserBasicInfoService.java | 6 +- .../impl/WxCUserBasicInfoServiceImpl.java | 273 +++++++----------- .../service/impl/WxMerchantServiceImpl.java | 7 +- 4 files changed, 196 insertions(+), 183 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 5e5b1f85e..4fa95b145 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -1,5 +1,10 @@ package com.iformall.controller; +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; +import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl; +import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -8,14 +13,19 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.vo.CUserBaseInfoT; import com.iformall.enums.EnumAssignTagsTrigger; import com.iformall.exception.MallinkException; import com.iformall.service.*; +import com.iformall.service.impl.WxCUserBasicInfoServiceImpl; +import com.iformall.shiro.UserSession; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -57,7 +67,10 @@ public class WxCUserBasicInfoController extends BaseController { private WxCouponService wxCouponService; @Autowired - WxLevelConfigService wxLevelConfigService; + private WxLevelConfigService wxLevelConfigService; + + @Autowired + private WxTagsService wxTagsService; @Autowired StringRedisTemplate stringRedisTemplate; @@ -252,6 +265,18 @@ public class WxCUserBasicInfoController extends BaseController { } + private class UserExcelHandler extends ExcelDataHandlerDefaultImpl { + @Override + public Object importHandler(CUserBaseInfoT obj, String name, Object value) { + if (value == null) { + value = ""; + } + System.out.println(name + " + " + value.toString()); + return super.importHandler(obj, name, value); + } + + } + @RequestMapping("/importTemplate") public ResultData importTemplate(@RequestParam("file") MultipartFile file) { logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::importTemplate"); @@ -259,7 +284,8 @@ public class WxCUserBasicInfoController extends BaseController { throw new MallinkException(Result.ERROR, "上传文件不能为空"); } //得到当前用户ID - String userId = "" + getUser().getId(); + final MallUserInfo user = getUser(); + String userId = "" + user.getId(); String importKey = importMemPrev + userId; //查询当前用户得到的值是否为空,为空继续,不为空,返回模板正在导入 Boolean allCount = stringRedisTemplate.opsForHash().hasKey(importKey, "allCount"); @@ -270,7 +296,68 @@ public class WxCUserBasicInfoController extends BaseController { stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allSuccessCount", 0 + ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "processCount", ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", ""); - wxCUserBasicInfoService.importTemplate(file, getTenantId(), importKey); + + + ImportParams params = new ImportParams(); + // 需要验证 + params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); + IExcelDataHandler handler = new UserExcelHandler(); + handler.setNeedHandlerFields(new String[] { "手机号" }); + params.setNeedVerify(true); + + ExcelImportResult datalist = null; + try { + datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); + } catch (Exception e) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR); + } + + if(datalist == null) { + logger.error("导入模板失败: 模板数据解析失败"); + return new ResultData(ErrorCode.MEM_IMPORT_ERR); + } + + List successList = datalist.getList(); + List failList = datalist.getFailList(); + + int total = successList.size() + failList.size(); + int all_success = successList.size(); + int all_fail = failList.size(); + + //添加到redis里 + stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); + stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); + + logger.info("验证通过的数量: " + successList.size()); + logger.info("验证未通过的数量: " + failList.size()); + + WxTags wxTagsQ = new WxTags(); + List tagList = wxTagsService.findList(wxTagsQ); + + final String tenantId = getTenantId(); + + try { + successList.parallelStream().forEach(uBase -> { + // 异步无法获取到原有的session,所以再注入一下session + Session session = SecurityUtils.getSubject().getSession(); + session.setAttribute(UserSession.userInfo, user); + session.setAttribute(UserSession.userId, user.getId()); + session.setAttribute(UserSession.tenantId, tenantId); + + wxCUserBasicInfoService.importOneMem(tenantId, importKey, tagList, uBase); + }); + } catch (Exception e) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + all_fail); + e.printStackTrace(); + logger.error("导入模板失败:"+e.getMessage()); + } stringRedisTemplate.expire(importKey,30,TimeUnit.MINUTES); return new ResultData(Result.SUCCESS, "模板正在导入"); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index 0c62edd06..41308b892 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -1,10 +1,10 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; -import com.iformall.common.ResultData; import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.po.WxCUserBasicInfo; -import org.springframework.web.multipart.MultipartFile; +import com.iformall.domain.po.WxTags; +import com.iformall.domain.vo.CUserBaseInfoT; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -103,7 +103,7 @@ public interface WxCUserBasicInfoService { void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId); - ResultData importTemplate(MultipartFile file, String tenantId, String importKey); + void importOneMem(String tenantId, String importKey, List tagList, CUserBaseInfoT uBase); long findCount(WxCUserBasicInfoDto dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 203399f79..726f650ed 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -1,16 +1,9 @@ package com.iformall.service.impl; -import cn.afterturn.easypoi.excel.ExcelImportUtil; -import cn.afterturn.easypoi.excel.entity.ImportParams; -import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; -import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl; -import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; -import com.iformall.common.ResultData; import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUserBasicInfo; @@ -39,9 +32,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -498,194 +489,126 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { return userBase; } - private class UserExcelHandler extends ExcelDataHandlerDefaultImpl { - @Override - public Object importHandler(CUserBaseInfoT obj, String name, Object value) { - if (value == null) { - value = ""; - } - System.out.println(name + " + " + value.toString()); - return super.importHandler(obj, name, value); - } - - } - - @Async @Override - public ResultData importTemplate(MultipartFile file, String tenantId, String importKey) { - + public void importOneMem(String tenantId, String importKey, List tagList, CUserBaseInfoT uBase) { final IdWorker idWorker = IdWorker.get(); - ImportParams params = new ImportParams(); - // 需要验证 - params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); - IExcelDataHandler handler = new UserExcelHandler(); - handler.setNeedHandlerFields(new String[] { "手机号" }); - params.setNeedVerify(true); - - ExcelImportResult datalist = null; - try { - datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); - } catch (Exception e) { - stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); - logger.error(e.getMessage()); - return new ResultData(ErrorCode.MEM_IMPORT_ERR); + if (StringUtils.isBlank(uBase.getPhone())) { + stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); + logger.error("手机号为空", uBase.toString()); + return; } - - if(datalist == null) { - logger.error("导入模板失败: 模板数据解析失败"); - return new ResultData(ErrorCode.MEM_IMPORT_ERR); + WxCUserBasicInfo userBase = InitUserBaseInfo(uBase, tenantId); + if (userBase == null) { + stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); + logger.error("userBase为null", uBase.toString()); + return; } - List successList = datalist.getList(); - List failList = datalist.getFailList(); - - int total = successList.size() + failList.size(); - int all_success = successList.size(); - int all_fail = failList.size(); - - //添加到redis里 - stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); - stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); - - logger.info("验证通过的数量: " + successList.size()); - logger.info("验证未通过的数量: " + failList.size()); - - WxTags wxTagsQ = new WxTags(); - List tagList = wxTagsMapper.findList(wxTagsQ); - - try { - successList.parallelStream().forEach(uBase -> { + WxCUserBasicInfo oldUserBase = null; + WxCUserBasicInfo userBaseQ = new WxCUserBasicInfo(); + userBaseQ.setTenantId(tenantId); + userBaseQ.setPhone(userBase.getPhone()); + List userBList = wxCUserBasicInfoMapper.select(userBaseQ); + if (userBList.size() > 0) { + oldUserBase = userBList.get(0); + } - if (StringUtils.isBlank(uBase.getPhone())) { - stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); - logger.error("手机号为空", uBase.toString()); - return; - } - WxCUserBasicInfo userBase = InitUserBaseInfo(uBase, tenantId); - if (userBase == null) { - stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); - logger.error("userBase为null", uBase.toString()); - return; - } + if (oldUserBase != null) { + oldUserBase.setName(userBase.getName()); + oldUserBase.setSex(userBase.getSex()); + oldUserBase.setNickName(userBase.getNickName()); + oldUserBase.setEducation(userBase.getEducation()); + oldUserBase.setBirthdate(userBase.getBirthdate()); + oldUserBase.setAddress(userBase.getAddress()); + oldUserBase.setUpdateDate(new Date()); + oldUserBase.setCreateDate(userBase.getCreateDate()); + } else { + userBase.setId(idWorker.nextId()); + } - WxCUserBasicInfo oldUserBase = null; - WxCUserBasicInfo userBaseQ = new WxCUserBasicInfo(); - userBaseQ.setTenantId(tenantId); - userBaseQ.setPhone(userBase.getPhone()); - List userBList = wxCUserBasicInfoMapper.select(userBaseQ); - if (userBList.size() > 0) { - oldUserBase = userBList.get(0); - } + // update 昵称 + { + // check c_user 是否存在 + WxCUser cUserQ = new WxCUser(); + cUserQ.setTenantId(tenantId); + cUserQ.setPhone(userBase.getPhone()); + List userList = wxCUserMapper.select(cUserQ); + if (userList.size() > 0) { + WxCUser user = userList.get(0); + if (user != null) { + if (oldUserBase != null) { + if(oldUserBase != null) { + oldUserBase.setNickName(user.getNickName()); + } + userBase.setId(user.getId()); + userBase.setNickName(user.getNickName()); + } else { - if (oldUserBase != null) { - oldUserBase.setName(userBase.getName()); - oldUserBase.setSex(userBase.getSex()); - oldUserBase.setNickName(userBase.getNickName()); - oldUserBase.setEducation(userBase.getEducation()); - oldUserBase.setBirthdate(userBase.getBirthdate()); - oldUserBase.setAddress(userBase.getAddress()); - oldUserBase.setUpdateDate(new Date()); - oldUserBase.setCreateDate(userBase.getCreateDate()); - } else { - userBase.setId(idWorker.nextId()); + userBase.setNickName(user.getNickName()); + } } + } + } - // update 昵称 - { - // check c_user 是否存在 - WxCUser cUserQ = new WxCUser(); - cUserQ.setTenantId(tenantId); - cUserQ.setPhone(userBase.getPhone()); - List userList = wxCUserMapper.select(cUserQ); - if (userList.size() > 0) { - WxCUser user = userList.get(0); - if (user != null) { - if (oldUserBase != null) { - if(oldUserBase != null) { - oldUserBase.setNickName(user.getNickName()); - } - userBase.setId(user.getId()); - userBase.setNickName(user.getNickName()); - } else { - - userBase.setNickName(user.getNickName()); - } + if (oldUserBase != null) { + logger.info("update user base: " + oldUserBase.getId()); + wxCUserBasicInfoMapper.updateByPrimaryKeySelective(oldUserBase); + } else { + logger.info("insert user base: " + userBase.getId()); + try { + wxCUserBasicInfoMapper.insertSelective(userBase); + } catch (Exception e) { + stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); + logger.error(e.getMessage()); + return; + } + } + // update tags + try { + if (StringUtils.isNotBlank(userBase.getTagNames())) { + // get tag ids + String tagNames = userBase.getTagNames(); + List tagIdList = new ArrayList<>(); + for (String tagName : tagNames.split("/")) { + for(WxTags tag: tagList) { + if(tagName.equals(tag.getName())) { + tagIdList.add(Long.valueOf(tag.getId())); + break; } } } - if (oldUserBase != null) { - logger.info("update user base: " + oldUserBase.getId()); - wxCUserBasicInfoMapper.updateByPrimaryKeySelective(oldUserBase); - } else { - logger.info("insert user base: " + userBase.getId()); - try { - wxCUserBasicInfoMapper.insertSelective(userBase); - } catch (Exception e) { - stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); - logger.error(e.getMessage()); - return; - } + if (oldUserBase != null){ + wxCUserTagsService.assignTags(tagIdList,oldUserBase); + }else{ + wxCUserTagsService.assignTags(tagIdList,userBase); } - // update tags - try { - if (StringUtils.isNotBlank(userBase.getTagNames())) { - // get tag ids - String tagNames = userBase.getTagNames(); - List tagIdList = new ArrayList<>(); - for (String tagName : tagNames.split("/")) { - for(WxTags tag: tagList) { - if(tagName.equals(tag.getName())) { - tagIdList.add(Long.valueOf(tag.getId())); - break; - } - } - } - - if (oldUserBase != null){ - wxCUserTagsService.assignTags(tagIdList,oldUserBase); - }else{ - wxCUserTagsService.assignTags(tagIdList,userBase); - } - } + } - //触发自动打标签 - if (oldUserBase != null) { - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,oldUserBase); - } - else{ - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase); - } + //触发自动打标签 + if (oldUserBase != null) { + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,oldUserBase); + } + else{ + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase); + } - // 成长值 - if (StringUtils.isNotBlank(uBase.getPoins())) { - if (oldUserBase != null) { - wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, oldUserBase, uBase.getPoins()); - } else { - wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, userBase, uBase.getPoins()); - } - } - } catch (Exception e) { - logger.error(e.getMessage()); - logger.error("打标签+成长值失败--继续导入"); + // 成长值 + if (StringUtils.isNotBlank(uBase.getPoins())) { + if (oldUserBase != null) { + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, oldUserBase, uBase.getPoins()); + } else { + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, userBase, uBase.getPoins()); } - - //记数 - stringRedisTemplate.opsForHash().increment(importKey,"processCount",1); - }); + } } catch (Exception e) { - stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + all_fail); - e.printStackTrace(); - logger.error("导入模板失败:"+e.getMessage()); + logger.error(e.getMessage()); + logger.error("打标签+成长值失败--继续导入"); } - return new ResultData(); + //记数 + stringRedisTemplate.opsForHash().increment(importKey,"processCount",1); } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index dcafa63c4..005f1c0df 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -220,6 +220,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxMerchantShopMapper.updateByPrimaryKeySelective(wxMerchantShop); //更新商铺状态 WxShop wxShop = new WxShop(); + wxShop.setTenantId(wxMerchant.getTenantId()); wxShop.setId(wxMerchantShop.getShopId()); wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode()); wxShopMapper.updateByPrimaryKeySelective(wxShop); @@ -234,12 +235,14 @@ public class WxMerchantServiceImpl implements WxMerchantService { } //作废卡券 WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); + wxCouponMerchant.setTenantId(wxMerchant.getTenantId()); wxCouponMerchant.setMerchantId(wxMerchant.getId()); wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); List wxCouponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant); List couponIds = wxCouponMerchantList.stream().map(cm->cm.getProductId()).collect(Collectors.toList()); - WxCoupon wxCoupon = new WxCoupon(); - couponIds.parallelStream().filter(cid->!isCouponMerchantValid(cid)).forEach(cid->{ + + couponIds.stream().filter(cid->!isCouponMerchantValid(cid)).forEach(cid->{ + WxCoupon wxCoupon = new WxCoupon(); wxCoupon.setId(cid); wxCoupon.setStatus(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode()); wxCouponService.saveOrUpdate(wxCoupon); From 0abfd187c664629a90a98cbe48c08a95e55b079b Mon Sep 17 00:00:00 2001 From: gongbiao Date: Thu, 10 Jan 2019 10:54:54 +0800 Subject: [PATCH 12/16] =?UTF-8?q?[=E4=BB=8EController=E5=B1=82=E8=8E=B7?= =?UTF-8?q?=E5=8F=96userId]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxBillDailyController.java | 2 + .../controller/WxBillOtherController.java | 2 + .../controller/WxMerchantController.java | 2 +- .../WxPropertyContractController.java | 4 +- .../controller/WxRentContractController.java | 10 ++--- .../iformall/service/WxMerchantService.java | 2 +- .../service/WxPropertyContractService.java | 2 +- .../service/WxRentContractService.java | 9 +++-- .../service/impl/WxBillDailyServiceImpl.java | 5 --- .../service/impl/WxBillOtherServiceImpl.java | 5 --- .../service/impl/WxMerchantServiceImpl.java | 18 ++++----- .../impl/WxPropertyContractServiceImpl.java | 18 ++++----- .../impl/WxRentContractServiceImpl.java | 39 ++++++++----------- 13 files changed, 50 insertions(+), 68 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxBillDailyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxBillDailyController.java index 85819f0d2..d83485466 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxBillDailyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxBillDailyController.java @@ -44,12 +44,14 @@ public class WxBillDailyController extends BaseController public ResultData add(@RequestBody WxBillDaily wxBillDaily) { logger.debug("[" + getIpAddr() + "] WxBillDailyController::add"); wxBillDaily.setTenantId(getTenantId()); + wxBillDaily.setUserId(getUser().getId()); return wxBillDailyService.saveOrUpdate(wxBillDaily); } @PostMapping("update") public ResultData update(@RequestBody WxBillDaily wxBillDaily) { logger.debug("[" + getIpAddr() + "] WxBillDailyController::update"); + wxBillDaily.setUserId(getUser().getId()); return wxBillDailyService.saveOrUpdate(wxBillDaily); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxBillOtherController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxBillOtherController.java index 089738ff2..23ddb87cd 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxBillOtherController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxBillOtherController.java @@ -44,12 +44,14 @@ public class WxBillOtherController extends BaseController public ResultData add(@RequestBody WxBillOther wxBillOther) { logger.debug("[" + getIpAddr() + "] WxBillOtherController::add"); wxBillOther.setTenantId(getTenantId()); + wxBillOther.setUserId(getUser().getId()); return wxBillOtherService.saveOrUpdate(wxBillOther); } @PostMapping("update") public ResultData update(@RequestBody WxBillOther wxBillOther) { logger.debug("[" + getIpAddr() + "] WxBillOtherController::update"); + wxBillOther.setUserId(getUser().getId()); return wxBillOtherService.saveOrUpdate(wxBillOther); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantController.java index 992d3e9c4..ea97b3477 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantController.java @@ -96,7 +96,7 @@ public class WxMerchantController extends BaseController { public ResultData addMerchant(@RequestBody WxMerchant wxMerchant) { logger.debug("[" + getIpAddr() + "] WxMerchantController::addMerchant"); wxMerchant.setTenantId(getTenantId()); - return wxMerchantService.addMerchant(wxMerchant); + return wxMerchantService.addMerchant(wxMerchant, getUser().getId()); } @ApiOperation("更新商户接口") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java index 22c9b66e3..55e07e1f3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java @@ -45,14 +45,14 @@ public class WxPropertyContractController extends BaseController public ResultData add(@RequestBody WxPropertyContract wxPropertyContract) { logger.debug("[" + getIpAddr() + "] WxPropertyContractController::add"); wxPropertyContract.setTenantId(getTenantId()); - return wxPropertyContractService.saveOrUpdate(wxPropertyContract); + return wxPropertyContractService.saveOrUpdate(wxPropertyContract, getUser().getId()); } @PostMapping("update") public ResultData update(@RequestBody WxPropertyContract wxPropertyContract) { logger.debug("[" + getIpAddr() + "] WxPropertyContractController::update"); wxPropertyContract.setTenantId(getTenantId()); - return wxPropertyContractService.saveOrUpdate(wxPropertyContract); + return wxPropertyContractService.saveOrUpdate(wxPropertyContract, getUser().getId()); } @GetMapping("/del") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java index 1d503e108..17d3c974c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java @@ -44,28 +44,28 @@ public class WxRentContractController extends BaseController { public ResultData add(@RequestBody WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::add"); wxRentContract.setTenantId(getTenantId()); - return wxRentContractService.save(wxRentContract); + return wxRentContractService.save(wxRentContract, getUser().getId()); } @PostMapping("update") public ResultData update(@RequestBody WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::update"); wxRentContract.setTenantId(getTenantId()); - return wxRentContractService.update(wxRentContract); + return wxRentContractService.update(wxRentContract, getUser().getId()); } @PostMapping("updateMoney") public ResultData updateMoney(@RequestBody WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::updateMoney"); wxRentContract.setTenantId(getTenantId()); - return wxRentContractService.update(wxRentContract); + return wxRentContractService.update(wxRentContract, getUser().getId()); } @PostMapping("updateFile") public ResultData updateFile(@RequestBody WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::updateFile"); wxRentContract.setTenantId(getTenantId()); - return wxRentContractService.updateFile(wxRentContract); + return wxRentContractService.updateFile(wxRentContract, getUser().getId()); } @@ -130,7 +130,7 @@ public class WxRentContractController extends BaseController { @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) public ResultData updateRentContractStatus(Long id) { logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentContractStatus"); - return wxRentContractService.updateRentContractStatus(id); + return wxRentContractService.updateRentContractStatus(id, getUser().getId()); } } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index b28564305..03c8cf184 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -65,7 +65,7 @@ public interface WxMerchantService { void disable(Long id); - ResultData addMerchant(WxMerchant wxMerchant); + ResultData addMerchant(WxMerchant wxMerchant, Long userId); ResultData updateMerchant(WxMerchant wxMerchant); diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index 69b8d6b66..0a771e588 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -35,7 +35,7 @@ public interface WxPropertyContractService { * * @param record */ - ResultData saveOrUpdate(WxPropertyContract record); + ResultData saveOrUpdate(WxPropertyContract record, Long userId); /** * 根据Id删除实体 diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java index a15a18461..42d47207f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -34,10 +34,11 @@ public interface WxRentContractService { * 保存或更新实体 * * @param record + * @param id */ - ResultData save(WxRentContract record); + ResultData save(WxRentContract record, Long userId); - ResultData update(WxRentContract record); + ResultData update(WxRentContract record, Long userId); /** * 根据Id删除实体 @@ -59,8 +60,8 @@ public interface WxRentContractService { void exportContract(HttpServletRequest request, HttpServletResponse response, String tenantId, Long id); - ResultData updateFile(WxRentContract wxRentContract); + ResultData updateFile(WxRentContract wxRentContract, Long userId); - ResultData updateRentContractStatus(Long id); + ResultData updateRentContractStatus(Long id, Long userId); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index 17ec1a4d8..51d5425c5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -6,7 +6,6 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillDaily; import com.iformall.domain.po.WxShop; import com.iformall.enums.EnumBillDailyStatus; @@ -16,7 +15,6 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillDailyMapper; import com.iformall.mapper.WxShopMapper; import com.iformall.service.WxBillDailyService; -import org.apache.shiro.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -117,7 +115,6 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { return new ResultData(ErrorCode.BILL_PAY_ERROR.getCode(),"实收金额不能大于实际应收金额"); } - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); if (record.getId() == null) { logger.info("新增日常账单"); final IdWorker idWorker = IdWorker.get(); @@ -126,7 +123,6 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { record.setStatus(record.getReceiveDate().after(date)?EnumBillDailyStatus.WAIT_PAY.getCode():EnumBillDailyStatus.NOT_PAID.getCode()); record.setCreatetime(date); record.setUpdatetime(date); - record.setUserId(user.getId()); record.setExpiredDay(0L); record.setOwe(record.getReceivePay()-record.getPay()); record.setIsDel(EnumDelStatus.NOT_DEL.getCode()); @@ -149,7 +145,6 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { wxBillDaily.setOwe(record.getReceivePay()-record.getPay()); wxBillDaily.setStatus(record.getPay().equals(record.getReceivePay()) ? EnumBillDailyStatus.PAID.getCode() : wxBillDaily.getStatus()); wxBillDaily.setUpdatetime(new Date()); - wxBillDaily.setUserId(user.getId()); try { wxBillDailyMapper.updateByPrimaryKeySelective(wxBillDaily); } catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java index c5e259e4b..8946882c6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java @@ -6,7 +6,6 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOther; import com.iformall.domain.po.WxShop; import com.iformall.enums.EnumBillDailyStatus; @@ -16,7 +15,6 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillOtherMapper; import com.iformall.mapper.WxShopMapper; import com.iformall.service.WxBillOtherService; -import org.apache.shiro.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -116,7 +114,6 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { if(pay>receivepay){ return new ResultData(ErrorCode.BILL_PAY_ERROR,"实收金额不能大于实际应收金额"); } - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); if (record.getId() == null) { logger.info("新增其他账单"); final IdWorker idWorker = IdWorker.get(); @@ -125,7 +122,6 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { record.setStatus(record.getReceiveDate().after(date)?EnumBillDailyStatus.WAIT_PAY.getCode():EnumBillDailyStatus.NOT_PAID.getCode()); record.setCreatetime(date); record.setUpdatetime(date); - record.setUserId(user.getId()); record.setExpiredDay(0L); record.setOwe(record.getReceivePay()-record.getPay()); record.setIsDel(EnumDelStatus.NOT_DEL.getCode()); @@ -148,7 +144,6 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { wxBillOther.setOwe(record.getReceivePay()-record.getPay()); wxBillOther.setStatus(record.getPay().equals(record.getReceivePay()) ? EnumBillDailyStatus.PAID.getCode() : wxBillOther.getStatus()); wxBillOther.setUpdatetime(new Date()); - wxBillOther.setUserId(user.getId()); try { wxBillOtherMapper.updateByPrimaryKeySelective(wxBillOther); } catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 005f1c0df..09ddb0c66 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -14,7 +14,6 @@ import com.iformall.mapper.*; import com.iformall.service.WxCouponService; import com.iformall.service.WxMerchantService; import com.iformall.service.WxProfitSharingReceiverService; -import org.apache.shiro.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -251,7 +250,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { @Transactional(rollbackFor = {Exception.class}) @Override - public ResultData addMerchant(WxMerchant wxMerchant) { + public ResultData addMerchant(WxMerchant wxMerchant, Long userId) { try { final IdWorker idWorker = IdWorker.get(); @@ -312,9 +311,9 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); //创建账单 - buildRent(wxMerchant); + buildRent(wxMerchant, userId); //创建押金 - buildDeposit(wxMerchant); + buildDeposit(wxMerchant, userId); } return new ResultData(Result.SUCCESS, "商户创建成功", merchantId); } catch (Exception e) { @@ -510,8 +509,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { @Transactional(rollbackFor = {Exception.class}) - public void buildDeposit(WxMerchant wxMerchant) { - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); + public void buildDeposit(WxMerchant wxMerchant, Long userId) { WxRentContract wxRentContract = new WxRentContract(); wxRentContract.setMerchantId(wxMerchant.getId()); List list = wxRentContractMapper.findList(wxRentContract); @@ -558,7 +556,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxBillDeposit.setTenantId(wxMerchant.getTenantId()); wxBillDeposit.setIsDel(0); wxBillDeposit.setMerchantId(wxMerchant.getId()); - wxBillDeposit.setUserId(user.getId()); + wxBillDeposit.setUserId(userId); wxBillDeposit.setShopId(wxRentContract.getShopId()); wxBillDeposit.setCreatetime(date); wxBillDeposit.setUpdatetime(date); @@ -572,10 +570,8 @@ public class WxMerchantServiceImpl implements WxMerchantService { } @Transactional(rollbackFor = {Exception.class}) - public void buildRent(WxMerchant wxMerchant) { + public void buildRent(WxMerchant wxMerchant, Long userId) { - //获取用户 - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); WxRentContract wxRentContract = new WxRentContract(); wxRentContract.setMerchantId(wxMerchant.getId()); //根据商户ID找出合同 @@ -656,7 +652,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxBillRent.setTenantId(wxRentContract.getTenantId()); wxBillRent.setIsDel(0); wxBillRent.setMerchantId(wxRentContract.getMerchantId()); - wxBillRent.setUserId(user.getId()); + wxBillRent.setUserId(userId); wxBillRent.setShopId(wxRentContract.getShopId()); wxBillRent.setCreatetime(date); wxBillRent.setUpdatetime(date); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 6f84051c0..5cabee440 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -15,7 +15,6 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.WxPropertyContractService; import com.iformall.utils.Constant; -import org.apache.shiro.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -100,7 +99,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } @Override - public ResultData saveOrUpdate(WxPropertyContract record) { + public ResultData saveOrUpdate(WxPropertyContract record, Long userId) { if (null == record.getShopId()) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "shopId不能为空"); @@ -188,9 +187,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService wxMerchant.setId(record.getMerchantId()); wxMerchant.setTenantId(record.getTenantId()); //物业账单 - buildProperty(wxMerchant); + buildProperty(wxMerchant, userId); //物业押金账单 - buildDeposit(wxMerchant); + buildDeposit(wxMerchant, userId); } } } catch (Exception e) { @@ -231,8 +230,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } @Transactional(rollbackFor = {Exception.class}) - public void buildDeposit(WxMerchant wxMerchant) { - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); + public void buildDeposit(WxMerchant wxMerchant, Long userId) { WxPropertyContract wxPropertyContract = new WxPropertyContract(); wxPropertyContract.setMerchantId(wxMerchant.getId()); List list = wxPropertyContractMapper.findList(wxPropertyContract); @@ -276,7 +274,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService wxBillDeposit.setTenantId(wxMerchant.getTenantId()); wxBillDeposit.setIsDel(0); wxBillDeposit.setMerchantId(wxMerchant.getId()); - wxBillDeposit.setUserId(user.getId()); + wxBillDeposit.setUserId(userId); wxBillDeposit.setShopId(wxPropertyContract.getShopId()); wxBillDeposit.setCreatetime(date); wxBillDeposit.setUpdatetime(date); @@ -291,9 +289,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } @Transactional(rollbackFor = {Exception.class}) - public void buildProperty(WxMerchant wxMerchant) { - //获取用户 - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); + public void buildProperty(WxMerchant wxMerchant, Long userId) { //根据商户ID找出合同 WxPropertyContract wxPropertyContract = new WxPropertyContract(); wxPropertyContract.setMerchantId(wxMerchant.getId()); @@ -371,7 +367,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService wxBillProperty.setTenantId(wxMerchant.getTenantId()); wxBillProperty.setIsDel(0); wxBillProperty.setMerchantId(wxMerchant.getId()); - wxBillProperty.setUserId(user.getId()); + wxBillProperty.setUserId(userId); wxBillProperty.setShopId(wxPropertyContract.getShopId()); wxBillProperty.setCreatetime(date); wxBillProperty.setUpdatetime(date); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 4ddc19a41..83ede6aea 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -18,7 +18,6 @@ import com.iformall.utils.DateUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.apache.shiro.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -116,7 +115,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Transactional(rollbackFor = {Exception.class}) @Override - public ResultData save(WxRentContract record) { + public ResultData save(WxRentContract record, Long userId) { //保存租赁合同信息 final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); @@ -176,9 +175,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxMerchant.setId(record.getMerchantId()); wxMerchant.setTenantId(record.getTenantId()); //租金 - buildRent(wxMerchant); + buildRent(wxMerchant, userId); //押金 - buildDeposit(wxMerchant); + buildDeposit(wxMerchant, userId); } } } catch (Exception e) { @@ -190,11 +189,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Transactional(rollbackFor = {Exception.class}) @Override - public ResultData update(WxRentContract record) { - return getResultDataForUpdate(record); + public ResultData update(WxRentContract record, Long userId) { + return getResultDataForUpdate(record, userId); } - public ResultData getResultDataForUpdate(WxRentContract record) { + public ResultData getResultDataForUpdate(WxRentContract record, Long userId) { //更新租赁合同信息 WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId()); if (wxRentContract == null) { @@ -252,9 +251,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxMerchant.setId(record.getMerchantId()); wxMerchant.setTenantId(record.getTenantId()); //租金 - buildRent(wxMerchant); + buildRent(wxMerchant, userId); //押金 - buildDeposit(wxMerchant); + buildDeposit(wxMerchant, userId); } } } catch (Exception e) { @@ -266,8 +265,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Transactional(rollbackFor = {Exception.class}) - public void buildDeposit(WxMerchant wxMerchant) { - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); + public void buildDeposit(WxMerchant wxMerchant, Long userId) { WxRentContract wxRentContract = new WxRentContract(); wxRentContract.setMerchantId(wxMerchant.getId()); List list = wxRentContractMapper.findList(wxRentContract); @@ -316,7 +314,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillDeposit.setTenantId(wxMerchant.getTenantId()); wxBillDeposit.setIsDel(0); wxBillDeposit.setMerchantId(wxMerchant.getId()); - wxBillDeposit.setUserId(user.getId()); + wxBillDeposit.setUserId(userId); wxBillDeposit.setShopId(wxRentContract.getShopId()); wxBillDeposit.setCreatetime(date); wxBillDeposit.setUpdatetime(date); @@ -332,10 +330,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } @Transactional(rollbackFor = {Exception.class}) - public void buildRent(WxMerchant wxMerchant) { - - //获取用户 - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); + public void buildRent(WxMerchant wxMerchant, Long userId) { //根据商户ID找出合同 WxRentContract wxRentContract = new WxRentContract(); @@ -417,7 +412,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillRent.setTenantId(wxMerchant.getTenantId()); wxBillRent.setIsDel(0); wxBillRent.setMerchantId(wxMerchant.getId()); - wxBillRent.setUserId(user.getId()); + wxBillRent.setUserId(userId); wxBillRent.setShopId(wxRentContract.getShopId()); wxBillRent.setCreatetime(date); wxBillRent.setUpdatetime(date); @@ -712,12 +707,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { } @Override - public ResultData updateFile(WxRentContract record) { - return getResultDataForUpdate(record); + public ResultData updateFile(WxRentContract record, Long userId) { + return getResultDataForUpdate(record, userId); } @Override - public ResultData updateRentContractStatus(Long id) { + public ResultData updateRentContractStatus(Long id, Long userId) { if(id == null) { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -742,9 +737,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxMerchant.setId(record.getMerchantId()); wxMerchant.setTenantId(record.getTenantId()); //租金 - buildRent(wxMerchant); + buildRent(wxMerchant, userId); //押金 - buildDeposit(wxMerchant); + buildDeposit(wxMerchant, userId); } } return new ResultData(Result.SUCCESS, "操作成功"); From 13b9626a75b13c06b90cff30d5345851dfbd28c5 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 13:06:58 +0800 Subject: [PATCH 13/16] =?UTF-8?q?[EXCEPTION][=E4=BF=AE=E6=94=B9]:=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WxMerchantController.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java index 8fa77063b..8ea4f39ad 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java @@ -7,6 +7,7 @@ import com.iformall.service.WxMerchantService; import com.iformall.utils.HashUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -34,9 +35,13 @@ public class WxMerchantController extends BaseController { if(merchantCode == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } + String codeMD5 = HashUtil.DecodeByMD5(merchantCode); + if(StringUtils.isBlank(codeMD5)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } HashMap params = new HashMap(); params.put("tenantId", getTenantId()); - params.put("merchantCode", HashUtil.DecodeByMD5(merchantCode)); + params.put("merchantCode", codeMD5); WxMerchantVo wxMerchant = wxMerchantService.getMerchantInfo(params); return new ResultData(wxMerchant); } From f722381f9a6a67950e15c3eb91a7ef04b401079e Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 15:14:47 +0800 Subject: [PATCH 14/16] =?UTF-8?q?[banner=E5=9B=BE][=E4=BC=98=E5=8C=96]:lis?= =?UTF-8?q?t=E5=8F=AA=E8=BF=94=E5=9B=9E=E7=9B=B8=E5=85=B3=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81html=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxCampaignController.java | 5 +---- .../com/iformall/mapper/WxCampaignMapper.java | 2 ++ .../com/iformall/service/WxCampaignService.java | 16 ++++++++++++---- .../service/impl/WxCampaignServiceImpl.java | 5 +++++ .../main/resources/mapper/WxCampaignMapper.xml | 11 ++++++++++- 5 files changed, 30 insertions(+), 9 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java index ca32ed72c..bbd4b1f6e 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java @@ -10,7 +10,6 @@ import com.iformall.enums.EnumCampaignStatus; import com.iformall.enums.EnumCouponChannelType; import com.iformall.service.WxCampaignService; import com.iformall.service.WxCouponChannelService; -import com.iformall.service.WxCouponService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -38,8 +37,6 @@ public class WxCampaignController extends BaseController { @Autowired private WxCampaignService wxCampaignService; @Autowired - private WxCouponService wxCouponService; - @Autowired private WxCouponChannelService wxCouponChannelService; @ApiOperation("分页列表接口") @@ -53,7 +50,7 @@ public class WxCampaignController extends BaseController { wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); wxCampaign.setTenantId(getTenantId()); wxCampaign.setSortColumns(SortNum_ASC, CreateTime_ASC); - final PageInfo page = wxCampaignService.listAsPage(wxCampaign, pageNum, pageSize); + final PageInfo page = wxCampaignService.clistAsPage(wxCampaign, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java index bc72cb211..cb7d9559c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java @@ -9,6 +9,8 @@ public interface WxCampaignMapper extends CommonMapper { List findList(WxCampaign wxCampaign); + List findCList(WxCampaign wxCampaign); + int getMaxSortNum(String tenantId); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java b/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java index 3e03fcc45..691d0138f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java @@ -8,15 +8,23 @@ import javax.servlet.http.HttpServletResponse; public interface WxCampaignService { - /** + /** * 根据实体查询分页列表 - * * @param record - * @param offset - * @param limit + * @param pageIndex + * @param pageSize * @return */ PageInfo listAsPage(WxCampaign record, Integer pageIndex, Integer pageSize); + + /** + * 根据实体查询分页列表 + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo clistAsPage(WxCampaign record, Integer pageIndex, Integer pageSize); /** * 根据Id获得实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java index 185116679..8e084451a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java @@ -56,6 +56,11 @@ public class WxCampaignServiceImpl implements WxCampaignService { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCampaignMapper.findList(record)); } + @Override + public PageInfo clistAsPage(WxCampaign record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCampaignMapper.findCList(record)); + } + @Override public WxCampaign getById(Long id) { WxCampaign wxCampaign = wxCampaignMapper.selectByPrimaryKey(id); diff --git a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml index 77101d9cd..8bd102692 100644 --- a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml @@ -26,7 +26,11 @@ `id`,`tenant_id`,`cover_img`,`title`,`sub_title`,`use_price`,`discount_price`,`detail`,`valid_start_date`,`valid_end_date`,`img_detail`,`type`,`coupon_ids`, - `mechant_id`,`sort_num`,`status`,`create_time`,`update_time`,`html` + `mechant_id`,`sort_num`,`status`,`create_time`,`update_time` + + + + `id`,`tenant_id`,`cover_img`,`title`,`sort_num` @@ -135,6 +139,11 @@ + + From 8b85348a2cb9e9ce0071909d8e0260fde9e014b8 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 18:58:23 +0800 Subject: [PATCH 15/16] =?UTF-8?q?[banner=E5=9B=BE][=E4=BC=98=E5=8C=96]:det?= =?UTF-8?q?ail=E4=B8=8D=E9=9C=80=E8=A6=81html=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/WxCampaignMapper.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml index 8bd102692..b901c6a9d 100644 --- a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml @@ -26,13 +26,18 @@ `id`,`tenant_id`,`cover_img`,`title`,`sub_title`,`use_price`,`discount_price`,`detail`,`valid_start_date`,`valid_end_date`,`img_detail`,`type`,`coupon_ids`, - `mechant_id`,`sort_num`,`status`,`create_time`,`update_time` + `mechant_id`,`sort_num`,`status`,`create_time`,`update_time`,`html` `id`,`tenant_id`,`cover_img`,`title`,`sort_num` + + `id`,`tenant_id`,`cover_img`,`title`,`sub_title`,`use_price`,`discount_price`,`detail`,`valid_start_date`,`valid_end_date`,`img_detail`,`type`,`coupon_ids`, + `mechant_id`,`sort_num`,`status`,`create_time`,`update_time` + + where 1 = 1 @@ -135,7 +140,7 @@ From 54a26310d032858edc4c1284c5387f737eaa199a Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 19:20:37 +0800 Subject: [PATCH 16/16] =?UTF-8?q?[banner=E5=9B=BE][=E4=BC=98=E5=8C=96]:C?= =?UTF-8?q?=E7=AB=AFbanner=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkService/src/main/resources/mapper/WxCampaignMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml index b901c6a9d..8897f9d57 100644 --- a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml @@ -30,7 +30,7 @@ - `id`,`tenant_id`,`cover_img`,`title`,`sort_num` + `id`,`tenant_id`,`cover_img`,`title`,`type`,`sort_num`