Просмотр исходного кода

fix tags

release_toaliyun_real
xiaohanzi 4 лет назад
Родитель
Сommit
7e18d57086
27 измененных файлов: 224 добавлений и 124 удалений
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java
  2. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java
  3. +1
    -0
      mallinkAdmin/src/main/resources/db/migration/V202109010002__tag_tenantId.sql
  4. +1
    -1
      mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java
  5. +1
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java
  6. +2
    -2
      mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java
  7. +10
    -2
      mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java
  8. +1
    -1
      mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java
  9. +3
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxTags.java
  10. +1
    -2
      mallinkService/src/main/java/com/iformall/enums/EnumAssignTagsTrigger.java
  11. +4
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java
  12. +2
    -2
      mallinkService/src/main/java/com/iformall/enums/EnumTagType.java
  13. +3
    -3
      mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java
  14. +2
    -1
      mallinkService/src/main/java/com/iformall/service/WxCUserTagsService.java
  15. +2
    -1
      mallinkService/src/main/java/com/iformall/service/WxTagsService.java
  16. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/TtCUserServiceImpl.java
  17. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  18. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java
  19. +11
    -94
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java
  20. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  21. +3
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java
  22. +1
    -1
      mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java
  23. +11
    -0
      mallinkService/src/main/java/com/iformall/service/tags/TagsDeveloper.java
  24. +94
    -0
      mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoOrderTagsDeveloper.java
  25. +53
    -0
      mallinkService/src/main/java/com/iformall/service/tags/jinmao/JinMaoUserTagsDeveloper.java
  26. +10
    -2
      mallinkService/src/main/resources/mapper/WxTagsMapper.xml
  27. +1
    -1
      mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java

+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java Просмотреть файл

@@ -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("查询会员用户人群")


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java Просмотреть файл

@@ -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();
} }




+ 1
- 0
mallinkAdmin/src/main/resources/db/migration/V202109010002__tag_tenantId.sql Просмотреть файл

@@ -0,0 +1 @@
ALTER TABLE wx_tags ADD COLUMN tenant_id VARCHAR(5) COMMENT '商场专属时填写';

+ 1
- 1
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); 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());


+ 1
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java Просмотреть файл

@@ -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());
} }


+ 2
- 2
mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java Просмотреть файл

@@ -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();
} }


+ 10
- 2
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.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);


+ 1
- 1
mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java Просмотреть файл

@@ -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);
} }


+ 3
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxTags.java Просмотреть файл

@@ -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;




+ 1
- 2
mallinkService/src/main/java/com/iformall/enums/EnumAssignTagsTrigger.java Просмотреть файл

@@ -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) {


+ 4
- 1
mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java Просмотреть файл

@@ -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) {


+ 2
- 2
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_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, "会员会龄"),


+ 3
- 3
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.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);
} }

+ 2
- 1
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.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);




+ 2
- 1
mallinkService/src/main/java/com/iformall/service/WxTagsService.java Просмотреть файл

@@ -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);


} }

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/TtCUserServiceImpl.java Просмотреть файл

@@ -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) {


+ 2
- 2
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(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;


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java Просмотреть файл

@@ -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) {


+ 11
- 94
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.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:


+ 1
- 1
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) { 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 {


+ 3
- 1
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.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);
} }


+ 1
- 1
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); 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-----


+ 11
- 0
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<WxTags> getTagList( TenantEntity tenantEntity,Object obj);
}

+ 94
- 0
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<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;
}

}

+ 53
- 0
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<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;
}

}

+ 10
- 2
mallinkService/src/main/resources/mapper/WxTagsMapper.xml Просмотреть файл

@@ -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>

+ 1
- 1
mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java Просмотреть файл

@@ -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("查询会员用户人群")


Загрузка…
Отмена
Сохранить