From 08bbdcb699cffc3a5e6496850d6134987a5278b5 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 12 Dec 2018 14:20:29 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E6=8A=98=E6=89=A3=E4=BF=A1?= =?UTF-8?q?=E6=81=AF][=E6=96=B0=E5=A2=9E]:=E6=89=AB=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E7=A0=81=E8=8E=B7=E5=8F=96=E4=BC=9A=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=8F=8A=E6=8A=98=E6=89=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/controller/BaseController.java | 7 ++ .../iformall/controller/WxMemController.java | 116 ++++++++++++++++++ .../iformall/controller/BaseController.java | 7 ++ .../controller/WxUserGrantController.java | 1 + 4 files changed, 131 insertions(+) create mode 100644 mallinkBApi/src/main/java/com/iformall/controller/WxMemController.java diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index cd465e3ad..3c3cef086 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -13,6 +13,7 @@ import com.iformall.exception.MallinkException; import com.iformall.interceptor.AuthorizationInterceptor; import com.iformall.service.WxAppinfoService; import com.iformall.service.WxMerchantBUserService; +import com.iformall.utils.IPUtil; import com.iformall.utils.MaUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.WebDataBinder; @@ -87,4 +88,10 @@ public class BaseController { WxMaService service = MaUtil.getWeappService(appinfo); return service; } + + public String getIpAddr() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String ipaddress = IPUtil.getIpAddr(request); + return ipaddress; + } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMemController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMemController.java new file mode 100644 index 000000000..618e432a4 --- /dev/null +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMemController.java @@ -0,0 +1,116 @@ +package com.iformall.controller; + +import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; +import com.iformall.domain.po.*; +import com.iformall.domain.vo.WxCUserVo; +import com.iformall.service.WxCUserBasicInfoService; +import com.iformall.service.WxCUserService; +import com.iformall.service.WxLevelConfigService; +import com.iformall.service.WxMerchantService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +/** + * @author Stormeye + */ +@RestController +@Api(description = "C端会员信息") +@RequestMapping("/api/mem") +public class WxMemController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxCUserService userService; + + @Autowired + private WxLevelConfigService wxLevelConfigService; + + @Autowired + private WxCUserBasicInfoService wxCUserBasicInfoService; + + @Autowired + private WxMerchantService wxMerchantService; + + @ApiOperation(value = "扫C端会员码返回会员信息", notes = "params:{\"memCode\":\"String\"}\n") + @PostMapping("mem_scan") + public ResultData memScan(@RequestBody Map paramMap) { + logger.info("memScan" + getIpAddr() + ": " + paramMap.toString()); + String memCode = paramMap.get("memCode"); + + if (StringUtils.isBlank(memCode)) { + logger.error("memCode不能为空"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "memCode不能为空"); + } + + Long id = null; + try { + id = Long.valueOf(memCode); + } catch (Exception e) { + logger.error("memCode convert failed"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "memCode转换失败"); + } + + WxMerchantBUser bUser = getUser(); + + WxCUser cUser = userService.getById(id); + if(cUser == null) { + return new ResultData(ErrorCode.USER_IS_EMPTY); + } + + WxCUserVo userVo = new WxCUserVo(); + org.springframework.beans.BeanUtils.copyProperties(cUser, userVo); + if (userVo.getScore() == null || userVo.getScore() == 0) { + userVo.setLevelName("无"); + userVo.setDiscountRate(1000); // 无折扣 + } else { + userVo.setLevelName("无"); + + Integer levelConfigDiscount = null; + + List levelList = wxLevelConfigService.getByTenantId(bUser.getTenantId()); + for(WxLevelConfig levelConfig: levelList) { + if (userVo.getScore() >= levelConfig.getPoints()) { + userVo.setLevelId(levelConfig.getId()); + userVo.setLevelName(levelConfig.getLevel()); + levelConfigDiscount = levelConfig.getDiscountEnable(); + } + } + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(cUser.getId()); + if (wxCUserBasicInfo != null) { + userVo.setName(wxCUserBasicInfo.getName()); + userVo.setBirthdate(wxCUserBasicInfo.getBirthdate()); + userVo.setSex(wxCUserBasicInfo.getSex()); + userVo.setAddress(wxCUserBasicInfo.getAddress()); + } + + if(levelConfigDiscount > 0) { + // 用户折扣率 + WxMerchant wxMerchant = wxMerchantService.getById(bUser.getMerchantId()); + if(wxMerchant != null) { + if(levelConfigDiscount.equals(1)) { // first level + userVo.setDiscountRate(wxMerchant.getVipDiscountRate1()); + } else if(levelConfigDiscount.equals(2)) { // second level + userVo.setDiscountRate(wxMerchant.getVipDiscountRate2()); + } else if(levelConfigDiscount.equals(3)) { // third level + userVo.setDiscountRate(wxMerchant.getVipDiscountRate3()); + } + } + } + } + + return new ResultData(userVo); + } + +} diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index c6b42b00f..fb46c376b 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -10,6 +10,7 @@ import com.iformall.interceptor.AuthorizationInterceptor; import com.iformall.service.WxAppinfoService; import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCUserService; +import com.iformall.utils.IPUtil; import com.iformall.utils.MaUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -136,4 +137,10 @@ public class BaseController { wxCUserBasicInfoService.save(basicInfo); } } + + public String getIpAddr() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String ipaddress = IPUtil.getIpAddr(request); + return ipaddress; + } } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index dc722bd7b..e5419747d 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -412,6 +412,7 @@ public class WxUserGrantController extends BaseController { List levelList = wxLevelConfigService.getByTenantId(user.getTenantId()); for(WxLevelConfig levelConfig: levelList) { if (userVo.getScore() >= levelConfig.getPoints()) { + userVo.setLevelId(levelConfig.getId()); userVo.setLevelName(levelConfig.getLevel()); } }