diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java b/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java index 3b136c354..9df810a27 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java @@ -53,7 +53,7 @@ public class CUserBaseInfoT implements Serializable { @Transient @Excel(name="成长值",width = 20,orderNum = "11") - private Integer poins; + private String poins; public String getName() { return name; @@ -135,11 +135,11 @@ public class CUserBaseInfoT implements Serializable { this.tagNames = tagNames; } - public Integer getPoins() { + public String getPoins() { return poins; } - public void setPoins(Integer poins) { + public void setPoins(String poins) { this.poins = poins; } } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java b/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java index 23d4ffc64..c75463afe 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java @@ -11,7 +11,8 @@ public enum EnumScoreType { WIFI_CONNECTION(4, "连接WIFI"), WECHAT_PERSION(5, "微信用户昵称授权"), WECHAT_PHONE(6, "微信用户手机授权"), - COMPLETE_INFO(7, "完善个人信息"); + COMPLETE_INFO(7, "完善个人信息"), + MEM_IMPORT(8, "会员导入"); public static EnumScoreType getEnum(Integer code) { for (EnumScoreType value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxScoreHistoryService.java b/mallinkService/src/main/java/com/iformall/service/WxScoreHistoryService.java index 1ab7a2e36..239c322e7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxScoreHistoryService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxScoreHistoryService.java @@ -9,8 +9,8 @@ public interface WxScoreHistoryService { * 根据实体查询分页列表 * * @param record - * @param offset - * @param limit + * @param pageIndex + * @param pageSize * @return */ PageInfo listAsPage(WxScoreHistory record, Integer pageIndex, Integer pageSize); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 1aaedfece..e1e181d0a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -19,12 +19,14 @@ 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.EnumScoreType; 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.service.WxScoreRulesService; import com.iformall.utils.Constant; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; @@ -73,6 +75,9 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { @Autowired StringRedisTemplate stringRedisTemplate; + @Autowired + WxScoreRulesService wxScoreRulesService; + @Override public PageInfo listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserBasicInfoMapper.findList(record)); @@ -363,7 +368,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { updateDateCellTwo.setCellValue("2018-08-10"); createDateCellTwo.setCellValue("2018-08-10"); tagCellTwo.setCellValue("附近住户"); - scoreCellTwo.setCellValue(100); + scoreCellTwo.setCellValue("100"); } { rowtwo = sheetTwo.createRow(2); @@ -387,7 +392,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { updateDateCellTwo.setCellValue("2018-08-10"); createDateCellTwo.setCellValue("2018-08-10"); tagCellTwo.setCellValue("男/附近住户"); - scoreCellTwo.setCellValue(200); + scoreCellTwo.setCellValue("200"); } { rowtwo = sheetTwo.createRow(3); @@ -411,7 +416,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { updateDateCellTwo.setCellValue("2018-08-10"); createDateCellTwo.setCellValue("2018-08-10"); tagCellTwo.setCellValue("女/附近住户"); - scoreCellTwo.setCellValue(110); + scoreCellTwo.setCellValue("110"); } FileOutputStream fileOut = new FileOutputStream(file); @@ -496,8 +501,6 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { userBase.setTagNames(uBase.getTagNames()); - userBase.setPoins(uBase.getPoins()); - return userBase; } @@ -554,7 +557,6 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { oldUserBase.setBirthdate(userBase.getBirthdate()); oldUserBase.setAddress(userBase.getAddress()); oldUserBase.setUpdateDate(new Date()); - oldUserBase.setPoins(userBase.getPoins()); oldUserBase.setCreateDate(userBase.getCreateDate()); } else { // check c_user 是否存在 @@ -623,6 +625,16 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { else{ wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase); } + + // 成长值 + if (StringUtils.isNotBlank(uBase.getPoins())) { + if (oldUserBase != null) { + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, oldUserBase, uBase.getPoins()); + } else { + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, userBase, uBase.getPoins()); + } + } + //记数 stringRedisTemplate.opsForHash().increment(userId,"successCount",1); }); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java index c7bb13133..23f803aca 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java @@ -122,6 +122,27 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { } } + private void resetBasicUserScore(Long userId, int scoreNumber) { + // 1. basicUser + WxCUserBasicInfo user = wxCUserBasicInfoService.getById(userId); + if(user == null) { + return; + } + + // 2. update score/ 修改basic表积分 + user.setPoins(scoreNumber); + wxCUserBasicInfoService.updateScore(user); + + // 3. 修改 c_user表积分 score + if (user.getPhone() != null) { + WxCUser wxCUser = new WxCUser(); + wxCUser.setTenantId(user.getTenantId()); + wxCUser.setPhone(user.getPhone()); + wxCUser.setScore(scoreNumber); + wxCUserService.saveOrUpdate(wxCUser); + } + } + private int checkTodayLoginScoreCount(WxCUser cUser) { WxScoreHistory scoreHistory = new WxScoreHistory(); scoreHistory.setTenantId(cUser.getTenantId()); @@ -193,7 +214,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { updateScore(order.getCUserId(), addScoreNumber); // 6. 记录历史 - recordScoreHistory(addScoreNumber, order.getTenantId(), order.getCUserId(), EnumScoreType.CONSUMPTION); + recordPayScoreHistory(addScoreNumber, order, EnumScoreType.CONSUMPTION); return addScoreNumber; } @@ -281,6 +302,16 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { return addScoreNumber; } + private int infoResetScore(WxCUserBasicInfo userInfo, Integer score) { + + // 1. 导入成长值 + resetBasicUserScore(userInfo.getId(), score); + + // 2. 记录历史 + recordScoreHistory(score, userInfo.getTenantId(), userInfo.getId(), EnumScoreType.MEM_IMPORT); + return score; + } + private void recordScoreHistory(int addScoreNumber, String tenantId, Long id, EnumScoreType wechatPhone) { final IdWorker idWorker = IdWorker.get(); WxScoreHistory history = new WxScoreHistory(); @@ -293,6 +324,23 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { wxScoreHistoryMapper.insert(history); } + private void recordPayScoreHistory(int addScoreNumber, WxOrder order, EnumScoreType wechatPhone) { + final IdWorker idWorker = IdWorker.get(); + WxScoreHistory history = new WxScoreHistory(); + history.setId(idWorker.nextId()); + history.setTenantId(order.getTenantId()); + history.setCUserId(order.getCUserId()); + history.setCreateDate(new Date()); + history.setScoreType(EnumScoreType.CONSUMPTION.getCode()); + history.setOrderId(order.getId()); + history.setPayType(order.getPaymentType()); + history.setPayAmount(order.getPayment()); + history.setScoreAmount(addScoreNumber); + history.setScoreType(wechatPhone.getCode()); + history.setScoreAmount(addScoreNumber); + wxScoreHistoryMapper.insert(history); + } + @Override public int addScore(EnumScoreType scoreType, Object param) { @@ -321,6 +369,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { WxCUserBasicInfo user = (WxCUserBasicInfo) param; return infoAddScore(user); } + default: { } } @@ -336,8 +385,13 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { Integer bussinessId = (Integer) param2; return payAddScore(order, bussinessId); } - default: { + case MEM_IMPORT: { + WxCUserBasicInfo user = (WxCUserBasicInfo) param1; + Integer score = Integer.valueOf((String)param2); + return infoResetScore(user, score); } + default: + break; } return 0; }