Selaa lähdekoodia

fix tags

release_toaliyun_real
xiaohanzi 4 vuotta sitten
vanhempi
commit
7e18d57086
27 muutettua tiedostoa jossa 224 lisäystä ja 124 poistoa
  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 Näytä tiedosto

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


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java Näytä tiedosto

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



+ 1
- 0
mallinkAdmin/src/main/resources/db/migration/V202109010002__tag_tenantId.sql Näytä tiedosto

@@ -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 Näytä tiedosto

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


+ 1
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java Näytä tiedosto

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


+ 2
- 2
mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java Näytä tiedosto

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


+ 10
- 2
mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java Näytä tiedosto

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


+ 1
- 1
mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java Näytä tiedosto

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


+ 3
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxTags.java Näytä tiedosto

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



+ 1
- 2
mallinkService/src/main/java/com/iformall/enums/EnumAssignTagsTrigger.java Näytä tiedosto

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


+ 4
- 1
mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java Näytä tiedosto

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


+ 2
- 2
mallinkService/src/main/java/com/iformall/enums/EnumTagType.java Näytä tiedosto

@@ -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, "会员会龄"),


+ 3
- 3
mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java Näytä tiedosto

@@ -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<WxTags, String> {

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 Näytä tiedosto

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



+ 2
- 1
mallinkService/src/main/java/com/iformall/service/WxTagsService.java Näytä tiedosto

@@ -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<WxTags> findList(WxTags wxTags);

List<WxTagsGroupVo> listAllVo();
List<WxTagsGroupVo> listAllVo(TenantEntity tenantEntity);

}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/TtCUserServiceImpl.java Näytä tiedosto

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


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java Näytä tiedosto

@@ -510,7 +510,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc
types.add(generateType53());
types.add(generateType54());
filter.setTypes(types);
List<WxTagsGroupVo> listVo =wxTagsService.listAllVo();
List<WxTagsGroupVo> listVo =wxTagsService.listAllVo(tenantEntity);
listVo.add(0,filter);
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> finalChlesMap = chlesMap;


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java Näytä tiedosto

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


+ 11
- 94
mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java Näytä tiedosto

@@ -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<WxTags> assign(WxCUserBasicInfo user, EnumTag tag){
protected List<WxTags> 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<WxTags> assignTypeId1(WxCUserBasicInfo user, Integer sex) {
protected List<WxTags> assignTypeId1(WxCUserBasicInfo user, Integer sex) {
List<WxTags> 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<WxTags> assignTypeId2(WxCUserBasicInfo user, Date date) {
protected List<WxTags> assignTypeId2(WxCUserBasicInfo user, Date date) {
List<WxTags> resList = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
@@ -278,7 +277,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
return resList;
}

private List<WxTags> assignTypeId3(WxCUserBasicInfo user, Date date) {
protected List<WxTags> 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<WxTags> assignTypeId4(WxCUserBasicInfo user, Date date) {
protected List<WxTags> 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<WxTags> assignTypeId7(WxCUserBasicInfo user, String phone) {
protected List<WxTags> assignTypeId7(WxCUserBasicInfo user, String phone) {

List<WxTags> resList = null;
/**
@@ -700,7 +699,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
}
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;
//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<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
public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) {
@@ -783,7 +733,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {

//打标触发
@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)
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:


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Näytä tiedosto

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


+ 3
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java Näytä tiedosto

@@ -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<WxTagsGroupVo> listAllVo() {
public List<WxTagsGroupVo> listAllVo(TenantEntity tenantEntity) {
List<WxTagsGroupVo> groupVos = new ArrayList<>();
List<WxTagsGroup> 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);
}


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java Näytä tiedosto

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


+ 11
- 0
mallinkService/src/main/java/com/iformall/service/tags/TagsDeveloper.java Näytä tiedosto

@@ -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 Näytä tiedosto

@@ -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 Näytä tiedosto

@@ -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 Näytä tiedosto

@@ -8,10 +8,11 @@
<result column="group_name" jdbcType="VARCHAR" property="groupName"/>
<result column="type_id" jdbcType="BIGINT" property="typeId"/>
<result column="type_name" jdbcType="VARCHAR" property="typeName"/>
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
</resultMap>

<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 id="allColumnsVo">
@@ -44,6 +45,10 @@
<if test=" null != typeName ">
and `type_name` = #{typeName}
</if>
<if test=" null != tenantId ">
and (`tenant_id` = #{tenantId} or tenant_id is null or tenant_id = '')
</if>

<if test=" null != ids ">
and id in
@@ -61,9 +66,12 @@
<include refid="dynamicWhereConditions"/>
</select>

<select id="findListAll" resultMap="BaseResultMap">
<select id="findListAll" resultMap="BaseResultMap" parameterType="String">
select
<include refid="allColumnsVo"/>
from wx_tags
<if test=" null != tenantId ">
and (`tenant_id` = #{tenantId} or tenant_id is null or tenant_id = '')
</if>
</select>
</mapper>

+ 1
- 1
mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxTagsController.java Näytä tiedosto

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


Ladataan…
Peruuta
Tallenna