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