添加员工折扣

This commit is contained in:
牛叉闪闪 2024-08-26 14:58:29 +08:00
parent 86ae5f962b
commit fdfeb5701a
5 changed files with 211 additions and 85 deletions

View File

@ -1,12 +1,12 @@
package com.chaozhanggui.system.cashierservice.controller;
import com.chaozhanggui.system.cashierservice.service.MemberService;
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
import com.chaozhanggui.system.cashierservice.sign.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@CrossOrigin(origins = "*")
@ -28,8 +28,8 @@ public class MemberController {
@RequestParam("phone") String phone,
@RequestParam("page") int page,
@RequestParam("pageSize") int pageSize
){
return memberService.queryMember(shopId,phone,page,pageSize);
) {
return memberService.queryMember(shopId, phone, page, pageSize);
}
@ -37,43 +37,46 @@ public class MemberController {
public Result createMember(@RequestHeader("token") String token,
@RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType,
@RequestBody Map<String,Object> map
){
@RequestBody Map<String, Object> map
) {
return memberService.createMember(map);
}
@RequestMapping("memberScanPay")
public Result memberScanPay(
@RequestHeader("token") String token,
@RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType,
@RequestBody Map<String,Object> map
@RequestHeader("token") String token,
@RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType,
@RequestBody Map<String, Object> map
){
return memberService.memberScanPay(map,token);
) {
return memberService.memberScanPay(map, token);
}
@GetMapping("queryScanPay")
public Result queryScanPay(@RequestHeader("token") String token,
@RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType,
@RequestParam("flowId") String flowId
){
return memberService.queryScanPay(flowId,token);
) {
return memberService.queryScanPay(flowId, token);
}
@RequestMapping("accountPay")
public Result accountPay( @RequestHeader("token") String token,
@RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType,
@RequestBody Map<String,Object> map
){
return memberService.memberAccountPay(map,token);
public Result accountPay(@RequestHeader("token") String token,
@RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType,
@RequestBody Map<String, Object> map
) {
try {
return memberService.memberAccountPay(map, token);
} catch (Exception e) {
e.printStackTrace();
}
return Result.fail(CodeEnum.SYS_EXCEPTION);
}
@ -81,11 +84,22 @@ public class MemberController {
public Result queryMemberAccount(@RequestHeader("token") String token,
@RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType,
@RequestParam("memberId") String memberId,
@RequestParam("memberId") String memberId,
@RequestParam("page") int page,
@RequestParam("pageSize") int pageSize
){
return memberService.queryMemberAccount(memberId,page,pageSize);
) {
return memberService.queryMemberAccount(memberId, page, pageSize);
}
// public Result returnFlow(@RequestHeader("token") String token,
// @RequestHeader("loginName") String loginName,
// @RequestHeader("clientType") String clientType,
// @RequestParam("flowId") String flowId
// ){
//
//
//
// }
}

View File

@ -92,6 +92,24 @@ public class TbShopInfo implements Serializable {
private String view;
private String isCustom;
private String isReturn;
private String isMemberIn;
private String isMemberReturn;
private static final long serialVersionUID = 1L;
public Integer getId() {
@ -445,4 +463,36 @@ public class TbShopInfo implements Serializable {
public void setView(String view) {
this.view = view == null ? null : view.trim();
}
public String getIsCustom() {
return isCustom;
}
public void setIsCustom(String isCustom) {
this.isCustom = isCustom;
}
public String getIsReturn() {
return isReturn;
}
public void setIsReturn(String isReturn) {
this.isReturn = isReturn;
}
public String getIsMemberIn() {
return isMemberIn;
}
public void setIsMemberIn(String isMemberIn) {
this.isMemberIn = isMemberIn;
}
public String getIsMemberReturn() {
return isMemberReturn;
}
public void setIsMemberReturn(String isMemberReturn) {
this.isMemberReturn = isMemberReturn;
}
}

View File

@ -15,8 +15,6 @@ import com.chaozhanggui.system.cashierservice.thirdpay.resp.OrderStatusQueryResp
import com.chaozhanggui.system.cashierservice.thirdpay.resp.PublicResp;
import com.chaozhanggui.system.cashierservice.thirdpay.service.ThirdPayService;
import com.chaozhanggui.system.cashierservice.util.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -65,6 +63,10 @@ public class MemberService {
RestTemplate restTemplate;
@Autowired
TbActivateMapper tbActivateMapper;
@Autowired
TbmerchantAccountMapper tbmerchantAccountMapper;
@Autowired
RabbitProducer producer;
@Value("${gateway.url}")
private String gateWayUrl;
@Value("${thirdPay.payType}")
@ -74,9 +76,6 @@ public class MemberService {
@Value("${thirdPay.callBack}")
private String callBack;
@Autowired
TbmerchantAccountMapper tbmerchantAccountMapper;
public Result queryMember(String shopId, String phone, int page, int pageSize) {
PageHelperUtil.startPage(page, pageSize);
@ -103,12 +102,12 @@ public class MemberService {
List<TbShopUser> tbShopUsers = tbShopUserMapper.selectByShopIdAndPhone(shopId, phone);
if (ObjectUtil.isNotEmpty(tbShopUsers)&&tbShopUsers.stream().filter(it->"1".equals(it.getIsVip().toString())).count()>0) {
if (ObjectUtil.isNotEmpty(tbShopUsers) && tbShopUsers.stream().filter(it -> "1".equals(it.getIsVip().toString())).count() > 0) {
return Result.fail(CodeEnum.MEMBERHAVED);
}
if(tbUserInfoMapper.selectCountByPhone(phone)>1){
if (tbUserInfoMapper.selectCountByPhone(phone) > 1) {
return Result.fail(CodeEnum.SAMEUSER);
}
@ -135,7 +134,7 @@ public class MemberService {
TbShopUser tbShopUser = new TbShopUser();
TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(phone);
if(tbUserInfo!=null){
if (tbUserInfo != null) {
tbShopUser.setUserId(tbUserInfo.getId().toString());
}
tbShopUser.setAmount(BigDecimal.ZERO);
@ -158,23 +157,19 @@ public class MemberService {
return Result.success(CodeEnum.SUCCESS);
}
@Autowired
RabbitProducer producer;
@Transactional(rollbackFor = Exception.class)
public Result memberScanPay(Map<String, Object> map,String token) {
public Result memberScanPay(Map<String, Object> map, String token) {
if (ObjectUtil.isEmpty(map) || map.size() <= 0
|| !map.containsKey("shopId") || ObjectUtil.isEmpty(map.get("shopId"))
|| !map.containsKey("memberId") || ObjectUtil.isEmpty(map.get("memberId"))
|| !map.containsKey("amount") || ObjectUtil.isEmpty(map.get("amount"))
|| !map.containsKey("authCode") || ObjectUtil.isEmpty(map.get("authCode"))
) {
return Result.fail(CodeEnum.PARAM);
}
String memberId = String.valueOf(map.get("memberId"));
String shopId = String.valueOf(map.get("shopId"));
@ -184,6 +179,32 @@ public class MemberService {
if (ObjectUtil.isEmpty(shopInfo) || shopInfo == null) {
return Result.fail(CodeEnum.SHOPINFONOEXIST);
}
if ("1".equals(shopInfo.getIsMemberIn())) {
if (!map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd"))) {
return Result.fail(CodeEnum.PARAM);
}
String pwd = map.get("pwd").toString();
String accountId = TokenUtil.parseParamFromToken(token).getString("accountId");
TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId));
if (Objects.isNull(account)) {
return Result.fail(CodeEnum.ACCOUNTEIXST);
}
if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) {
return Result.fail(CodeEnum.PWDNOSET);
}
if (!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))) {
return Result.fail(CodeEnum.PWDERROE);
}
}
TbShopUser shopUser = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId));
if (ObjectUtil.isEmpty(shopUser) || !"1".equals(shopUser.getIsVip().toString())) {
return Result.fail(CodeEnum.MEMBERNOEXIST);
@ -193,25 +214,23 @@ public class MemberService {
String qpay = null;
String payTypeCode = authCode.substring(0, 2);// 判断收款码
String wechatpay="";
String wechatpay = "";
if(Integer.valueOf(payTypeCode)>=25&&Integer.valueOf(payTypeCode)<=30){
if (Integer.valueOf(payTypeCode) >= 25 && Integer.valueOf(payTypeCode) <= 30) {
qpay = "scanCode";
}else if(Integer.valueOf(payTypeCode)>=10&&Integer.valueOf(payTypeCode)<=19){
} else if (Integer.valueOf(payTypeCode) >= 10 && Integer.valueOf(payTypeCode) <= 19) {
qpay = "scanCode";
wechatpay="wxpay";
}else if("62".equals(payTypeCode)){
wechatpay = "wxpay";
} else if ("62".equals(payTypeCode)) {
return Result.fail(CodeEnum.ERRORQR);
}else if("01".equals(payTypeCode)){
} else if ("01".equals(payTypeCode)) {
return Result.fail(CodeEnum.ERRORQR);
}else {
} else {
return Result.fail(CodeEnum.ERRORQR);
}
int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(shopId, qpay);
if (count < 1) {
return Result.fail(CodeEnum.PAYTYPENOEXIST);
@ -284,7 +303,6 @@ public class MemberService {
producer.putOrderCollect(jsonObject.toJSONString());
return Result.success(CodeEnum.SUCCESS, memberIn);
} else {
String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null;
@ -359,7 +377,7 @@ public class MemberService {
JSONObject jsonObject = new JSONObject();
jsonObject.put("token", token);
jsonObject.put("type", "memberIn");
jsonObject.put("amount",memberIn.getAmount());
jsonObject.put("amount", memberIn.getAmount());
producer.putOrderCollect(jsonObject.toJSONString());
return Result.success(CodeEnum.SUCCESS, memberIn);
@ -383,7 +401,7 @@ public class MemberService {
}
public Result queryScanPay(String flowId,String token) {
public Result queryScanPay(String flowId, String token) {
if (ObjectUtil.isEmpty(flowId)) {
return Result.fail(CodeEnum.PARAM);
}
@ -518,31 +536,16 @@ public class MemberService {
@Transactional(rollbackFor = Exception.class)
public Result memberAccountPay(Map<String, Object> map,String token) {
public Result memberAccountPay(Map<String, Object> map, String token) throws Exception {
if (ObjectUtil.isEmpty(map) || map.size() <= 0
|| !map.containsKey("shopId") || ObjectUtil.isEmpty(map.get("shopId"))
|| !map.containsKey("memberId") || ObjectUtil.isEmpty(map.get("memberId"))
|| !map.containsKey("amount") || ObjectUtil.isEmpty(map.get("amount"))
||!map.containsKey("pwd")||ObjectUtil.isEmpty(map.get("pwd"))
|| !map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd"))
) {
return Result.fail(CodeEnum.PARAM);
}
String accountId= TokenUtil.parseParamFromToken(token).getString("accountId");
TbmerchantAccount account= tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId));
if(Objects.isNull(account)){
return Result.fail(CodeEnum.ACCOUNTEIXST);
}
if(Objects.isNull(account.getPwd())||ObjectUtil.isEmpty(account.getPwd())){
return Result.fail(CodeEnum.PWDNOSET);
}
if(!account.getPwd().equals(MD5Util.encrypt(map.get("pwd").toString().concat(account.getAccount()).concat(account.getId().toString())))){
return Result.fail(CodeEnum.PWDERROE);
}
String memberId = String.valueOf(map.get("memberId"));
@ -554,6 +557,28 @@ public class MemberService {
if (ObjectUtil.isEmpty(shopInfo) || shopInfo == null) {
return Result.fail(CodeEnum.SHOPINFONOEXIST);
}
if("1".equals(shopInfo.getIsMemberIn())){
String accountId = TokenUtil.parseParamFromToken(token).getString("accountId");
TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId));
if (Objects.isNull(account)) {
return Result.fail(CodeEnum.ACCOUNTEIXST);
}
if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) {
return Result.fail(CodeEnum.PWDNOSET);
}
if (!account.getPwd().equals(MD5Util.encrypt(map.get("pwd").toString().concat(account.getAccount()).concat(account.getId().toString())))) {
return Result.fail(CodeEnum.PWDERROE);
}
}
TbShopUser shopUser = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId));
if (ObjectUtil.isEmpty(shopUser) || !"1".equals(shopUser.getIsVip().toString())) {
return Result.fail(CodeEnum.MEMBERNOEXIST);
@ -650,4 +675,15 @@ public class MemberService {
}
}

View File

@ -954,22 +954,9 @@ public class PayService {
if (ObjectUtil.isEmpty(list) || list.size() <= 0) {
return Result.fail(CodeEnum.PARAM);
}
//
// String accountId= TokenUtil.parseParamFromToken(token).getString("accountId");
//
// TbmerchantAccount account= tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId));
// if(Objects.isNull(account)){
// return Result.fail(CodeEnum.ACCOUNTEIXST);
// }
//
//
// if(Objects.isNull(account.getPwd())||ObjectUtil.isEmpty(account.getPwd())){
// return Result.fail(CodeEnum.PWDNOSET);
// }
//
// if(!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))){
// return Result.fail(CodeEnum.PWDERROE);
// }
Integer orderId = list.get(0).getOrderId();
@ -981,6 +968,29 @@ public class PayService {
return Result.fail(CodeEnum.ORDERSTATUSERROR);
}
TbShopInfo shopInfo=tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId()));
if ("1".equals(shopInfo.getIsReturn())) {
if (ObjectUtil.isEmpty(pwd) ) {
return Result.fail(CodeEnum.PARAM);
}
String accountId = TokenUtil.parseParamFromToken(token).getString("accountId");
TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId));
if (Objects.isNull(account)) {
return Result.fail(CodeEnum.ACCOUNTEIXST);
}
if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) {
return Result.fail(CodeEnum.PWDNOSET);
}
if (!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))) {
return Result.fail(CodeEnum.PWDERROE);
}
}
List<TbOrderDetail> orderDetails = tbOrderDetailMapper.selectAllByOrderIdAndStatus(list, orderId.toString());
@ -1536,8 +1546,18 @@ public class PayService {
return Result.success(SUCCESS,BigDecimal.ZERO);
}
if("master".equals(staff.getType())){
return Result.success(SUCCESS,new BigDecimal(0.1));
}
if("0".equals(staff.getDiscountType())){
staff.setMaxDiscountAmount(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN));
if(staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount())>=0){
staff.setMaxDiscountAmount(BigDecimal.ONE);
}else {
staff.setMaxDiscountAmount(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN));
}
}
return Result.success(SUCCESS,staff.getMaxDiscountAmount());

View File

@ -45,6 +45,12 @@
<result column="created_at" jdbcType="BIGINT" property="createdAt" />
<result column="updated_at" jdbcType="BIGINT" property="updatedAt" />
<result column="proxy_id" jdbcType="VARCHAR" property="proxyId" />
<result column="is_custom" jdbcType="VARCHAR" property="isCustom" />
<result column="is_return" jdbcType="VARCHAR" property="isReturn" />
<result column="is_member_in" jdbcType="VARCHAR" property="isMemberIn" />
<result column="is_member_return" jdbcType="VARCHAR" property="isMemberReturn" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.chaozhanggui.system.cashierservice.entity.TbShopInfo">
<result column="view" jdbcType="LONGVARCHAR" property="view" />
@ -55,7 +61,7 @@
detail, lat, lng, mch_id, register_type, is_wx_ma_independent, address, city, type,
industry, industry_name, business_time, post_time, post_amount_line, on_sale, settle_type,
settle_time, enter_at, expire_at, status, average, order_wait_pay_minute, support_device_number,
distribute_level, created_at, updated_at, proxy_id
distribute_level, created_at, updated_at, proxy_id,is_custom,is_return,is_member_in,is_member_return
</sql>
<sql id="Blob_Column_List">
view