From d36680ec6cdf9b5ed1da6ed8a8fff26fb94f1e2a Mon Sep 17 00:00:00 2001 From: "Stormeye.Wu" Date: Wed, 12 Sep 2018 14:56:18 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=88=90=E9=95=BF=E5=80=BC=E7=AE=80=E5=8D=95?= =?UTF-8?q?=E8=AE=A1=E7=AE=97][=E6=96=B0=E5=A2=9E]:=E6=88=90=E9=95=BF?= =?UTF-8?q?=E5=80=BC=E7=AE=80=E5=8D=95=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/simple/service/WxCUserService.java | 7 +++- .../service/impl/WxCUserServiceImpl.java | 41 ++++++++++++++++++- .../service/impl/WxOrderServiceImpl.java | 11 +++++ 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/simple/service/WxCUserService.java b/mallinkService/src/main/java/com/simple/service/WxCUserService.java index 4a811283c..067d49d58 100644 --- a/mallinkService/src/main/java/com/simple/service/WxCUserService.java +++ b/mallinkService/src/main/java/com/simple/service/WxCUserService.java @@ -66,11 +66,16 @@ public interface WxCUserService { /** * 通过渠道获取会员信息 - * @param channel + * @param sceneList * @param pageIndex * @param pageSize * @return */ PageInfo listByChannel(List sceneList, Integer pageIndex, Integer pageSize); + + /** + * 计算当前用户成长值 + */ + void scoreCalculate(String tenantId, Long cUserId); } diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java index 2aa324dc6..dfb2ea248 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java @@ -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 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); + } + } + + } diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java index 2aac9638d..435146565 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java @@ -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 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; }