Browse Source

[成长值简单计算][新增]:成长值简单计算

release_toaliyun_real
Stormeye.Wu 7 years ago
parent
commit
d36680ec6c
3 changed files with 57 additions and 2 deletions
  1. +6
    -1
      mallinkService/src/main/java/com/simple/service/WxCUserService.java
  2. +40
    -1
      mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java
  3. +11
    -0
      mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java

+ 6
- 1
mallinkService/src/main/java/com/simple/service/WxCUserService.java View File

@@ -66,11 +66,16 @@ public interface WxCUserService {
/**
* 通过渠道获取会员信息
* @param channel
* @param sceneList
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<WxCUser> listByChannel(List<String> sceneList, Integer pageIndex, Integer pageSize);


/**
* 计算当前用户成长值
*/
void scoreCalculate(String tenantId, Long cUserId);
}

+ 40
- 1
mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java View File

@@ -5,7 +5,11 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.simple.domain.dto.WxCUserBasicInfoDto;
import com.simple.domain.po.WxCUser;
import com.simple.domain.po.WxCouponOrder;
import com.simple.domain.po.WxScoreRules;
import com.simple.mapper.WxCUserMapper;
import com.simple.mapper.WxCouponOrderMapper;
import com.simple.mapper.WxScoreRulesMapper;
import com.simple.service.WxCUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -17,6 +21,12 @@ public class WxCUserServiceImpl implements WxCUserService {
@Autowired
WxCUserMapper wxCUserMapper;

@Autowired
WxCouponOrderMapper wxCouponOrderMapper;

@Autowired
WxScoreRulesMapper wxScoreRulesMapper;


@Override
public PageInfo<WxCUser> listAsPage(WxCUser record, Integer pageIndex, Integer pageSize) {
@@ -75,7 +85,36 @@ public class WxCUserServiceImpl implements WxCUserService {
}

@Override
public void scoreCalculate(String tenantId, Long cUserId) {
// login count
int login_count = 0;
WxCUser user = wxCUserMapper.selectByPrimaryKey(cUserId);
if (user != null) {
login_count = user.getLoginCount();
}
// coupon order
WxCouponOrder couponOrder = new WxCouponOrder();
couponOrder.setTenantId(tenantId);
couponOrder.setCUserId(cUserId);
int counponCount = wxCouponOrderMapper.selectCount(couponOrder);

// score rule
WxScoreRules scoreRuleQ = new WxScoreRules();
scoreRuleQ.setTenantId(tenantId);
WxScoreRules scoreRules = wxScoreRulesMapper.selectOne(scoreRuleQ);
if (scoreRules != null) {
Integer score =
(login_count / scoreRules.getLoginCount()) * scoreRules.getLoginScoreNumber()
+ (counponCount / scoreRules.getConsumptionScoreNumber()) * scoreRules.getConsumptionAmount();
if (user != null) {
user.setScore(score);
user.setUpdateDate(new Date());
wxCUserMapper.updateByPrimaryKeySelective(user);
}
}

}


+ 11
- 0
mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java View File

@@ -12,6 +12,7 @@ import com.simple.domain.vo.WxOrderCVo;
import com.simple.enums.*;
import com.simple.exception.MallinkException;
import com.simple.mapper.*;
import com.simple.service.WxCUserService;
import com.simple.service.WxOrderService;
import com.simple.utils.RedisLock;
import org.apache.log4j.Logger;
@@ -56,6 +57,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Autowired
WxCouponOrderMapper wxCouponOrderMapper;

@Autowired
WxCUserService wxCUserService;

@Override
public PageInfo<WxOrder> listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record));
@@ -497,6 +501,13 @@ public class WxOrderServiceImpl implements WxOrderService {
logger.error("保存订单:" + e.getMessage());
throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR);
}

// 成长值 计算
try {
wxCUserService.scoreCalculate(user.getTenantId(), user.getId());
} catch (Exception e) {
logger.error("成长值:" + e.getMessage());
}
return ret;
}



Loading…
Cancel
Save