| @@ -52,6 +52,9 @@ public class WxCarController extends BaseController { | |||
| @Autowired | |||
| WxScoreRulesService wxScoreRulesService; | |||
| @Autowired | |||
| WxCUserTagsService wxCUserTagsService; | |||
| private WxPark getCurrentPark(WxCUser user) { | |||
| WxPark parkQ = new WxPark(); | |||
| parkQ.setTenantId(user.getTenantId()); | |||
| @@ -319,6 +322,8 @@ public class WxCarController extends BaseController { | |||
| logger.error(e.getMessage()); | |||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage()); | |||
| } | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,user); | |||
| return new ResultData(retObj); | |||
| } else { | |||
| return new ResultData(ErrorCode.TJD_BIND_FAIL.getCode(), "绑车牌失败", retObj); | |||
| @@ -16,10 +16,8 @@ import com.iformall.domain.po.WxCUser; | |||
| import com.iformall.domain.po.WxCUserCar; | |||
| import com.iformall.domain.po.WxLevelConfig; | |||
| import com.iformall.domain.vo.WxCUserVo; | |||
| import com.iformall.service.WxCUserCarService; | |||
| import com.iformall.service.WxCUserService; | |||
| import com.iformall.service.WxLevelConfigService; | |||
| import com.iformall.service.WxScoreRulesService; | |||
| import com.iformall.enums.EnumAssignTagsTrigger; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.IPUtil; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiOperation; | |||
| @@ -60,6 +58,9 @@ public class WxUserGrantController extends BaseController { | |||
| @Autowired | |||
| WxLevelConfigService wxLevelConfigService; | |||
| @Autowired | |||
| WxCUserTagsService wxCUserTagsService; | |||
| /** | |||
| * 用户登录 | |||
| * @param map | |||
| @@ -145,6 +146,8 @@ public class WxUserGrantController extends BaseController { | |||
| logger.error(e.getMessage()); | |||
| } | |||
| resultMap.put("token", token); | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN,user1); | |||
| } else { | |||
| user.setTenantId(wxAppinfo.getTenantId()); | |||
| user.createToken(new Date()); | |||
| @@ -172,6 +175,8 @@ public class WxUserGrantController extends BaseController { | |||
| logger.error(e.getMessage()); | |||
| } | |||
| resultMap.put("token", token); | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN,user); | |||
| } | |||
| } catch (Exception e) { | |||
| logger.error(e.getMessage()); | |||
| @@ -296,6 +301,7 @@ public class WxUserGrantController extends BaseController { | |||
| if (!user.getPhone().contains("*")) { // 用户手机非加密 | |||
| // 更新到basicinfo | |||
| saveToBasicInfo(user); | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE,user); | |||
| } | |||
| return new ResultData(resultMap); | |||
| @@ -6,7 +6,9 @@ import com.github.pagehelper.PageInfo; | |||
| import com.iformall.domain.po.WxCUser; | |||
| import com.iformall.domain.po.WxCUserBasicInfo; | |||
| import com.iformall.domain.po.WxCUserTags; | |||
| import com.iformall.domain.po.WxTags; | |||
| import com.iformall.domain.vo.WxChooseTagVo; | |||
| import com.iformall.enums.EnumAssignTagsTrigger; | |||
| public interface WxCUserTagsService { | |||
| @@ -79,5 +81,9 @@ public interface WxCUserTagsService { | |||
| * @return | |||
| */ | |||
| WxChooseTagVo findChooseTag(String tenantId, List<Long> tagIds); | |||
| List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user); | |||
| List<WxTags> triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj); | |||
| } | |||
| @@ -20,11 +20,14 @@ import com.iformall.domain.po.WxTags; | |||
| import com.iformall.domain.vo.CUserBaseInfoT; | |||
| import com.iformall.domain.vo.CUserBaseVo; | |||
| import com.iformall.domain.vo.CUserTagVo; | |||
| import com.iformall.enums.EnumAssignTagsTrigger; | |||
| import com.iformall.enums.EnumTag; | |||
| import com.iformall.mapper.WxCUserBasicInfoMapper; | |||
| import com.iformall.mapper.WxCUserMapper; | |||
| import com.iformall.mapper.WxCUserTagsMapper; | |||
| import com.iformall.mapper.WxTagsMapper; | |||
| import com.iformall.service.WxCUserBasicInfoService; | |||
| import com.iformall.service.WxCUserTagsService; | |||
| import com.iformall.utils.Constant; | |||
| import org.apache.commons.io.FileUtils; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| @@ -64,6 +67,9 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { | |||
| @Autowired | |||
| WxTagsMapper wxTagsMapper; | |||
| @Autowired | |||
| WxCUserTagsService wxCUserTagsService; | |||
| @Override | |||
| public PageInfo<WxCUserBasicInfo> listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize) { | |||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserBasicInfoMapper.findList(record)); | |||
| @@ -577,50 +583,19 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { | |||
| tagIdList.add(Long.valueOf(wxTags.getId())); | |||
| } | |||
| } | |||
| WxCUserTags wxCUserTags = null; | |||
| if (oldUserBase != null) { | |||
| if (oldUserBase.getTagId() != null) { | |||
| wxCUserTags = wxCUserTagsMapper.selectByPrimaryKey(oldUserBase.getTagId()); | |||
| } else { | |||
| WxCUserTags cUserTagsQ = new WxCUserTags(); | |||
| cUserTagsQ.setUserId(userBase.getId()); | |||
| cUserTagsQ.setTenantId(userBase.getTenantId()); | |||
| List<WxCUserTags> userTagsList = wxCUserTagsMapper.findList(cUserTagsQ); | |||
| if (userTagsList.size() > 0) { | |||
| wxCUserTags = userTagsList.get(0); | |||
| } | |||
| } | |||
| if (wxCUserTags != null) { | |||
| // have old one, update tagIds | |||
| wxCUserTags.setTags(JSON.toJSONString(tagIdList)); | |||
| wxCUserTags.setUpdateDate(curDate); | |||
| wxCUserTagsMapper.updateByPrimaryKey(wxCUserTags); | |||
| } else { | |||
| // new one, insert | |||
| wxCUserTags = new WxCUserTags(); | |||
| wxCUserTags.setId(idWorker.nextId()); | |||
| wxCUserTags.setTenantId(tenantId); | |||
| wxCUserTags.setUserId(oldUserBase.getId()); | |||
| wxCUserTags.setTags(JSON.toJSONString(tagIdList)); | |||
| wxCUserTags.setCreateDate(curDate); | |||
| wxCUserTags.setUpdateDate(curDate); | |||
| wxCUserTagsMapper.insertSelective(wxCUserTags); | |||
| } | |||
| } else { | |||
| // new one, insert | |||
| wxCUserTags = new WxCUserTags(); | |||
| wxCUserTags.setId(idWorker.nextId()); | |||
| wxCUserTags.setTenantId(tenantId); | |||
| wxCUserTags.setUserId(userBase.getId()); | |||
| wxCUserTags.setTags(JSON.toJSONString(tagIdList)); | |||
| wxCUserTags.setCreateDate(curDate); | |||
| wxCUserTags.setUpdateDate(curDate); | |||
| wxCUserTagsMapper.insertSelective(wxCUserTags); | |||
| userBase.setTagId(wxCUserTags.getId()); | |||
| wxCUserBasicInfoMapper.updateByPrimaryKeySelective(userBase); | |||
| } | |||
| if (oldUserBase != null) | |||
| wxCUserTagsService.assignTags(tagIdList,oldUserBase); | |||
| else | |||
| wxCUserTagsService.assignTags(tagIdList,userBase); | |||
| } | |||
| //触发自动打标签 | |||
| if (oldUserBase != null) | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,oldUserBase); | |||
| else | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase); | |||
| } | |||
| } catch (Exception e) { | |||
| logger.error(e.getMessage()); | |||
| @@ -67,8 +67,11 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||
| //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| record.setId(idWorker.nextId()); | |||
| record.setCreateDate(new Date()); | |||
| record.setUpdateDate(new Date()); | |||
| wxCUserTagsMapper.insertSelective(record); | |||
| } else { | |||
| record.setUpdateDate(new Date()); | |||
| wxCUserTagsMapper.updateByPrimaryKeySelective(record); | |||
| } | |||
| } | |||
| @@ -140,16 +143,23 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||
| //打标 | |||
| private List<WxTags> assign(WxCUserBasicInfo user, EnumTag tag){ | |||
| if (tag == null || user == null) | |||
| return null; | |||
| WxCUserTags record = new WxCUserTags(); | |||
| record.setUserId(user.getId()); | |||
| record.setTenantId(user.getTenantId()); | |||
| List<WxCUserTags> cUserTagsList = wxCUserTagsMapper.findList(record); | |||
| if (cUserTagsList.size() > 0) { | |||
| record.setId(cUserTagsList.get(0).getId()); | |||
| record.setTags(cUserTagsList.get(0).getTags()); | |||
| } | |||
| String tags = record.getTags(); | |||
| List<Long> tagIdList = JSON.parseArray(tags, Long.class); | |||
| List<Long> tagIdList; | |||
| if (tags == null) | |||
| tagIdList = new ArrayList<Long>(); | |||
| else | |||
| tagIdList = JSON.parseArray(tags, Long.class); | |||
| if (tag.getType().getFlag() == EnumTagTypeFlag.FLAG_SINGLE){ | |||
| Iterator<Long> it = tagIdList.iterator(); | |||
| @@ -164,7 +174,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||
| tagIdList.add(tag.getCode()); | |||
| record.setTags(JSON.toJSONString(tagIdList)); | |||
| saveOrUpdate(record); | |||
| if (!user.getTagId().equals(record.getId())) { | |||
| if (user.getTagId() == null || | |||
| !user.getTagId().equals(record.getId())) { | |||
| user.setTagId(record.getId()); | |||
| wxCUserBasicInfoService.update(user); | |||
| } | |||
| @@ -175,7 +186,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||
| //去标 | |||
| private List<WxTags> resign(WxCUserBasicInfo user, EnumTag tag){ | |||
| if (tag == null || user == null) | |||
| return null; | |||
| WxCUserTags record = new WxCUserTags(); | |||
| record.setUserId(user.getId()); | |||
| record.setTenantId(user.getTenantId()); | |||
| @@ -203,9 +215,9 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||
| //类型打标 | |||
| private List<WxTags> assignTypeId1(WxCUserBasicInfo user, Integer sex) { | |||
| List<WxTags> resList = null; | |||
| if (sex.equals(EnumCUserBaseInfoSex.MALE)) | |||
| if (sex.equals(EnumCUserBaseInfoSex.MALE.getCode())) | |||
| resList = assign(user, EnumTag.ID_1); | |||
| if (sex.equals(EnumCUserBaseInfoSex.FEMALE)) | |||
| if (sex.equals(EnumCUserBaseInfoSex.FEMALE.getCode())) | |||
| resList = assign(user, EnumTag.ID_2); | |||
| return resList; | |||
| } | |||
| @@ -451,10 +463,20 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||
| return resList; | |||
| } | |||
| //打标接口 | |||
| @Override | |||
| public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) { | |||
| List<WxTags> resList = null; | |||
| for (Long tagId : tagIdList) { | |||
| resList = assign(user, EnumTag.getEnum(tagId)); | |||
| } | |||
| return resList; | |||
| } | |||
| //打标触发 | |||
| //@Override | |||
| private List<WxTags> triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj) { | |||
| if (obj != null) | |||
| @Override | |||
| public List<WxTags> triggerAssignTags(EnumAssignTagsTrigger trigger, Object obj) { | |||
| if (obj == null) | |||
| return null; | |||
| List<WxTags> resList = null; | |||
| @@ -10,10 +10,7 @@ import com.iformall.domain.vo.WxOrderCVo; | |||
| import com.iformall.enums.*; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.mapper.*; | |||
| import com.iformall.service.WxCUserService; | |||
| import com.iformall.service.WxOrderService; | |||
| import com.iformall.service.WxPayOrderService; | |||
| import com.iformall.service.WxScoreRulesService; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.RedisLock; | |||
| import com.iformall.utils.Utility; | |||
| import org.slf4j.Logger; | |||
| @@ -69,6 +66,9 @@ public class WxOrderServiceImpl implements WxOrderService { | |||
| @Autowired | |||
| WxScoreRulesService wxScoreRulesService; | |||
| @Autowired | |||
| WxCUserTagsService wxCUserTagsService; | |||
| @Override | |||
| public PageInfo<WxOrder> listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { | |||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); | |||
| @@ -333,6 +333,8 @@ public class WxOrderServiceImpl implements WxOrderService { | |||
| couponOrder.setCouponPrice(order.getPayment()); | |||
| wxCouponOrderMapper.insertSelective(couponOrder); | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user); | |||
| return couponOrder; | |||
| } | |||