From bcdfb1a4fbe5d5c96483e8e19006f298a9aa3698 Mon Sep 17 00:00:00 2001 From: hanxueda Date: Sat, 20 Apr 2019 15:45:16 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=A7=AF=E5=88=86][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B6=88=E8=B4=B9=E5=A2=9E=E9=95=BF=E7=A7=AF?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/WxScoreRulesService.java | 4 ++ .../impl/WxCUserBasicInfoServiceImpl.java | 20 ++++++++- .../impl/WxCreditHistoryServiceImpl.java | 5 ++- .../service/impl/WxOrderServiceImpl.java | 43 +++++++++++++++++++ .../service/impl/WxScoreRulesServiceImpl.java | 5 +++ .../mapper/WxCreditHistoryMapper.xml | 3 ++ 6 files changed, 77 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/WxScoreRulesService.java b/mallinkService/src/main/java/com/iformall/service/WxScoreRulesService.java index d85a30a37..fd9ffa57e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxScoreRulesService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxScoreRulesService.java @@ -3,6 +3,8 @@ package com.iformall.service; import com.iformall.domain.po.WxScoreRules; import com.iformall.enums.EnumScoreType; +import java.util.List; + public interface WxScoreRulesService { /** @@ -40,4 +42,6 @@ public interface WxScoreRulesService { */ int reduceScore(EnumScoreType scoreType, Object param1, Object param2, Object param3); + List findList(WxScoreRules wxScoreRules); + } 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 37d3aa1c9..a14cd40ce 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -12,6 +12,7 @@ import com.iformall.domain.vo.*; import com.iformall.enums.*; import com.iformall.mapper.*; import com.iformall.service.*; +import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -394,7 +395,24 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { WxCUserBasicInfo basicQ = new WxCUserBasicInfo(); basicQ.setTenantId(tenantId); basicQ.setPhone(phone); - return wxCUserBasicInfoMapper.select(basicQ); + List basicInfos = wxCUserBasicInfoMapper.select(basicQ); + if (basicInfos != null && basicInfos.size() > 0) { + WxCUserBasicInfo wxCUserBasicInfo = basicInfos.get(0); + if (wxCUserBasicInfo.getPoins() != null) { + List levelList = wxLevelConfigService.getByTenantId(wxCUserBasicInfo.getTenantId()); + String level = WxLevelConfigService.DEFAULT_LEVEL; + for(WxLevelConfig levelConfig: levelList) { + if (wxCUserBasicInfo.getPoins() >= levelConfig.getPoints()) { + level = levelConfig.getLevel(); + } + } + wxCUserBasicInfo.setLevel(level); + List basicInfoList = Lists.newArrayList(); + basicInfoList.add(wxCUserBasicInfo); + return basicInfoList; + } + } + return basicInfos; } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java index 80186f602..310776212 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -67,7 +67,8 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { public void clearCreditByYear() { WxScoreRules wxScoreRules = new WxScoreRules(); wxScoreRules.setType(EnumScoreRules.CREDIT.getCode()); - + List wxScoreRulesList = wxScoreRulesService.findList(wxScoreRules); + List tenantIds = wxScoreRulesList.stream().map(WxScoreRules::getTenantId).distinct().collect(Collectors.toList()); } @@ -333,7 +334,7 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { private int spendCredit(WxCreditHistory record) { //根据商户id和花费金额计算需要新增的积分 - Map map = findByMerchantIdAndSpend(record.getMerchantId(),record.getSpendStr(),record.getTenantId()); + Map map = findByMerchantIdAndSpend(record.getMerchantId(), record.getSpendStr(), record.getTenantId()); return map.get("credit"); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 7a375aadf..872be219e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -105,6 +105,9 @@ public class WxOrderServiceImpl implements WxOrderService { @Autowired WxCreditHistoryService wxCreditHistoryService; + @Autowired + WxCouponChannelMapper wxCouponChannelMapper; + @Override public PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); @@ -951,6 +954,25 @@ public class WxOrderServiceImpl implements WxOrderService { } catch (Exception e) { logger.error("成长值:" + e.getMessage()); } + + // 积分 计算 + try { + //扣减积分操作记录 + WxCreditHistory creditHistory = new WxCreditHistory(); + creditHistory.setOperatorType(EnumUserType.CUSER.getCode()); + creditHistory.setOperatorId(user.getId()); + creditHistory.setCUserId(user.getId()); + creditHistory.setCreateDate(new Date()); + creditHistory.setTenantId(user.getTenantId()); + creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); + creditHistory.setCouponId(coupon.getId()); + creditHistory.setBusinessId(Long.valueOf(coupon.getBusiness())); + creditHistory.setSpend(updateOrder.getPayment()); + //creditHistory.setMerchantId(wxMerchant.getId()); + wxCreditHistoryService.saveOrUpdate(creditHistory); + } catch (Exception e) { + logger.error("积分值:" + e.getMessage()); + } return ret; } @@ -994,6 +1016,27 @@ public class WxOrderServiceImpl implements WxOrderService { } catch (Exception e) { logger.error("成长值:" + e.getMessage()); } + // 积分 计算 + try { + //扣减积分操作记录 + WxCreditHistory creditHistory = new WxCreditHistory(); + creditHistory.setOperatorType(EnumUserType.CUSER.getCode()); + creditHistory.setOperatorId(user.getId()); + creditHistory.setCUserId(user.getId()); + creditHistory.setCreateDate(new Date()); + creditHistory.setTenantId(user.getTenantId()); + creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); + if (updateOrder.getCouponChannelId() != null) { + WxCouponChannel wxCouponChannel = wxCouponChannelMapper.selectByPrimaryKey(updateOrder.getCouponChannelId()); + creditHistory.setCouponId(wxCouponChannel.getCouponId()); + } + creditHistory.setBusinessId(Long.valueOf(wxMerchant.getBusinessId())); + creditHistory.setSpend(updateOrder.getPayment()); + creditHistory.setMerchantId(wxMerchant.getId()); + wxCreditHistoryService.saveOrUpdate(creditHistory); + } catch (Exception e) { + logger.error("积分值:" + e.getMessage()); + } return ret; } 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 4e02b9396..fc62cf0ec 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java @@ -573,4 +573,9 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { } return 0; } + + @Override + public List findList(WxScoreRules wxScoreRules) { + return wxScoreRulesMapper.findList(wxScoreRules); + } } diff --git a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml index 5610823cd..20c2a9e15 100644 --- a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml @@ -99,6 +99,9 @@ and `c_user_id` = #{cUserId} + + and `merchant_id` = #{merchantId} +