From f711ea0d65003f649e9af31e8e8b61f84acd178b Mon Sep 17 00:00:00 2001 From: hupeng Date: Mon, 15 Oct 2018 13:38:42 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=A0=87=E7=AD=BE][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E4=BC=9A=E5=91=98=E8=87=AA=E5=8A=A8=E6=89=93?= =?UTF-8?q?=E6=A0=87=E8=B0=83=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/controller/WxCarController.java | 5 ++ .../controller/WxUserGrantController.java | 14 +++-- .../iformall/service/WxCUserTagsService.java | 8 ++- .../impl/WxCUserBasicInfoServiceImpl.java | 59 ++++++------------- .../service/impl/WxCUserTagsServiceImpl.java | 40 ++++++++++--- .../service/impl/WxOrderServiceImpl.java | 10 ++-- 6 files changed, 76 insertions(+), 60 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java index 6a950dc13..a50b78381 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java @@ -52,6 +52,9 @@ public class WxCarController extends BaseController { @Autowired WxScoreRulesService wxScoreRulesService; + @Autowired + WxCUserTagsService wxCUserTagsService; + private WxPark getCurrentPark(WxCUser user) { WxPark parkQ = new WxPark(); parkQ.setTenantId(user.getTenantId()); @@ -319,6 +322,8 @@ public class WxCarController extends BaseController { logger.error(e.getMessage()); return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage()); } + + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,user); return new ResultData(retObj); } else { return new ResultData(ErrorCode.TJD_BIND_FAIL.getCode(), "绑车牌失败", retObj); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index d73e62dfd..4393d8fa8 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -16,10 +16,8 @@ import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUserCar; import com.iformall.domain.po.WxLevelConfig; import com.iformall.domain.vo.WxCUserVo; -import com.iformall.service.WxCUserCarService; -import com.iformall.service.WxCUserService; -import com.iformall.service.WxLevelConfigService; -import com.iformall.service.WxScoreRulesService; +import com.iformall.enums.EnumAssignTagsTrigger; +import com.iformall.service.*; import com.iformall.utils.IPUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -60,6 +58,9 @@ public class WxUserGrantController extends BaseController { @Autowired WxLevelConfigService wxLevelConfigService; + @Autowired + WxCUserTagsService wxCUserTagsService; + /** * 用户登录 * @param map @@ -145,6 +146,8 @@ public class WxUserGrantController extends BaseController { logger.error(e.getMessage()); } resultMap.put("token", token); + + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN,user1); } else { user.setTenantId(wxAppinfo.getTenantId()); user.createToken(new Date()); @@ -172,6 +175,8 @@ public class WxUserGrantController extends BaseController { logger.error(e.getMessage()); } resultMap.put("token", token); + + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN,user); } } catch (Exception e) { logger.error(e.getMessage()); @@ -296,6 +301,7 @@ public class WxUserGrantController extends BaseController { if (!user.getPhone().contains("*")) { // 用户手机非加密 // 更新到basicinfo saveToBasicInfo(user); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE,user); } return new ResultData(resultMap); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java index d3862238d..38942b0e3 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java @@ -6,7 +6,9 @@ import com.github.pagehelper.PageInfo; 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.WxChooseTagVo; +import com.iformall.enums.EnumAssignTagsTrigger; public interface WxCUserTagsService { @@ -79,5 +81,9 @@ public interface WxCUserTagsService { * @return */ WxChooseTagVo findChooseTag(String tenantId, List tagIds); - + + + List assignTags(List tagIdList, WxCUserBasicInfo user); + List triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj); + } 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 b7688591f..4322bf0a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -20,11 +20,14 @@ import com.iformall.domain.po.WxTags; import com.iformall.domain.vo.CUserBaseInfoT; import com.iformall.domain.vo.CUserBaseVo; import com.iformall.domain.vo.CUserTagVo; +import com.iformall.enums.EnumAssignTagsTrigger; +import com.iformall.enums.EnumTag; import com.iformall.mapper.WxCUserBasicInfoMapper; import com.iformall.mapper.WxCUserMapper; import com.iformall.mapper.WxCUserTagsMapper; import com.iformall.mapper.WxTagsMapper; import com.iformall.service.WxCUserBasicInfoService; +import com.iformall.service.WxCUserTagsService; import com.iformall.utils.Constant; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; @@ -64,6 +67,9 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { @Autowired WxTagsMapper wxTagsMapper; + @Autowired + WxCUserTagsService wxCUserTagsService; + @Override public PageInfo listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserBasicInfoMapper.findList(record)); @@ -577,50 +583,19 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { tagIdList.add(Long.valueOf(wxTags.getId())); } } - WxCUserTags wxCUserTags = null; - if (oldUserBase != null) { - if (oldUserBase.getTagId() != null) { - wxCUserTags = wxCUserTagsMapper.selectByPrimaryKey(oldUserBase.getTagId()); - } else { - WxCUserTags cUserTagsQ = new WxCUserTags(); - cUserTagsQ.setUserId(userBase.getId()); - cUserTagsQ.setTenantId(userBase.getTenantId()); - List userTagsList = wxCUserTagsMapper.findList(cUserTagsQ); - if (userTagsList.size() > 0) { - wxCUserTags = userTagsList.get(0); - } - } - if (wxCUserTags != null) { - // have old one, update tagIds - wxCUserTags.setTags(JSON.toJSONString(tagIdList)); - wxCUserTags.setUpdateDate(curDate); - wxCUserTagsMapper.updateByPrimaryKey(wxCUserTags); - } else { - // new one, insert - wxCUserTags = new WxCUserTags(); - wxCUserTags.setId(idWorker.nextId()); - wxCUserTags.setTenantId(tenantId); - wxCUserTags.setUserId(oldUserBase.getId()); - wxCUserTags.setTags(JSON.toJSONString(tagIdList)); - wxCUserTags.setCreateDate(curDate); - wxCUserTags.setUpdateDate(curDate); - wxCUserTagsMapper.insertSelective(wxCUserTags); - } - } else { - // new one, insert - wxCUserTags = new WxCUserTags(); - wxCUserTags.setId(idWorker.nextId()); - wxCUserTags.setTenantId(tenantId); - wxCUserTags.setUserId(userBase.getId()); - wxCUserTags.setTags(JSON.toJSONString(tagIdList)); - wxCUserTags.setCreateDate(curDate); - wxCUserTags.setUpdateDate(curDate); - wxCUserTagsMapper.insertSelective(wxCUserTags); - userBase.setTagId(wxCUserTags.getId()); - wxCUserBasicInfoMapper.updateByPrimaryKeySelective(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); + } } catch (Exception e) { logger.error(e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java index ab2601b20..1fab00ddb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java @@ -67,8 +67,11 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); + record.setCreateDate(new Date()); + record.setUpdateDate(new Date()); wxCUserTagsMapper.insertSelective(record); } else { + record.setUpdateDate(new Date()); wxCUserTagsMapper.updateByPrimaryKeySelective(record); } } @@ -140,16 +143,23 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { //打标 private List assign(WxCUserBasicInfo user, EnumTag tag){ - + if (tag == null || user == null) + return null; WxCUserTags record = new WxCUserTags(); record.setUserId(user.getId()); record.setTenantId(user.getTenantId()); List cUserTagsList = wxCUserTagsMapper.findList(record); if (cUserTagsList.size() > 0) { record.setId(cUserTagsList.get(0).getId()); + record.setTags(cUserTagsList.get(0).getTags()); } String tags = record.getTags(); - List tagIdList = JSON.parseArray(tags, Long.class); + + List tagIdList; + if (tags == null) + tagIdList = new ArrayList(); + else + tagIdList = JSON.parseArray(tags, Long.class); if (tag.getType().getFlag() == EnumTagTypeFlag.FLAG_SINGLE){ Iterator it = tagIdList.iterator(); @@ -164,7 +174,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { tagIdList.add(tag.getCode()); record.setTags(JSON.toJSONString(tagIdList)); saveOrUpdate(record); - if (!user.getTagId().equals(record.getId())) { + if (user.getTagId() == null || + !user.getTagId().equals(record.getId())) { user.setTagId(record.getId()); wxCUserBasicInfoService.update(user); } @@ -175,7 +186,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { //去标 private List resign(WxCUserBasicInfo user, EnumTag tag){ - + if (tag == null || user == null) + return null; WxCUserTags record = new WxCUserTags(); record.setUserId(user.getId()); record.setTenantId(user.getTenantId()); @@ -203,9 +215,9 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { //类型打标 private List assignTypeId1(WxCUserBasicInfo user, Integer sex) { List resList = null; - if (sex.equals(EnumCUserBaseInfoSex.MALE)) + if (sex.equals(EnumCUserBaseInfoSex.MALE.getCode())) resList = assign(user, EnumTag.ID_1); - if (sex.equals(EnumCUserBaseInfoSex.FEMALE)) + if (sex.equals(EnumCUserBaseInfoSex.FEMALE.getCode())) resList = assign(user, EnumTag.ID_2); return resList; } @@ -451,10 +463,20 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { return resList; } + //打标接口 + @Override + public List assignTags(List tagIdList, WxCUserBasicInfo user) { + List resList = null; + for (Long tagId : tagIdList) { + resList = assign(user, EnumTag.getEnum(tagId)); + } + return resList; + } + //打标触发 - //@Override - private List triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj) { - if (obj != null) + @Override + public List triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj) { + if (obj == null) return null; List resList = null; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index b3e928ce7..4a7915daf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -10,10 +10,7 @@ import com.iformall.domain.vo.WxOrderCVo; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; -import com.iformall.service.WxCUserService; -import com.iformall.service.WxOrderService; -import com.iformall.service.WxPayOrderService; -import com.iformall.service.WxScoreRulesService; +import com.iformall.service.*; import com.iformall.utils.RedisLock; import com.iformall.utils.Utility; import org.slf4j.Logger; @@ -69,6 +66,9 @@ public class WxOrderServiceImpl implements WxOrderService { @Autowired WxScoreRulesService wxScoreRulesService; + @Autowired + WxCUserTagsService wxCUserTagsService; + @Override public PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); @@ -333,6 +333,8 @@ public class WxOrderServiceImpl implements WxOrderService { couponOrder.setCouponPrice(order.getPayment()); wxCouponOrderMapper.insertSelective(couponOrder); + + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user); return couponOrder; }