Przeglądaj źródła

[B端收款码支付折扣][新增]

release_toaliyun_real
Stormeye Wu 7 lat temu
rodzic
commit
2a34caa7b5
2 zmienionych plików z 122 dodań i 8 usunięć
  1. +93
    -7
      mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java
  2. +29
    -1
      mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java

+ 93
- 7
mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java Wyświetl plik

@@ -4,15 +4,12 @@ package com.iformall.controller;
import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.AuthIgnore;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; 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.EnumMerchantBUserStatus;
import com.iformall.enums.EnumMerchantStatus; import com.iformall.enums.EnumMerchantStatus;
import com.iformall.interceptor.AuthorizationInterceptor; 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 com.iformall.utils.IPUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -27,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;


@RestController @RestController
@@ -44,13 +42,22 @@ public class WxMerchantBUserController extends BaseController {
@Autowired @Autowired
private WxMallService wxMallService; private WxMallService wxMallService;


@Autowired
private WxLevelConfigService wxLevelConfigService;

@Autowired
private WxCUserService wxCUserService;

@Autowired
private WxCUserBasicInfoService wxCUserBasicInfoService;



@ApiOperation("查寻当bUser详情接口") @ApiOperation("查寻当bUser详情接口")
@GetMapping("/detail") @GetMapping("/detail")
public ResultData detail() { public ResultData detail() {
Map resultMap = new HashMap(); Map resultMap = new HashMap();


WxMerchantBUser user = wxMerchantBUserService.getById(getUser().getId());
WxMerchantBUser user = getUser();


if (user == null){ if (user == null){
return new ResultData(ErrorCode.USER_IS_EMPTY); return new ResultData(ErrorCode.USER_IS_EMPTY);
@@ -78,6 +85,85 @@ public class WxMerchantBUserController extends BaseController {
return new ResultData(resultMap); return new ResultData(resultMap);
} }


@GetMapping("/getUserInfo")
@ApiOperation(value="获取用户等级及在此商户的折扣率及折扣后的金额", notes="{\"id\":\"string\", \"amount\":\"string\"}")
public ResultData getDiscountRate(@RequestBody Map<String, String> map) {
WxMerchantBUser bUser = getUser();

List<WxLevelConfig> 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);
}

/** /**
* 用户登录 * 用户登录
* *


+ 29
- 1
mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java Wyświetl plik

@@ -11,10 +11,15 @@ import java.util.Date;
public class WxCUserVo extends WxCUser { public class WxCUserVo extends WxCUser {


// 等级名称 // 等级名称
private Long levelId;
private String levelName; private String levelName;
private Date birthdate; private Date birthdate;
private Integer sex; private Integer sex;
private String address; private String address;
private String name;

private Integer discountRate;
private Integer amount;


public Date getBirthdate() { public Date getBirthdate() {
return birthdate; return birthdate;
@@ -48,7 +53,13 @@ public class WxCUserVo extends WxCUser {
this.name = name; this.name = name;
} }


private String name;
public Long getLevelId() {
return levelId;
}

public void setLevelId(Long levelId) {
this.levelId = levelId;
}


public String getLevelName() { public String getLevelName() {
return levelName; return levelName;
@@ -57,4 +68,21 @@ public class WxCUserVo extends WxCUser {
public void setLevelName(String levelName) { public void setLevelName(String levelName) {
this.levelName = 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;
}
} }

Ładowanie…
Anuluj
Zapisz