Browse Source

[成长值导出导入][新增]:成长值导出导入

release_toaliyun_real
Stormeye Wu 7 years ago
parent
commit
128e2f3ea5
5 changed files with 81 additions and 14 deletions
  1. +3
    -3
      mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java
  2. +2
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java
  3. +2
    -2
      mallinkService/src/main/java/com/iformall/service/WxScoreHistoryService.java
  4. +18
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  5. +56
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java

+ 3
- 3
mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java View File

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

+ 2
- 1
mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java View File

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


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/WxScoreHistoryService.java View File

@@ -9,8 +9,8 @@ public interface WxScoreHistoryService {
* 根据实体查询分页列表
*
* @param record
* @param offset
* @param limit
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<WxScoreHistory> listAsPage(WxScoreHistory record, Integer pageIndex, Integer pageSize);


+ 18
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java View File

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


+ 56
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java View File

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


Loading…
Cancel
Save