From 2a34caa7b525de44f4f99618c922cb24b624cb5c Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 6 Dec 2018 15:21:25 +0800 Subject: [PATCH] =?UTF-8?q?[B=E7=AB=AF=E6=94=B6=E6=AC=BE=E7=A0=81=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=8A=98=E6=89=A3][=E6=96=B0=E5=A2=9E]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxMerchantBUserController.java | 100 ++++++++++++++++-- .../com/iformall/domain/vo/WxCUserVo.java | 30 +++++- 2 files changed, 122 insertions(+), 8 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index 5449eb047..b23a2128e 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -4,15 +4,12 @@ package com.iformall.controller; import com.iformall.annotation.AuthIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxMall; -import com.iformall.domain.po.WxMerchant; -import com.iformall.domain.po.WxMerchantBUser; +import com.iformall.domain.po.*; +import com.iformall.domain.vo.WxCUserVo; import com.iformall.enums.EnumMerchantBUserStatus; import com.iformall.enums.EnumMerchantStatus; import com.iformall.interceptor.AuthorizationInterceptor; -import com.iformall.service.WxMallService; -import com.iformall.service.WxMerchantBUserService; -import com.iformall.service.WxMerchantService; +import com.iformall.service.*; import com.iformall.utils.IPUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -27,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -44,13 +42,22 @@ public class WxMerchantBUserController extends BaseController { @Autowired private WxMallService wxMallService; + @Autowired + private WxLevelConfigService wxLevelConfigService; + + @Autowired + private WxCUserService wxCUserService; + + @Autowired + private WxCUserBasicInfoService wxCUserBasicInfoService; + @ApiOperation("查寻当bUser详情接口") @GetMapping("/detail") public ResultData detail() { Map resultMap = new HashMap(); - WxMerchantBUser user = wxMerchantBUserService.getById(getUser().getId()); + WxMerchantBUser user = getUser(); if (user == null){ return new ResultData(ErrorCode.USER_IS_EMPTY); @@ -78,6 +85,85 @@ public class WxMerchantBUserController extends BaseController { return new ResultData(resultMap); } + @GetMapping("/getUserInfo") + @ApiOperation(value="获取用户等级及在此商户的折扣率及折扣后的金额", notes="{\"id\":\"string\", \"amount\":\"string\"}") + public ResultData getDiscountRate(@RequestBody Map map) { + WxMerchantBUser bUser = getUser(); + + List levelList = wxLevelConfigService.getByTenantId(bUser.getTenantId()); + + String idStr = map.get("id"); + String amountStr = map.get("amount"); + if (StringUtils.isBlank(idStr)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "id不能为空"); + } + if (StringUtils.isBlank(amountStr)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "amount不能为空"); + } + Long id = Long.valueOf(idStr); + Integer amount = Integer.valueOf(amountStr) * 100; // 元->分 + + WxCUserBasicInfo userInfo = null; + WxCUser user = wxCUserService.getById(id); + if(user == null) { + userInfo = wxCUserBasicInfoService.getById(id); + } + if(user == null && userInfo == null) { + logger.error("C端用户不存在"); + return new ResultData(ErrorCode.USER_IS_EMPTY); + } + + WxCUserVo userVo = new WxCUserVo(); + if(user != null) { + org.springframework.beans.BeanUtils.copyProperties(user, userVo); + + } else if(userInfo != null) { + userVo.setId(userInfo.getId()); + userVo.setName(userInfo.getName()); + userVo.setScore(userInfo.getPoins()); + } + + WxLevelConfig curLConfig = null; + int curDiscountRateIndex = 0; + int curDiscountRate = 0; + for(WxLevelConfig levelConfig: levelList) { + if (userVo.getScore() >= levelConfig.getPoints()) { + curLConfig = levelConfig; + } + } + if (curLConfig != null) { + userVo.setLevelId(curLConfig.getId()); + userVo.setLevelName(curLConfig.getLevel()); + curDiscountRateIndex = curLConfig.getDiscountEnable(); + if(curLConfig.getDiscountEnable() == 0) { // 未启用等级折扣 + userVo.setDiscountRate(0); // 折扣率为0 + userVo.setAmount(amount); + } else { + // 当前商户折扣率 + WxMerchant merchant = wxMerchantService.getById(bUser.getMerchantId()); + if (merchant == null){ + return new ResultData(ErrorCode.MCH_INFO_NOT_FOUND); + } + if(curDiscountRateIndex == 1) { + curDiscountRate = merchant.getVipDiscountRate1(); + } else if(curDiscountRateIndex == 2) { + curDiscountRate = merchant.getVipDiscountRate2(); + } else if(curDiscountRateIndex == 3) { + curDiscountRate = merchant.getVipDiscountRate3(); + } + userVo.setDiscountRate(curDiscountRate); + userVo.setAmount(amount*curDiscountRate/1000); + } + } + + + + + + + return new ResultData(userVo); + } + /** * 用户登录 * diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java index 15b1341bc..d3dee8eb4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java @@ -11,10 +11,15 @@ import java.util.Date; public class WxCUserVo extends WxCUser { // 等级名称 + private Long levelId; private String levelName; private Date birthdate; private Integer sex; private String address; + private String name; + + private Integer discountRate; + private Integer amount; public Date getBirthdate() { return birthdate; @@ -48,7 +53,13 @@ public class WxCUserVo extends WxCUser { this.name = name; } - private String name; + public Long getLevelId() { + return levelId; + } + + public void setLevelId(Long levelId) { + this.levelId = levelId; + } public String getLevelName() { return levelName; @@ -57,4 +68,21 @@ public class WxCUserVo extends WxCUser { public void setLevelName(String levelName) { this.levelName = levelName; } + + + public Integer getDiscountRate() { + return discountRate; + } + + public void setDiscountRate(Integer discountRate) { + this.discountRate = discountRate; + } + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } }