From 7e18d5708646aaaf0e09d3fb1eec474073f61456 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Sat, 21 Aug 2021 23:26:39 +0800 Subject: [PATCH] fix tags --- .../controller/basic/WxTagsController.java | 2 +- .../mem/WxCUserBasicInfoController.java | 2 +- .../migration/V202109010002__tag_tenantId.sql | 1 + .../controller/WxCUserController.java | 2 +- .../WxMsgValidationcodeController.java | 2 +- .../controller/WxUserGrantController.java | 4 +- .../controller/callback/JinMaoController.java | 12 +- .../schedule/WxCUserTagsSchedule.java | 2 +- .../java/com/iformall/domain/po/WxTags.java | 4 +- .../iformall/enums/EnumAssignTagsTrigger.java | 3 +- .../java/com/iformall/enums/EnumTagGroup.java | 5 +- .../java/com/iformall/enums/EnumTagType.java | 4 +- .../com/iformall/mapper/WxTagsMapper.java | 6 +- .../iformall/service/WxCUserTagsService.java | 3 +- .../com/iformall/service/WxTagsService.java | 3 +- .../service/impl/TtCUserServiceImpl.java | 2 +- .../impl/WxCUserBasicInfoServiceImpl.java | 4 +- .../service/impl/WxCUserServiceImpl.java | 2 +- .../service/impl/WxCUserTagsServiceImpl.java | 105 ++---------------- .../service/impl/WxOrderServiceImpl.java | 2 +- .../service/impl/WxTagsServiceImpl.java | 4 +- .../service/park/impl/util/ParkHelper.java | 2 +- .../iformall/service/tags/TagsDeveloper.java | 11 ++ .../tags/jinmao/JinMaoOrderTagsDeveloper.java | 94 ++++++++++++++++ .../tags/jinmao/JinMaoUserTagsDeveloper.java | 53 +++++++++ .../main/resources/mapper/WxTagsMapper.xml | 12 +- .../controller/basic/WxTagsController.java | 2 +- 27 files changed, 224 insertions(+), 124 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V202109010002__tag_tenantId.sql create mode 100644 mallinkService/src/main/java/com/iformall/service/tags/TagsDeveloper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoOrderTagsDeveloper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoUserTagsDeveloper.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java index 1a14dcc9f..f41abb8fc 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java @@ -37,7 +37,7 @@ public class WxTagsController extends BaseController { @SystemControllerLog(description = "会员管理-标签获取") public ResultData getAllList() { logger.debug("[" + getIpAddr() + "] WxTagsController::getAllList"); - return new ResultData(wxTagsService.listAllVo()); + return new ResultData(wxTagsService.listAllVo(ifParentUpdateTenantInfo())); } @ApiOperation("查询会员用户人群") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java index 84a8f02f3..e4a0fe757 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java @@ -231,7 +231,7 @@ public class WxCUserBasicInfoController extends BaseController { wxCUserBasicInfo.setFinalTenantId(tenantEntity.getFinalTenantId()); wxCUserBasicInfoService.update(wxCUserBasicInfo); wxCUserBasicInfo.updateTenantInfo(oldInfo); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo,tenantEntity); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo,tenantEntity,null); return new ResultData(); } diff --git a/mallinkAdmin/src/main/resources/db/migration/V202109010002__tag_tenantId.sql b/mallinkAdmin/src/main/resources/db/migration/V202109010002__tag_tenantId.sql new file mode 100644 index 000000000..c39d5b143 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202109010002__tag_tenantId.sql @@ -0,0 +1 @@ +ALTER TABLE wx_tags ADD COLUMN tenant_id VARCHAR(5) COMMENT '商场专属时填写'; \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java index 44fda1849..305eb1227 100755 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java @@ -244,7 +244,7 @@ public class WxCUserController extends BaseController { //增加积分 addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, bUser,wxMerchant); } - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo,bUser); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo,bUser,null); wxCUserFromB.setBUserId(wxCUserFromBDto.getUserId()); wxCUserFromB.setCUserId(wxCUserBasicInfo.getId()); wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid()); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java index d98bc9c18..a4d1d1b21 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java @@ -89,7 +89,7 @@ public class WxMsgValidationcodeController extends BaseController { wxCUserService.saveOrUpdate(user); wxCUserService.delForUserIdOnly(user.getId(),user.getUserId(),user.getTenantId()); // wxCUserService.assureUserIdOnly(user.getId(),); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE,user,wxMsgValidationcode); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE,user,wxMsgValidationcode,null); cUserTokenService.removeTokenCache(user.getToken()); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index c9c285775..e9dfd1677 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -628,7 +628,7 @@ public class WxUserGrantController extends BaseController { } wxCUserService.saveOrUpdate(user); wxCUserService.delForUserIdOnly(user.getId(),user.getUserId(),user.getTenantId()); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE, user,user); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE, user,user,null); } removeCacheCUser(); @@ -913,7 +913,7 @@ public class WxUserGrantController extends BaseController { wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); wxCreditHistory.setOperatorId(memberId); wxCreditHistoryService.saveOrUpdate(wxCreditHistory,tenantEntity.getTenantId()); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, record,tenantEntity); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, record,tenantEntity,null); removeCacheCUser(); } diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java index 4061bcb61..319a39ac4 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java @@ -6,6 +6,8 @@ import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumAssignTagsTrigger; import com.iformall.service.*; +import com.iformall.service.tags.jinmao.JinMaoOrderTagsDeveloper; +import com.iformall.service.tags.jinmao.JinMaoUserTagsDeveloper; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -48,6 +50,12 @@ public class JinMaoController extends BaseController { @Autowired private JmSportOrderService jmSportOrderService; + + @Autowired + private JinMaoOrderTagsDeveloper jinMaoOrderTagsDeveloper; + @Autowired + private JinMaoUserTagsDeveloper jinMaoUserTagsDeveloper; + @@ -109,7 +117,7 @@ public class JinMaoController extends BaseController { basicInfo.setAddress(address); wxCUserBasicInfoService.registerJinmao(tenantEntity,basicInfo); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_JINMAO_USER, basicInfo,tenantEntity); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_DEV, basicInfo,tenantEntity,jinMaoUserTagsDeveloper); }else{ logger.error("JinMaoController --dfhUser 手机号为空或格式不正确---phone{}"+phone); } @@ -176,7 +184,7 @@ public class JinMaoController extends BaseController { order.setGymName(gymName); jmSportOrderService.saveOrUpdate(order); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_JINMAO_ORDER, basicInfo,tenantEntity); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_DEV, basicInfo,tenantEntity,jinMaoOrderTagsDeveloper); }else{ logger.error("JinMaoController --dfhOrder--订单手机号为空或者订单号为空-userPhone{}"+userPhone+"-orderId{}"+orderId); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java index 62e9cde32..ba3984184 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java @@ -63,7 +63,7 @@ public class WxCUserTagsSchedule { page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageIndex++, pageSize); page.getList().stream().forEach(cubi -> { try { - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_SCAN, new WxCUserBasicTagVo((WxCUserBasicInfo)cubi,mall.getTenantId()),mall); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_SCAN, new WxCUserBasicTagVo((WxCUserBasicInfo)cubi,mall.getTenantId()),mall,null); }catch(Exception e) { logger.error("wxCUserTagsSchedule error."+cubi.toString(),e); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java b/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java index 66a73c84e..064137a47 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java @@ -26,7 +26,9 @@ public class WxTags extends BaseEntity { private String groupName; @io.swagger.annotations.ApiModelProperty(value="二级属性 性别等",name="typeName") private String typeName; - + @io.swagger.annotations.ApiModelProperty(value="专属商场标签时填写",name="tenantId") + private String tenantId; + @TableField(exist = false) protected Long count; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumAssignTagsTrigger.java b/mallinkService/src/main/java/com/iformall/enums/EnumAssignTagsTrigger.java index 3af8785d2..e07179d4a 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumAssignTagsTrigger.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumAssignTagsTrigger.java @@ -14,8 +14,7 @@ public enum EnumAssignTagsTrigger { ASSIGN_TAGS_TRIGGER_BUY(5, "购买"), ASSIGN_TAGS_TRIGGER_USE(6, "核销"), ASSIGN_TAGS_TRIGGER_SCAN(7, "扫描会员列表"), - ASSIGN_TAGS_TRIGGER_JINMAO_USER(8, "金茂对接会员"), - ASSIGN_TAGS_TRIGGER_JINMAO_ORDER(9, "金茂对接订单"), + ASSIGN_TAGS_TRIGGER_DEV (8, "定制标签") ; public static EnumAssignTagsTrigger getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java b/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java index 7abfca1ef..e9dd9c50b 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java @@ -9,8 +9,11 @@ public enum EnumTagGroup { ID_2(2L, "生活属性"), ID_3(3L, "消费偏好"), ID_4(4L, "行为偏好"), - + + ID_8(8L,"商场定制标签"), + ID_10(10L, "会员动态"), + ; public static EnumTagGroup getEnum(Long code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java index 4f402c0fc..1b1ea455a 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java @@ -42,9 +42,9 @@ public enum EnumTagType { ID_30(30L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_1, "BMI"), - ID_31(31L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_4, "运动频率"), + ID_31(31L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_8, "运动频率"), - ID_32(32L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_4, "购买力"), + ID_32(32L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_8, "购买力"), ID_0(0L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员手机"), ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"), diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java index 9a5c7b039..fd5870fba 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java @@ -2,12 +2,12 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxTags; - import java.util.List; -import java.util.Map; + +import org.apache.ibatis.annotations.Param; public interface WxTagsMapper extends CommonMapper { List findList(WxTags wxTags); - List findListAll(); + List findListAll(@Param("tenantId") String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java index 0651c440d..08560fc86 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java @@ -6,6 +6,7 @@ import com.iformall.domain.po.WxCUserTags; import com.iformall.domain.po.WxTags; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumAssignTagsTrigger; +import com.iformall.service.tags.TagsDeveloper; import java.util.Date; import java.util.List; @@ -48,7 +49,7 @@ public interface WxCUserTagsService { List assignTags(List tagIdList,WxCUserBasicInfo user); - List triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity); + List triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity,TagsDeveloper tagsDeveloper); void updateTagByUserId(Long cUserId,TenantEntity tenantinfo, List tags); diff --git a/mallinkService/src/main/java/com/iformall/service/WxTagsService.java b/mallinkService/src/main/java/com/iformall/service/WxTagsService.java index b1696f6ed..7d25acabc 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxTagsService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxTagsService.java @@ -3,6 +3,7 @@ package com.iformall.service; import java.util.*; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxTags; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxTagsGroupVo; public interface WxTagsService { @@ -41,6 +42,6 @@ public interface WxTagsService { List findList(WxTags wxTags); - List listAllVo(); + List listAllVo(TenantEntity tenantEntity); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCUserServiceImpl.java index 5bd5897f5..1e8cb5fec 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCUserServiceImpl.java @@ -236,7 +236,7 @@ public class TtCUserServiceImpl implements TtCUserService { basicInfo.setLoginCount(loingcount+1); wxCUserBasicInfoService.update(basicInfo); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user,user); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user,user,null); } // WxCUser wxCUser = getById(user.getId(),user.getTenantId()); // if (wxCUser != null) { 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 7cc5b84ce..0eb208181 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -510,7 +510,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc types.add(generateType53()); types.add(generateType54()); filter.setTypes(types); - List listVo =wxTagsService.listAllVo(); + List listVo =wxTagsService.listAllVo(tenantEntity); listVo.add(0,filter); return listVo; } @@ -1398,7 +1398,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc //// //// } // - List tagList = wxTagsMapper.findListAll(); + List tagList = wxTagsMapper.findListAll(tenantInfo.getTenantId()); // // Map finalChaddMap = chaddMap; // Map finalChlesMap = chlesMap; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java index 8cd183f35..4f4567845 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -298,7 +298,7 @@ public class WxCUserServiceImpl implements WxCUserService { basicInfo.setLoginCount(loingcount+1); wxCUserBasicInfoService.update(basicInfo); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user,user); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user,user,null); } // WxCUser wxCUser = getById(user.getId(),user.getTenantId()); // if (wxCUser != null) { 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 7603b8b08..be746a41a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java @@ -13,6 +13,7 @@ import com.iformall.enums.*; import com.iformall.mapper.*; import com.iformall.service.WxCUserTagsService; import com.iformall.service.WxTagsService; +import com.iformall.service.tags.TagsDeveloper; import com.iformall.utils.DateUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -42,8 +43,6 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { @Autowired WxCouponOrderMapper wxCouponOrderMapper; - @Autowired - JmSportOrderMapper jmSportOrderMapper; @Autowired WxCardSpendMapper wxCardSpendMapper; @@ -121,7 +120,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { //**************************************************自动打标逻辑代码 ************************************************************* //打标 - private List assign(WxCUserBasicInfo user, EnumTag tag){ + protected List assign(WxCUserBasicInfo user, EnumTag tag){ if (tag == null || user == null) return null; WxCUserTags record = new WxCUserTags(); @@ -249,7 +248,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { } //类型打标 - private List assignTypeId1(WxCUserBasicInfo user, Integer sex) { + protected List assignTypeId1(WxCUserBasicInfo user, Integer sex) { List resList = null; if (sex.equals(EnumCUserBaseInfoSex.MALE.getCode())) resList = assign(user, EnumTag.ID_1); @@ -258,7 +257,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { return resList; } - private List assignTypeId2(WxCUserBasicInfo user, Date date) { + protected List assignTypeId2(WxCUserBasicInfo user, Date date) { List resList = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { @@ -278,7 +277,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { return resList; } - private List assignTypeId3(WxCUserBasicInfo user, Date date) { + protected List assignTypeId3(WxCUserBasicInfo user, Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int year = cal.get(Calendar.YEAR); @@ -301,7 +300,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { return null; } - private List assignTypeId4(WxCUserBasicInfo user, Date date) { + protected List assignTypeId4(WxCUserBasicInfo user, Date date) { final int[] dayArr = new int[]{ 20, 19, 21, 20, 21, 22, 23, 23, @@ -352,7 +351,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { return resList; } - private List assignTypeId7(WxCUserBasicInfo user, String phone) { + protected List assignTypeId7(WxCUserBasicInfo user, String phone) { List resList = null; /** @@ -700,7 +699,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { } return resList; } - private List assignTypeId30(WxCUserBasicInfo user, String h,String w) { + protected List assignTypeId30(WxCUserBasicInfo user, String h,String w) { List resList = null; //BMI=体重(kg)/(身高X身高)(㎡) // ID_172(172L, EnumTagType.ID_30, "过轻"),//BMI<18.5  @@ -722,55 +721,6 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { return resList; } - private List assignTypeId31(WxCUserBasicInfo user,TenantEntity tenantEntity) { - List resList = null; - Calendar startC = Calendar.getInstance(); - startC.setTime(new Date()); - startC.add(Calendar.DAY_OF_YEAR, -30); - - JmSportOrder jmSportOrder = new JmSportOrder(); - jmSportOrder.setUserId(user.getId()); - jmSportOrder.setStartDate(startC.getTime()); - jmSportOrder.setEndDate(new Date()); - jmSportOrder.updateTenantInfo(tenantEntity); - - int count = jmSportOrderMapper.findCount(jmSportOrder); -// 平均30天订单数>3     高 -// 3>平均30天订单数>1.5 中 -// 1.5>平均30天订单数>0  低 - float verifiedRate = (float)count/30; - if (verifiedRate > 1F/10) - resList = assign(user, EnumTag.ID_178); - else if (verifiedRate > 1F/20) - resList = assign(user, EnumTag.ID_177); - else - resList = assign(user, EnumTag.ID_176); - - return resList; - } - - private List assignTypeId32(WxCUserBasicInfo user,TenantEntity tenantEntity) { - List resList = null; - - JmSportOrder jmSportOrder = new JmSportOrder(); - jmSportOrder.setUserId(user.getId()); - jmSportOrder.updateTenantInfo(tenantEntity); - Integer avgPayment = jmSportOrderMapper.findAvgPayment(jmSportOrder); -// 30>平均订单金额>50   强购买力 -// 30>平均订单金额>10   中购买力 -// 10>平均订单金额>0    弱购买力 - if(avgPayment != null){ - if (avgPayment.intValue() >= 30) - resList = assign(user, EnumTag.ID_181); - else if (avgPayment.intValue() >= 10) - resList = assign(user, EnumTag.ID_180); - else - resList = assign(user, EnumTag.ID_179); - } - - return resList; - } - //打标接口 @Override public List assignTags(List tagIdList, WxCUserBasicInfo user) { @@ -783,7 +733,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { //打标触发 @Override - public List triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity) { + public List triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity,TagsDeveloper developer) { if (obj == null) return null; @@ -941,41 +891,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { } } break; - case ASSIGN_TAGS_TRIGGER_JINMAO_USER: { - WxCUserBasicInfo param = (WxCUserBasicInfo) obj; - WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId(),param.getFinalTenantId()); - if (user != null) { - if (user.getSex() != null) { - //性别 - resList = assignTypeId1(user, user.getSex()); - } - if (user.getBirthdate() != null) { - //X0后 - resList = assignTypeId2(user, user.getBirthdate()); - //生肖 - resList = assignTypeId3(user, user.getBirthdate()); - //星座 - resList = assignTypeId4(user, user.getBirthdate()); - } - if (user.getPhone() != null) { - //运营商 - resList = assignTypeId7(user, user.getPhone()); - } - if (StringUtils.isNotBlank(user.getHeight()) && StringUtils.isNotBlank(user.getWeight())){ - resList = assignTypeId30(user,user.getHeight(),user.getWeight()); - } - } - } - break; - case ASSIGN_TAGS_TRIGGER_JINMAO_ORDER: { - WxCUserBasicInfo param = (WxCUserBasicInfo) obj; - WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId(),param.getFinalTenantId()); - if (user != null) { - //运动频次 - resList = assignTypeId31(user,tenantEntity); - //购买力 - resList = assignTypeId32(user,tenantEntity); - } + case ASSIGN_TAGS_TRIGGER_DEV: { + resList = developer.getTagList(tenantEntity, obj); } break; default: 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 b9de00f4a..ae87d853c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -1430,7 +1430,7 @@ public class WxOrderServiceImpl implements WxOrderService { */ public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) { /// TODO 晚上会定时打一下tag - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,updateOrder); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,updateOrder,null); // 交易发券 try { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java index cfe715c35..71a5ccf17 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxTags; import com.iformall.domain.po.WxTagsGroup; import com.iformall.domain.po.WxTagsType; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxTagsGroupVo; import com.iformall.domain.vo.WxTagsTypeVo; import com.iformall.mapper.WxTagsMapper; @@ -65,7 +66,7 @@ public class WxTagsServiceImpl implements WxTagsService { } @Override - public List listAllVo() { + public List listAllVo(TenantEntity tenantEntity) { List groupVos = new ArrayList<>(); List groups = wxTagsGroupService.findList(null); for (WxTagsGroup tg : groups) { @@ -85,6 +86,7 @@ public class WxTagsServiceImpl implements WxTagsService { WxTags t = new WxTags(); t.setTypeId(tt.getId()); + t.setTenantId(tenantEntity.getTenantId()); ttvo.setTags(findList(t)); typeVos.add(ttvo); } diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java b/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java index 67fb7f354..a4d64b724 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java @@ -82,7 +82,7 @@ public class ParkHelper { wxScoreRulesService.addScore(userCar,EnumScoreType.BIND_CAR, userCar); //增加积分 addCredit(park, cuUserId); - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,userCar,park); + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,userCar,park,null); } //-----增加积分start----- diff --git a/mallinkService/src/main/java/com/iformall/service/tags/TagsDeveloper.java b/mallinkService/src/main/java/com/iformall/service/tags/TagsDeveloper.java new file mode 100644 index 000000000..b8bdc47ce --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/tags/TagsDeveloper.java @@ -0,0 +1,11 @@ +package com.iformall.service.tags; + +import java.util.List; + +import com.iformall.domain.po.WxTags; +import com.iformall.domain.po.base.TenantEntity; + +public interface TagsDeveloper { + + List getTagList( TenantEntity tenantEntity,Object obj); +} diff --git a/mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoOrderTagsDeveloper.java b/mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoOrderTagsDeveloper.java new file mode 100644 index 000000000..910c59ced --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoOrderTagsDeveloper.java @@ -0,0 +1,94 @@ +package com.iformall.service.tags.jinmao; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.iformall.domain.po.JmSportOrder; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxTags; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumTag; +import com.iformall.mapper.JmSportOrderMapper; +import com.iformall.mapper.WxCUserBasicInfoMapper; +import com.iformall.service.impl.WxCUserTagsServiceImpl; +import com.iformall.service.tags.TagsDeveloper; + +@Service +public class JinMaoOrderTagsDeveloper extends WxCUserTagsServiceImpl implements TagsDeveloper { + + @Autowired + private WxCUserBasicInfoMapper wxCUserBasicInfoMapper; + + @Autowired + JmSportOrderMapper jmSportOrderMapper; + + @Override + public List getTagList(TenantEntity tenantEntity,Object obj) { + List resList = null; + WxCUserBasicInfo param = (WxCUserBasicInfo) obj; + WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId(),param.getFinalTenantId()); + if (user != null) { + //运动频次 + resList = assignTypeId31(user,tenantEntity); + //购买力 + resList = assignTypeId32(user,tenantEntity); + } + return resList; + } + + private List assignTypeId31(WxCUserBasicInfo user,TenantEntity tenantEntity) { + List resList = null; + Calendar startC = Calendar.getInstance(); + startC.setTime(new Date()); + startC.add(Calendar.DAY_OF_YEAR, -30); + + JmSportOrder jmSportOrder = new JmSportOrder(); + jmSportOrder.setUserId(user.getId()); + jmSportOrder.setStartDate(startC.getTime()); + jmSportOrder.setEndDate(new Date()); + jmSportOrder.updateTenantInfo(tenantEntity); + + int count = jmSportOrderMapper.findCount(jmSportOrder); +// 平均30天订单数>3     高 +// 3>平均30天订单数>1.5 中 +// 1.5>平均30天订单数>0  低 + float verifiedRate = (float)count/30; + if (verifiedRate > 1F/10) + resList = assign(user, EnumTag.ID_178); + else if (verifiedRate > 1F/20) + resList = assign(user, EnumTag.ID_177); + else + resList = assign(user, EnumTag.ID_176); + + return resList; + } + + private List assignTypeId32(WxCUserBasicInfo user,TenantEntity tenantEntity) { + List resList = null; + + JmSportOrder jmSportOrder = new JmSportOrder(); + jmSportOrder.setUserId(user.getId()); + jmSportOrder.updateTenantInfo(tenantEntity); + Integer avgPayment = jmSportOrderMapper.findAvgPayment(jmSportOrder); +// 30>平均订单金额>50   强购买力 +// 30>平均订单金额>10   中购买力 +// 10>平均订单金额>0    弱购买力 + if(avgPayment != null){ + if (avgPayment.intValue() >= 30) + resList = assign(user, EnumTag.ID_181); + else if (avgPayment.intValue() >= 10) + resList = assign(user, EnumTag.ID_180); + else + resList = assign(user, EnumTag.ID_179); + } + + return resList; + } + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoUserTagsDeveloper.java b/mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoUserTagsDeveloper.java new file mode 100644 index 000000000..65d147004 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoUserTagsDeveloper.java @@ -0,0 +1,53 @@ +package com.iformall.service.tags.jinmao; + +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxTags; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.mapper.WxCUserBasicInfoMapper; +import com.iformall.service.impl.WxCUserTagsServiceImpl; +import com.iformall.service.tags.TagsDeveloper; + +@Service +public class JinMaoUserTagsDeveloper extends WxCUserTagsServiceImpl implements TagsDeveloper{ + + @Autowired + private WxCUserBasicInfoMapper wxCUserBasicInfoMapper; + + @Override + public List getTagList(TenantEntity tenantEntity,Object obj) { + List resList = null; + WxCUserBasicInfo param = (WxCUserBasicInfo) obj; + WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId(),param.getFinalTenantId()); + if (user != null) { + if (user.getSex() != null) { + //性别 + resList = assignTypeId1(user, user.getSex()); + } + if (user.getBirthdate() != null) { + //X0后 + resList = assignTypeId2(user, user.getBirthdate()); + //生肖 + resList = assignTypeId3(user, user.getBirthdate()); + //星座 + resList = assignTypeId4(user, user.getBirthdate()); + } + if (user.getPhone() != null) { + //运营商 + resList = assignTypeId7(user, user.getPhone()); + } + if (StringUtils.isNotBlank(user.getHeight()) && StringUtils.isNotBlank(user.getWeight())){ + resList = assignTypeId30(user,user.getHeight(),user.getWeight()); + } + } + return resList; + } + + + +} diff --git a/mallinkService/src/main/resources/mapper/WxTagsMapper.xml b/mallinkService/src/main/resources/mapper/WxTagsMapper.xml index 986c26e86..830b8bcf1 100644 --- a/mallinkService/src/main/resources/mapper/WxTagsMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxTagsMapper.xml @@ -8,10 +8,11 @@ + - `id`,`name`,`group_id`,`group_name`,`type_id`,`type_name` + `id`,`name`,`group_id`,`group_name`,`type_id`,`type_name`,`tenant_id` @@ -44,6 +45,10 @@ and `type_name` = #{typeName} + + + and (`tenant_id` = #{tenantId} or tenant_id is null or tenant_id = '') + and id in @@ -61,9 +66,12 @@ - select from wx_tags + + and (`tenant_id` = #{tenantId} or tenant_id is null or tenant_id = '') + diff --git a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java index 1a14dcc9f..f41abb8fc 100644 --- a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java +++ b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java @@ -37,7 +37,7 @@ public class WxTagsController extends BaseController { @SystemControllerLog(description = "会员管理-标签获取") public ResultData getAllList() { logger.debug("[" + getIpAddr() + "] WxTagsController::getAllList"); - return new ResultData(wxTagsService.listAllVo()); + return new ResultData(wxTagsService.listAllVo(ifParentUpdateTenantInfo())); } @ApiOperation("查询会员用户人群")