| @@ -37,7 +37,7 @@ public class WxTagsController extends BaseController { | |||||
| @SystemControllerLog(description = "会员管理-标签获取") | @SystemControllerLog(description = "会员管理-标签获取") | ||||
| public ResultData getAllList() { | public ResultData getAllList() { | ||||
| logger.debug("[" + getIpAddr() + "] WxTagsController::getAllList"); | logger.debug("[" + getIpAddr() + "] WxTagsController::getAllList"); | ||||
| return new ResultData(wxTagsService.listAllVo()); | |||||
| return new ResultData(wxTagsService.listAllVo(ifParentUpdateTenantInfo())); | |||||
| } | } | ||||
| @ApiOperation("查询会员用户人群") | @ApiOperation("查询会员用户人群") | ||||
| @@ -231,7 +231,7 @@ public class WxCUserBasicInfoController extends BaseController { | |||||
| wxCUserBasicInfo.setFinalTenantId(tenantEntity.getFinalTenantId()); | wxCUserBasicInfo.setFinalTenantId(tenantEntity.getFinalTenantId()); | ||||
| wxCUserBasicInfoService.update(wxCUserBasicInfo); | wxCUserBasicInfoService.update(wxCUserBasicInfo); | ||||
| wxCUserBasicInfo.updateTenantInfo(oldInfo); | 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(); | return new ResultData(); | ||||
| } | } | ||||
| @@ -0,0 +1 @@ | |||||
| ALTER TABLE wx_tags ADD COLUMN tenant_id VARCHAR(5) COMMENT '商场专属时填写'; | |||||
| @@ -244,7 +244,7 @@ public class WxCUserController extends BaseController { | |||||
| //增加积分 | //增加积分 | ||||
| addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, bUser,wxMerchant); | 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.setBUserId(wxCUserFromBDto.getUserId()); | ||||
| wxCUserFromB.setCUserId(wxCUserBasicInfo.getId()); | wxCUserFromB.setCUserId(wxCUserBasicInfo.getId()); | ||||
| wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid()); | wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid()); | ||||
| @@ -89,7 +89,7 @@ public class WxMsgValidationcodeController extends BaseController { | |||||
| wxCUserService.saveOrUpdate(user); | wxCUserService.saveOrUpdate(user); | ||||
| wxCUserService.delForUserIdOnly(user.getId(),user.getUserId(),user.getTenantId()); | wxCUserService.delForUserIdOnly(user.getId(),user.getUserId(),user.getTenantId()); | ||||
| // wxCUserService.assureUserIdOnly(user.getId(),); | // 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()); | cUserTokenService.removeTokenCache(user.getToken()); | ||||
| } | } | ||||
| @@ -628,7 +628,7 @@ public class WxUserGrantController extends BaseController { | |||||
| } | } | ||||
| wxCUserService.saveOrUpdate(user); | wxCUserService.saveOrUpdate(user); | ||||
| wxCUserService.delForUserIdOnly(user.getId(),user.getUserId(),user.getTenantId()); | 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(); | removeCacheCUser(); | ||||
| @@ -913,7 +913,7 @@ public class WxUserGrantController extends BaseController { | |||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | ||||
| wxCreditHistory.setOperatorId(memberId); | wxCreditHistory.setOperatorId(memberId); | ||||
| wxCreditHistoryService.saveOrUpdate(wxCreditHistory,tenantEntity.getTenantId()); | 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(); | removeCacheCUser(); | ||||
| } | } | ||||
| @@ -6,6 +6,8 @@ import com.iformall.domain.po.*; | |||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumAssignTagsTrigger; | import com.iformall.enums.EnumAssignTagsTrigger; | ||||
| import com.iformall.service.*; | 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.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -48,6 +50,12 @@ public class JinMaoController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private JmSportOrderService jmSportOrderService; | private JmSportOrderService jmSportOrderService; | ||||
| @Autowired | |||||
| private JinMaoOrderTagsDeveloper jinMaoOrderTagsDeveloper; | |||||
| @Autowired | |||||
| private JinMaoUserTagsDeveloper jinMaoUserTagsDeveloper; | |||||
| @@ -109,7 +117,7 @@ public class JinMaoController extends BaseController { | |||||
| basicInfo.setAddress(address); | basicInfo.setAddress(address); | ||||
| wxCUserBasicInfoService.registerJinmao(tenantEntity,basicInfo); | 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{ | }else{ | ||||
| logger.error("JinMaoController --dfhUser 手机号为空或格式不正确---phone{}"+phone); | logger.error("JinMaoController --dfhUser 手机号为空或格式不正确---phone{}"+phone); | ||||
| } | } | ||||
| @@ -176,7 +184,7 @@ public class JinMaoController extends BaseController { | |||||
| order.setGymName(gymName); | order.setGymName(gymName); | ||||
| jmSportOrderService.saveOrUpdate(order); | jmSportOrderService.saveOrUpdate(order); | ||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_JINMAO_ORDER, basicInfo,tenantEntity); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_DEV, basicInfo,tenantEntity,jinMaoOrderTagsDeveloper); | |||||
| }else{ | }else{ | ||||
| logger.error("JinMaoController --dfhOrder--订单手机号为空或者订单号为空-userPhone{}"+userPhone+"-orderId{}"+orderId); | logger.error("JinMaoController --dfhOrder--订单手机号为空或者订单号为空-userPhone{}"+userPhone+"-orderId{}"+orderId); | ||||
| @@ -63,7 +63,7 @@ public class WxCUserTagsSchedule { | |||||
| page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageIndex++, pageSize); | page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageIndex++, pageSize); | ||||
| page.getList().stream().forEach(cubi -> { | page.getList().stream().forEach(cubi -> { | ||||
| try { | 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) { | }catch(Exception e) { | ||||
| logger.error("wxCUserTagsSchedule error."+cubi.toString(),e); | logger.error("wxCUserTagsSchedule error."+cubi.toString(),e); | ||||
| } | } | ||||
| @@ -26,7 +26,9 @@ public class WxTags extends BaseEntity { | |||||
| private String groupName; | private String groupName; | ||||
| @io.swagger.annotations.ApiModelProperty(value="二级属性 性别等",name="typeName") | @io.swagger.annotations.ApiModelProperty(value="二级属性 性别等",name="typeName") | ||||
| private String typeName; | private String typeName; | ||||
| @io.swagger.annotations.ApiModelProperty(value="专属商场标签时填写",name="tenantId") | |||||
| private String tenantId; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| protected Long count; | protected Long count; | ||||
| @@ -14,8 +14,7 @@ public enum EnumAssignTagsTrigger { | |||||
| ASSIGN_TAGS_TRIGGER_BUY(5, "购买"), | ASSIGN_TAGS_TRIGGER_BUY(5, "购买"), | ||||
| ASSIGN_TAGS_TRIGGER_USE(6, "核销"), | ASSIGN_TAGS_TRIGGER_USE(6, "核销"), | ||||
| ASSIGN_TAGS_TRIGGER_SCAN(7, "扫描会员列表"), | 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) { | public static EnumAssignTagsTrigger getEnum(Integer code) { | ||||
| @@ -9,8 +9,11 @@ public enum EnumTagGroup { | |||||
| ID_2(2L, "生活属性"), | ID_2(2L, "生活属性"), | ||||
| ID_3(3L, "消费偏好"), | ID_3(3L, "消费偏好"), | ||||
| ID_4(4L, "行为偏好"), | ID_4(4L, "行为偏好"), | ||||
| ID_8(8L,"商场定制标签"), | |||||
| ID_10(10L, "会员动态"), | ID_10(10L, "会员动态"), | ||||
| ; | ; | ||||
| public static EnumTagGroup getEnum(Long code) { | public static EnumTagGroup getEnum(Long code) { | ||||
| @@ -42,9 +42,9 @@ public enum EnumTagType { | |||||
| ID_30(30L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_1, "BMI"), | 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_0(0L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员手机"), | ||||
| ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"), | ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"), | ||||
| @@ -2,12 +2,12 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxTags; | import com.iformall.domain.po.WxTags; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | |||||
| import org.apache.ibatis.annotations.Param; | |||||
| public interface WxTagsMapper extends CommonMapper<WxTags, String> { | public interface WxTagsMapper extends CommonMapper<WxTags, String> { | ||||
| List<WxTags> findList(WxTags wxTags); | List<WxTags> findList(WxTags wxTags); | ||||
| List<WxTags> findListAll(); | |||||
| List<WxTags> findListAll(@Param("tenantId") String tenantId); | |||||
| } | } | ||||
| @@ -6,6 +6,7 @@ import com.iformall.domain.po.WxCUserTags; | |||||
| import com.iformall.domain.po.WxTags; | import com.iformall.domain.po.WxTags; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumAssignTagsTrigger; | import com.iformall.enums.EnumAssignTagsTrigger; | ||||
| import com.iformall.service.tags.TagsDeveloper; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -48,7 +49,7 @@ public interface WxCUserTagsService { | |||||
| List<WxTags> assignTags(List<Long> tagIdList,WxCUserBasicInfo user); | List<WxTags> assignTags(List<Long> tagIdList,WxCUserBasicInfo user); | ||||
| List<WxTags> triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity); | |||||
| List<WxTags> triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity,TagsDeveloper tagsDeveloper); | |||||
| void updateTagByUserId(Long cUserId,TenantEntity tenantinfo, List<Long> tags); | void updateTagByUserId(Long cUserId,TenantEntity tenantinfo, List<Long> tags); | ||||
| @@ -3,6 +3,7 @@ package com.iformall.service; | |||||
| import java.util.*; | import java.util.*; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.domain.po.WxTags; | import com.iformall.domain.po.WxTags; | ||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxTagsGroupVo; | import com.iformall.domain.vo.WxTagsGroupVo; | ||||
| public interface WxTagsService { | public interface WxTagsService { | ||||
| @@ -41,6 +42,6 @@ public interface WxTagsService { | |||||
| List<WxTags> findList(WxTags wxTags); | List<WxTags> findList(WxTags wxTags); | ||||
| List<WxTagsGroupVo> listAllVo(); | |||||
| List<WxTagsGroupVo> listAllVo(TenantEntity tenantEntity); | |||||
| } | } | ||||
| @@ -236,7 +236,7 @@ public class TtCUserServiceImpl implements TtCUserService { | |||||
| basicInfo.setLoginCount(loingcount+1); | basicInfo.setLoginCount(loingcount+1); | ||||
| wxCUserBasicInfoService.update(basicInfo); | 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()); | // WxCUser wxCUser = getById(user.getId(),user.getTenantId()); | ||||
| // if (wxCUser != null) { | // if (wxCUser != null) { | ||||
| @@ -510,7 +510,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc | |||||
| types.add(generateType53()); | types.add(generateType53()); | ||||
| types.add(generateType54()); | types.add(generateType54()); | ||||
| filter.setTypes(types); | filter.setTypes(types); | ||||
| List<WxTagsGroupVo> listVo =wxTagsService.listAllVo(); | |||||
| List<WxTagsGroupVo> listVo =wxTagsService.listAllVo(tenantEntity); | |||||
| listVo.add(0,filter); | listVo.add(0,filter); | ||||
| return listVo; | return listVo; | ||||
| } | } | ||||
| @@ -1398,7 +1398,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc | |||||
| //// | //// | ||||
| //// } | //// } | ||||
| // | // | ||||
| List<WxTags> tagList = wxTagsMapper.findListAll(); | |||||
| List<WxTags> tagList = wxTagsMapper.findListAll(tenantInfo.getTenantId()); | |||||
| // | // | ||||
| // Map<Long, Integer> finalChaddMap = chaddMap; | // Map<Long, Integer> finalChaddMap = chaddMap; | ||||
| // Map<Long, Integer> finalChlesMap = chlesMap; | // Map<Long, Integer> finalChlesMap = chlesMap; | ||||
| @@ -298,7 +298,7 @@ public class WxCUserServiceImpl implements WxCUserService { | |||||
| basicInfo.setLoginCount(loingcount+1); | basicInfo.setLoginCount(loingcount+1); | ||||
| wxCUserBasicInfoService.update(basicInfo); | 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()); | // WxCUser wxCUser = getById(user.getId(),user.getTenantId()); | ||||
| // if (wxCUser != null) { | // if (wxCUser != null) { | ||||
| @@ -13,6 +13,7 @@ import com.iformall.enums.*; | |||||
| import com.iformall.mapper.*; | import com.iformall.mapper.*; | ||||
| import com.iformall.service.WxCUserTagsService; | import com.iformall.service.WxCUserTagsService; | ||||
| import com.iformall.service.WxTagsService; | import com.iformall.service.WxTagsService; | ||||
| import com.iformall.service.tags.TagsDeveloper; | |||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -42,8 +43,6 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| @Autowired | @Autowired | ||||
| WxCouponOrderMapper wxCouponOrderMapper; | WxCouponOrderMapper wxCouponOrderMapper; | ||||
| @Autowired | |||||
| JmSportOrderMapper jmSportOrderMapper; | |||||
| @Autowired | @Autowired | ||||
| WxCardSpendMapper wxCardSpendMapper; | WxCardSpendMapper wxCardSpendMapper; | ||||
| @@ -121,7 +120,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| //**************************************************自动打标逻辑代码 ************************************************************* | //**************************************************自动打标逻辑代码 ************************************************************* | ||||
| //打标 | //打标 | ||||
| private List<WxTags> assign(WxCUserBasicInfo user, EnumTag tag){ | |||||
| protected List<WxTags> assign(WxCUserBasicInfo user, EnumTag tag){ | |||||
| if (tag == null || user == null) | if (tag == null || user == null) | ||||
| return null; | return null; | ||||
| WxCUserTags record = new WxCUserTags(); | WxCUserTags record = new WxCUserTags(); | ||||
| @@ -249,7 +248,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| } | } | ||||
| //类型打标 | //类型打标 | ||||
| private List<WxTags> assignTypeId1(WxCUserBasicInfo user, Integer sex) { | |||||
| protected List<WxTags> assignTypeId1(WxCUserBasicInfo user, Integer sex) { | |||||
| List<WxTags> resList = null; | List<WxTags> resList = null; | ||||
| if (sex.equals(EnumCUserBaseInfoSex.MALE.getCode())) | if (sex.equals(EnumCUserBaseInfoSex.MALE.getCode())) | ||||
| resList = assign(user, EnumTag.ID_1); | resList = assign(user, EnumTag.ID_1); | ||||
| @@ -258,7 +257,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| return resList; | return resList; | ||||
| } | } | ||||
| private List<WxTags> assignTypeId2(WxCUserBasicInfo user, Date date) { | |||||
| protected List<WxTags> assignTypeId2(WxCUserBasicInfo user, Date date) { | |||||
| List<WxTags> resList = null; | List<WxTags> resList = null; | ||||
| SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | ||||
| try { | try { | ||||
| @@ -278,7 +277,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| return resList; | return resList; | ||||
| } | } | ||||
| private List<WxTags> assignTypeId3(WxCUserBasicInfo user, Date date) { | |||||
| protected List<WxTags> assignTypeId3(WxCUserBasicInfo user, Date date) { | |||||
| Calendar cal = Calendar.getInstance(); | Calendar cal = Calendar.getInstance(); | ||||
| cal.setTime(date); | cal.setTime(date); | ||||
| int year = cal.get(Calendar.YEAR); | int year = cal.get(Calendar.YEAR); | ||||
| @@ -301,7 +300,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| return null; | return null; | ||||
| } | } | ||||
| private List<WxTags> assignTypeId4(WxCUserBasicInfo user, Date date) { | |||||
| protected List<WxTags> assignTypeId4(WxCUserBasicInfo user, Date date) { | |||||
| final int[] dayArr = new int[]{ | final int[] dayArr = new int[]{ | ||||
| 20, 19, 21, 20, | 20, 19, 21, 20, | ||||
| 21, 22, 23, 23, | 21, 22, 23, 23, | ||||
| @@ -352,7 +351,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| return resList; | return resList; | ||||
| } | } | ||||
| private List<WxTags> assignTypeId7(WxCUserBasicInfo user, String phone) { | |||||
| protected List<WxTags> assignTypeId7(WxCUserBasicInfo user, String phone) { | |||||
| List<WxTags> resList = null; | List<WxTags> resList = null; | ||||
| /** | /** | ||||
| @@ -700,7 +699,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| } | } | ||||
| return resList; | return resList; | ||||
| } | } | ||||
| private List<WxTags> assignTypeId30(WxCUserBasicInfo user, String h,String w) { | |||||
| protected List<WxTags> assignTypeId30(WxCUserBasicInfo user, String h,String w) { | |||||
| List<WxTags> resList = null; | List<WxTags> resList = null; | ||||
| //BMI=体重(kg)/(身高X身高)(㎡) | //BMI=体重(kg)/(身高X身高)(㎡) | ||||
| // ID_172(172L, EnumTagType.ID_30, "过轻"),//BMI<18.5 | // ID_172(172L, EnumTagType.ID_30, "过轻"),//BMI<18.5 | ||||
| @@ -722,55 +721,6 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| return resList; | return resList; | ||||
| } | } | ||||
| private List<WxTags> assignTypeId31(WxCUserBasicInfo user,TenantEntity tenantEntity) { | |||||
| List<WxTags> 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<WxTags> assignTypeId32(WxCUserBasicInfo user,TenantEntity tenantEntity) { | |||||
| List<WxTags> 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 | @Override | ||||
| public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) { | public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) { | ||||
| @@ -783,7 +733,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| //打标触发 | //打标触发 | ||||
| @Override | @Override | ||||
| public List<WxTags> triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity) { | |||||
| public List<WxTags> triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj,TenantEntity tenantEntity,TagsDeveloper developer) { | |||||
| if (obj == null) | if (obj == null) | ||||
| return null; | return null; | ||||
| @@ -941,41 +891,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| } | } | ||||
| } | } | ||||
| break; | 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; | break; | ||||
| default: | default: | ||||
| @@ -1430,7 +1430,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| */ | */ | ||||
| public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) { | public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) { | ||||
| /// TODO 晚上会定时打一下tag | /// TODO 晚上会定时打一下tag | ||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,updateOrder); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,updateOrder,null); | |||||
| // 交易发券 | // 交易发券 | ||||
| try { | try { | ||||
| @@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.domain.po.WxTags; | import com.iformall.domain.po.WxTags; | ||||
| import com.iformall.domain.po.WxTagsGroup; | import com.iformall.domain.po.WxTagsGroup; | ||||
| import com.iformall.domain.po.WxTagsType; | import com.iformall.domain.po.WxTagsType; | ||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxTagsGroupVo; | import com.iformall.domain.vo.WxTagsGroupVo; | ||||
| import com.iformall.domain.vo.WxTagsTypeVo; | import com.iformall.domain.vo.WxTagsTypeVo; | ||||
| import com.iformall.mapper.WxTagsMapper; | import com.iformall.mapper.WxTagsMapper; | ||||
| @@ -65,7 +66,7 @@ public class WxTagsServiceImpl implements WxTagsService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public List<WxTagsGroupVo> listAllVo() { | |||||
| public List<WxTagsGroupVo> listAllVo(TenantEntity tenantEntity) { | |||||
| List<WxTagsGroupVo> groupVos = new ArrayList<>(); | List<WxTagsGroupVo> groupVos = new ArrayList<>(); | ||||
| List<WxTagsGroup> groups = wxTagsGroupService.findList(null); | List<WxTagsGroup> groups = wxTagsGroupService.findList(null); | ||||
| for (WxTagsGroup tg : groups) { | for (WxTagsGroup tg : groups) { | ||||
| @@ -85,6 +86,7 @@ public class WxTagsServiceImpl implements WxTagsService { | |||||
| WxTags t = new WxTags(); | WxTags t = new WxTags(); | ||||
| t.setTypeId(tt.getId()); | t.setTypeId(tt.getId()); | ||||
| t.setTenantId(tenantEntity.getTenantId()); | |||||
| ttvo.setTags(findList(t)); | ttvo.setTags(findList(t)); | ||||
| typeVos.add(ttvo); | typeVos.add(ttvo); | ||||
| } | } | ||||
| @@ -82,7 +82,7 @@ public class ParkHelper { | |||||
| wxScoreRulesService.addScore(userCar,EnumScoreType.BIND_CAR, userCar); | wxScoreRulesService.addScore(userCar,EnumScoreType.BIND_CAR, userCar); | ||||
| //增加积分 | //增加积分 | ||||
| addCredit(park, cuUserId); | addCredit(park, cuUserId); | ||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,userCar,park); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,userCar,park,null); | |||||
| } | } | ||||
| //-----增加积分start----- | //-----增加积分start----- | ||||
| @@ -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<WxTags> getTagList( TenantEntity tenantEntity,Object obj); | |||||
| } | |||||
| @@ -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<WxTags> getTagList(TenantEntity tenantEntity,Object obj) { | |||||
| List<WxTags> 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<WxTags> assignTypeId31(WxCUserBasicInfo user,TenantEntity tenantEntity) { | |||||
| List<WxTags> 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<WxTags> assignTypeId32(WxCUserBasicInfo user,TenantEntity tenantEntity) { | |||||
| List<WxTags> 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; | |||||
| } | |||||
| } | |||||
| @@ -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<WxTags> getTagList(TenantEntity tenantEntity,Object obj) { | |||||
| List<WxTags> 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; | |||||
| } | |||||
| } | |||||
| @@ -8,10 +8,11 @@ | |||||
| <result column="group_name" jdbcType="VARCHAR" property="groupName"/> | <result column="group_name" jdbcType="VARCHAR" property="groupName"/> | ||||
| <result column="type_id" jdbcType="BIGINT" property="typeId"/> | <result column="type_id" jdbcType="BIGINT" property="typeId"/> | ||||
| <result column="type_name" jdbcType="VARCHAR" property="typeName"/> | <result column="type_name" jdbcType="VARCHAR" property="typeName"/> | ||||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`name`,`group_id`,`group_name`,`type_id`,`type_name` | |||||
| `id`,`name`,`group_id`,`group_name`,`type_id`,`type_name`,`tenant_id` | |||||
| </sql> | </sql> | ||||
| <sql id="allColumnsVo"> | <sql id="allColumnsVo"> | ||||
| @@ -44,6 +45,10 @@ | |||||
| <if test=" null != typeName "> | <if test=" null != typeName "> | ||||
| and `type_name` = #{typeName} | and `type_name` = #{typeName} | ||||
| </if> | </if> | ||||
| <if test=" null != tenantId "> | |||||
| and (`tenant_id` = #{tenantId} or tenant_id is null or tenant_id = '') | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| @@ -61,9 +66,12 @@ | |||||
| <include refid="dynamicWhereConditions"/> | <include refid="dynamicWhereConditions"/> | ||||
| </select> | </select> | ||||
| <select id="findListAll" resultMap="BaseResultMap"> | |||||
| <select id="findListAll" resultMap="BaseResultMap" parameterType="String"> | |||||
| select | select | ||||
| <include refid="allColumnsVo"/> | <include refid="allColumnsVo"/> | ||||
| from wx_tags | from wx_tags | ||||
| <if test=" null != tenantId "> | |||||
| and (`tenant_id` = #{tenantId} or tenant_id is null or tenant_id = '') | |||||
| </if> | |||||
| </select> | </select> | ||||
| </mapper> | </mapper> | ||||
| @@ -37,7 +37,7 @@ public class WxTagsController extends BaseController { | |||||
| @SystemControllerLog(description = "会员管理-标签获取") | @SystemControllerLog(description = "会员管理-标签获取") | ||||
| public ResultData getAllList() { | public ResultData getAllList() { | ||||
| logger.debug("[" + getIpAddr() + "] WxTagsController::getAllList"); | logger.debug("[" + getIpAddr() + "] WxTagsController::getAllList"); | ||||
| return new ResultData(wxTagsService.listAllVo()); | |||||
| return new ResultData(wxTagsService.listAllVo(ifParentUpdateTenantInfo())); | |||||
| } | } | ||||
| @ApiOperation("查询会员用户人群") | @ApiOperation("查询会员用户人群") | ||||