|
|
|
@@ -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.utils.DateUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
@@ -32,6 +33,9 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { |
|
|
|
@Autowired |
|
|
|
WxCUserBasicInfoMapper wxCUserBasicInfoMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WxCUserBasicChildMapper wxCUserBasicChildMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WxCouponOrderMapper wxCouponOrderMapper; |
|
|
|
|
|
|
|
@@ -161,6 +165,50 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { |
|
|
|
return wxTagsMapper.findList(wxTags); |
|
|
|
} |
|
|
|
|
|
|
|
//按type 替换 |
|
|
|
private List<WxTags> assign(WxCUserBasicInfo user, List<EnumTag> enumTags, EnumTagType type){ |
|
|
|
if(user == null){ |
|
|
|
return null; |
|
|
|
} |
|
|
|
WxCUserTags record = new WxCUserTags(); |
|
|
|
record.setUserId(user.getId()); |
|
|
|
record.setTenantId(user.getFinalTenantId()); |
|
|
|
List<WxCUserTags> cUserTagsList = wxCUserTagsMapper.findList(record); |
|
|
|
List<Long> tagIdList; |
|
|
|
if(cUserTagsList != null && cUserTagsList.size() > 0){ |
|
|
|
record.setId(cUserTagsList.get(0).getId()); |
|
|
|
record.setTags(cUserTagsList.get(0).getTags()); |
|
|
|
} |
|
|
|
String tags = record.getTags(); |
|
|
|
if (tags == null){ |
|
|
|
tagIdList = new ArrayList<Long>(); |
|
|
|
}else{ |
|
|
|
tagIdList = JSON.parseArray(tags, Long.class); |
|
|
|
} |
|
|
|
Iterator<Long> it = tagIdList.iterator(); |
|
|
|
while(it.hasNext()){ |
|
|
|
Long id = it.next(); |
|
|
|
if(null != id && null != EnumTag.getEnum(id) && EnumTag.getEnum(id).getCode() == type.getCode()){ |
|
|
|
it.remove(); |
|
|
|
} |
|
|
|
} |
|
|
|
if(enumTags != null && enumTags.size() > 0){ |
|
|
|
for (EnumTag enumTag:enumTags) { |
|
|
|
tagIdList.add(enumTag.getCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
record.setTags(JSON.toJSONString(tagIdList)); |
|
|
|
saveOrUpdate(record); |
|
|
|
|
|
|
|
if (user.getTagId() == null || !user.getTagId().equals(record.getId())) { |
|
|
|
user.setTagId(record.getId()); |
|
|
|
wxCUserBasicInfoMapper.updateById(user); |
|
|
|
} |
|
|
|
WxTags wxTags = new WxTags(); |
|
|
|
wxTags.setIds(tagIdList); |
|
|
|
return wxTagsMapper.findList(wxTags); |
|
|
|
} |
|
|
|
|
|
|
|
//去标 |
|
|
|
private List<WxTags> resign(WxCUserBasicInfo user, EnumTag tag){ |
|
|
|
if (tag == null || user == null) |
|
|
|
@@ -593,6 +641,54 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { |
|
|
|
return resList; |
|
|
|
} |
|
|
|
|
|
|
|
private List<WxTags> assignTypeId29(WxCUserBasicInfo user) { |
|
|
|
List<WxTags> resList = null; |
|
|
|
WxCUserBasicChild uChild = new WxCUserBasicChild(); |
|
|
|
uChild.setTenantId(user.getFinalTenantId()); |
|
|
|
uChild.setCUserId(user.getId()); |
|
|
|
List<WxCUserBasicChild> list = wxCUserBasicChildMapper.findList(uChild); |
|
|
|
if(list != null && list.size() > 0){ |
|
|
|
List<EnumTag> tags = new ArrayList<>(); |
|
|
|
for (WxCUserBasicChild child:list) { |
|
|
|
if(child.getBirthdate() != null){ |
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
if (cal.after(child.getBirthdate())) { |
|
|
|
int age = DateUtils.getAge(child.getBirthdate()); |
|
|
|
if(age < 1){ |
|
|
|
if(!tags.contains(EnumTag.ID_166)){ |
|
|
|
tags.add(EnumTag.ID_166); |
|
|
|
} |
|
|
|
}else if(age >= 1 && age < 3){ |
|
|
|
if(!tags.contains(EnumTag.ID_167)){ |
|
|
|
tags.add(EnumTag.ID_167); |
|
|
|
} |
|
|
|
}else if(age >= 3 && age < 6){ |
|
|
|
if(!tags.contains(EnumTag.ID_168)){ |
|
|
|
tags.add(EnumTag.ID_168); |
|
|
|
} |
|
|
|
}else if(age >= 6 && age < 12){ |
|
|
|
if(!tags.contains(EnumTag.ID_169)){ |
|
|
|
tags.add(EnumTag.ID_169); |
|
|
|
} |
|
|
|
}else if(age >= 12 && age < 15){ |
|
|
|
if(!tags.contains(EnumTag.ID_170)){ |
|
|
|
tags.add(EnumTag.ID_170); |
|
|
|
} |
|
|
|
}else if(age >= 15 && age < 18){ |
|
|
|
if(!tags.contains(EnumTag.ID_171)){ |
|
|
|
tags.add(EnumTag.ID_171); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
resList = assign(user,tags,EnumTagType.ID_29); |
|
|
|
}else{ |
|
|
|
resList = assign(user,null,EnumTagType.ID_29); |
|
|
|
} |
|
|
|
return resList; |
|
|
|
} |
|
|
|
|
|
|
|
//打标接口 |
|
|
|
@Override |
|
|
|
public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) { |
|
|
|
@@ -638,6 +734,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { |
|
|
|
//学历 |
|
|
|
resList = assignTypeId6(user, param.getEducation()); |
|
|
|
} |
|
|
|
resList = assignTypeId29(user); |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
@@ -730,6 +827,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { |
|
|
|
//学历 |
|
|
|
resList = assignTypeId6(user, user.getEducation()); |
|
|
|
} |
|
|
|
|
|
|
|
resList = assignTypeId29(user); |
|
|
|
|
|
|
|
//消费类别 |
|
|
|
resList = assignTypeId14(user,tenantEntity); |
|
|
|
|