diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java index caf6d42..1a5aecc 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java @@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.util.List; @CrossOrigin(origins = "*") @@ -55,10 +56,12 @@ public class PayController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("orderId") String orderId, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount, @RequestParam("authCode") String authCode ) { - return payService.scanPay(orderId,authCode, IpUtil.getIpAddr(request),token); + return payService.scanPay(orderId,authCode, IpUtil.getIpAddr(request),token,payAmount,discountAmount); } @@ -79,9 +82,11 @@ public class PayController { @RequestHeader("clientType") String clientType, @RequestParam("orderId") String orderId, @RequestParam("memberId") String memberId, - @RequestParam("memberAccount") String memberAccount + @RequestParam("memberAccount") String memberAccount, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount ){ - return payService.accountPay(orderId,memberId,token,memberAccount); + return payService.accountPay(orderId,memberId,token,memberAccount,payAmount,discountAmount); } @@ -164,9 +169,11 @@ public class PayController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("orderId") String orderId, - @RequestParam("memberCode") String memberCode + @RequestParam("memberCode") String memberCode, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount ){ - return payService.memberScanPay(orderId,memberCode,token); + return payService.memberScanPay(orderId,memberCode,token,payAmount,discountAmount); } @@ -184,8 +191,10 @@ public class PayController { public Result cashPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestParam("orderId") String orderId){ - return payService.cashPay(orderId,token); + @RequestParam("orderId") String orderId, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount){ + return payService.cashPay(orderId,token,payAmount,discountAmount); } @@ -204,7 +213,9 @@ public class PayController { public Result bankPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestParam("orderId") String orderId){ + @RequestParam("orderId") String orderId, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount){ return payService.bankPay(orderId,token); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java index 780b755..3ef40ba 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java @@ -100,6 +100,8 @@ public class TbOrderInfo implements Serializable { private String outNumber; + private Integer staffId; + private static final long serialVersionUID = 1L; public TbOrderInfo(){ super(); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java index a9a829d..6955571 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java @@ -14,6 +14,8 @@ public class TbPlussShopStaff implements Serializable { private String password; + private String discountType; + private BigDecimal maxDiscountAmount; private Boolean status; @@ -72,6 +74,14 @@ public class TbPlussShopStaff implements Serializable { this.password = password == null ? null : password.trim(); } + public String getDiscountType() { + return discountType; + } + + public void setDiscountType(String discountType) { + this.discountType = discountType; + } + public BigDecimal getMaxDiscountAmount() { return maxDiscountAmount; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index 756984a..c143784 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -148,19 +148,19 @@ public class OrderService { } } - List proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); - if(Objects.nonNull(proskuConList) && !proskuConList.isEmpty()){ - for (TbProskuCon proskuCon : proskuConList) { - if("1".equals(proskuCon.getStatus())){ - TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); - if("1".equals(consInfo.getIsCheck())){ - if(N.egt(proskuCon.getSurplusStock(),consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))){ - return Result.fail("商品:".concat(product.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); - } - } - } - } - } +// List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); +// if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ +// for (TbProskuCon proskuCon : proskuConList) { +// if("1".equals(proskuCon.getStatus())){ +// TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); +// if("1".equals(consInfo.getIsCheck())){ +// if(N.gt(proskuCon.getSurplusStock(),consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))){ +// return Result.fail("商品:".concat(product.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); +// } +// } +// } +// } +// } String exists = redisUtil.getMessage(RedisCst.ORDER_CART_EXISTS + cartId); @@ -199,7 +199,6 @@ public class OrderService { masterId = "#" + String.format("%03d", 1); } } - TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); if (Objects.nonNull(cart)) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index d9a49ce..187c27f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -32,6 +32,7 @@ import java.math.RoundingMode; import java.util.*; import static com.chaozhanggui.system.cashierservice.sign.CodeEnum.ACCOUNTEIXST; +import static com.chaozhanggui.system.cashierservice.sign.CodeEnum.SUCCESS; @Service @Slf4j @@ -115,6 +116,10 @@ public class PayService { TbmerchantAccountMapper tbmerchantAccountMapper; + @Autowired + TbPlussShopStaffMapper tbPlussShopStaffMapper; + + public static void main(String[] args) { System.out.printf("%.2f%n", new BigDecimal(1).setScale(2, RoundingMode.DOWN)); @@ -126,7 +131,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result scanPay(String orderId, String authCode, String ip, String token) { + public Result scanPay(String orderId, String authCode, String ip, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(authCode) || ObjectUtil.isEmpty(ip)) { return Result.fail(CodeEnum.PARAM); } @@ -143,6 +148,26 @@ public class PayService { } + + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + List cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, null); if (ObjectUtil.isEmpty(cashierCarts) || ObjectUtil.isNull(cashierCarts)) { return Result.fail(CodeEnum.CARTEXIST); @@ -194,7 +219,7 @@ public class PayService { if (ObjectUtil.isEmpty(payment) || payment == null) { payment = new TbOrderPayment(); payment.setPayTypeId("ysk"); - payment.setAmount(orderInfo.getOrderAmount()); + payment.setAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); payment.setPaidAmount(orderInfo.getPayAmount()); payment.setHasRefundAmount(BigDecimal.ZERO); payment.setPayName(payName); @@ -214,9 +239,12 @@ public class PayService { } - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); orderInfo.setPayType(qpay); orderInfo.setUpdatedAt(System.currentTimeMillis()); + orderInfo.setStaffId(ObjectUtil.isNotNull(staff)?staff.getId():null); tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); if ("ysk".equals(thirdPayType)) { @@ -432,7 +460,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result accountPay(String orderId, String memberId, String token,String memberAccount) { + public Result accountPay(String orderId, String memberId, String token,String memberAccount,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId) ) { if(ObjectUtil.isEmpty(memberAccount)){ if(ObjectUtil.isEmpty(memberId)){ @@ -460,12 +488,33 @@ public class PayService { } + int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "deposit"); if (count < 1) { return Result.fail(CodeEnum.PAYTYPENOEXIST); } + + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + TbShopUser user =null; if(ObjectUtil.isNotEmpty(memberId)){ @@ -510,7 +559,10 @@ public class PayService { tbShopUserFlowMapper.insert(flow); - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setUserId(user.getUserId()); orderInfo.setMemberId(user.getId().toString()); orderInfo.setPayType("deposit"); @@ -546,7 +598,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result memberScanPay(String orderId, String memberCode, String token) { + public Result memberScanPay(String orderId, String memberCode, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(memberCode)) { return Result.fail(CodeEnum.PARAM); } @@ -569,6 +621,26 @@ public class PayService { } + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + + TbUserInfo tbUserInfo = tbUserInfoMapper.selectByCardNo(memberCode); if (ObjectUtil.isEmpty(tbUserInfo)) { return Result.fail(ACCOUNTEIXST); @@ -601,8 +673,10 @@ public class PayService { flow.setCreateTime(new Date()); tbShopUserFlowMapper.insert(flow); - - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setMemberId(user.getUserId()); orderInfo.setPayType("deposit"); orderInfo.setStatus("closed"); @@ -637,7 +711,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result cashPay(String orderId, String token) { + public Result cashPay(String orderId, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId)) { return Result.fail(CodeEnum.PARAM); } @@ -654,13 +728,34 @@ public class PayService { } + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash"); if (count < 1) { return Result.fail(CodeEnum.PAYTYPENOEXIST); } - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); @@ -691,7 +786,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result bankPay(String orderId, String token) { + public Result bankPay(String orderId, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId)) { return Result.fail(CodeEnum.PARAM); } @@ -713,8 +808,29 @@ public class PayService { return Result.fail(CodeEnum.PAYTYPENOEXIST); } + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); @@ -835,6 +951,9 @@ public class PayService { saleAmount = saleAmount.add(it.getPrice()); payAmount = payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN) .multiply(new BigDecimal(map1.get(it.getId())))); + if(ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())&&ObjectUtil.isNotNull(orderInfo.getDiscountRatio())){ + payAmount=payAmount.multiply(orderInfo.getDiscountRatio()).setScale(2,BigDecimal.ROUND_DOWN); + } // payAmount=payAmount.add(it.getPriceAmount()); packAMount = packAMount.add(it.getPackAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId())))); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java index bdcbf61..dca35d5 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java @@ -104,6 +104,11 @@ public enum CodeEnum { PWDERROE("100038",false,"操作密码错误","fail"), + STAFFNOEXISTERROE("100039",false,"员工信息不存在","fail"), + + STAFFDISCOUNTAMOUNTHIGHT("100040",false,"优惠金额不能大于员工授权额度","fail"), + + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java index 502d535..bb2688c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java @@ -3,6 +3,7 @@ package com.chaozhanggui.system.cashierservice.thirdpay.req; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; @Data public class MainScanReq implements Serializable { @@ -25,7 +26,13 @@ public class MainScanReq implements Serializable { private String notifyUrl; - public MainScanReq(String subject, String body, Long amount, String subAppid, String currency, String authCode, String mchOrderNo, String storeId, String notifyUrl) { + private int divisionMode; + + private ArrayList divList; + + private String divTemplateNo; + + public MainScanReq(String subject, String body, Long amount, String subAppid, String currency, String authCode, String mchOrderNo, String storeId, String notifyUrl,int divisionMode,String divTemplateNo,ArrayList divList) { this.subject = subject; this.body = body; this.amount = amount; @@ -35,6 +42,9 @@ public class MainScanReq implements Serializable { this.mchOrderNo = mchOrderNo; this.storeId = storeId; this.notifyUrl = notifyUrl; + this.divisionMode=divisionMode; + this.divList=divList; + this.divTemplateNo=divTemplateNo; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java index 0e6eab3..a3b4d0d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java @@ -3,6 +3,7 @@ package com.chaozhanggui.system.cashierservice.thirdpay.req; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; @Data public class WxScanPayReq implements Serializable { @@ -28,11 +29,20 @@ public class WxScanPayReq implements Serializable { private String storeId; + private int divisionMode; + + private ArrayList divList; + + private String divTemplateNo; + private String notifyUrl; private String returnUrl; - public WxScanPayReq(String subject, String body, Long amount, String currency, String payType, String subAppid, String userId, String clientIp, String mchOrderNo, String storeId, String notifyUrl, String returnUrl) { + public WxScanPayReq(String subject, String body, Long amount, String currency, String payType, String subAppid, String userId, String clientIp, String mchOrderNo, String storeId, + int divisionMode,ArrayList divList,String divTemplateNo, + + String notifyUrl, String returnUrl) { this.subject = subject; this.body = body; this.amount = amount; @@ -45,5 +55,8 @@ public class WxScanPayReq implements Serializable { this.storeId = storeId; this.notifyUrl = notifyUrl; this.returnUrl = returnUrl; + this.divisionMode=divisionMode; + this.divList=divList; + this.divTemplateNo=divTemplateNo; } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java index 57c8c18..d65d07e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java @@ -47,8 +47,17 @@ public class ThirdPayService { public PublicResp mainScan(String url,String appId, String subject, String body, Long amount, String subAppId, String authCode, String orderNo, String storeId, String notifyUrl, String key ) { + MainScanReq mainScanReq=null; + if("66bab943ae82f63b50ae3cff".equals(appId)){ + + mainScanReq = new MainScanReq(subject, body, amount, subAppId, "cny", authCode, orderNo, storeId, notifyUrl,1,"TA1824003985261588482",null); + url="https://paymentweb.sxczgkj.cn"; + }else { + mainScanReq = new MainScanReq(subject, body, amount, subAppId, "cny", authCode, orderNo, storeId, notifyUrl,0,null,null); + } + + - MainScanReq mainScanReq = new MainScanReq(subject, body, amount, subAppId, "cny", authCode, orderNo, storeId, notifyUrl); PublicParam param = new PublicParam(appId, "", SignTypeEnum.MD5.getValue(), null, DateUtils.getSdfTimes(), "1.0", String.valueOf(System.currentTimeMillis())); @@ -99,7 +108,14 @@ public class ThirdPayService { String clinetIp,String orderNo, String storeId, String notifyUrl,String returnUrl, String key){ - WxScanPayReq scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,notifyUrl,returnUrl); + WxScanPayReq scanPayReq=null; + if("66bab943ae82f63b50ae3cff".equals(appId)){ + scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,1,null,"TA1824003985261588482",notifyUrl,returnUrl); + url="https://paymentweb.sxczgkj.cn"; + }else { + scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,0,null,null,notifyUrl,returnUrl); + } + PublicParam param=new PublicParam(appId,null,SignTypeEnum.MD5.getValue(),null,DateUtils.getSdfTimes(), "1.0", String.valueOf(System.currentTimeMillis())); diff --git a/src/main/resources/mapper/TbOrderInfoMapper.xml b/src/main/resources/mapper/TbOrderInfoMapper.xml index fbff1b4..6d79ed9 100644 --- a/src/main/resources/mapper/TbOrderInfoMapper.xml +++ b/src/main/resources/mapper/TbOrderInfoMapper.xml @@ -515,6 +515,10 @@ remark = #{remark,jdbcType=VARCHAR}, + + + staff_id = #{staffId,jdbcType=INTEGER}, + where id = #{id,jdbcType=INTEGER} diff --git a/src/main/resources/mapper/TbPlussShopStaffMapper.xml b/src/main/resources/mapper/TbPlussShopStaffMapper.xml index a6525b6..e440c6e 100644 --- a/src/main/resources/mapper/TbPlussShopStaffMapper.xml +++ b/src/main/resources/mapper/TbPlussShopStaffMapper.xml @@ -7,6 +7,7 @@ + @@ -19,7 +20,7 @@ id - , code, name, account, password, max_discount_amount, status, employee, shop_id, + , code, name, account, password,discount_type, max_discount_amount, status, employee, shop_id, created_at, updated_at, type,is_manage,is_pc