浏览代码

合利宝支付接口

zhijiezhao 3 年之前
父节点
当前提交
11bf354ffc
共有 22 个文件被更改,包括 1788 次插入826 次删除
  1. 518 518
      src/main/java/com/caimei365/order/controller/PayNonOrderApi.java
  2. 308 308
      src/main/java/com/caimei365/order/controller/PayOrderApi.java
  3. 28 0
      src/main/java/com/caimei365/order/model/enums/AccountPayOrderType.java
  4. 33 0
      src/main/java/com/caimei365/order/model/enums/AmtFreezeCodeType.java
  5. 43 0
      src/main/java/com/caimei365/order/model/enums/AppPayStatus.java
  6. 36 0
      src/main/java/com/caimei365/order/model/enums/AppPayType.java
  7. 78 0
      src/main/java/com/caimei365/order/model/enums/BizType.java
  8. 32 0
      src/main/java/com/caimei365/order/model/enums/Currency.java
  9. 55 0
      src/main/java/com/caimei365/order/model/enums/IndustryTypeEnum.java
  10. 32 0
      src/main/java/com/caimei365/order/model/enums/OperationType.java
  11. 196 0
      src/main/java/com/caimei365/order/model/vo/AccountPayOrder.java
  12. 26 0
      src/main/java/com/caimei365/order/model/vo/AccountResVo.java
  13. 49 0
      src/main/java/com/caimei365/order/model/vo/AppCreateOrderResponseVo.java
  14. 64 0
      src/main/java/com/caimei365/order/model/vo/AppCreateOrderVo.java
  15. 69 0
      src/main/java/com/caimei365/order/model/vo/AppPayPublicCreateOrderVo.java
  16. 32 0
      src/main/java/com/caimei365/order/model/vo/HeliOnlineResVo.java
  17. 42 0
      src/main/java/com/caimei365/order/model/vo/HeliOnlineVo.java
  18. 16 0
      src/main/java/com/caimei365/order/model/vo/PaySplitVo.java
  19. 50 0
      src/main/java/com/caimei365/order/model/vo/QueryOrderResponseVo.java
  20. 27 0
      src/main/java/com/caimei365/order/model/vo/QueryOrderVo.java
  21. 19 0
      src/main/java/com/caimei365/order/model/vo/SplitMoneyVo.java
  22. 35 0
      src/main/java/com/caimei365/order/model/vo/UnionResVo.java

+ 518 - 518
src/main/java/com/caimei365/order/controller/PayNonOrderApi.java

@@ -1,518 +1,518 @@
-package com.caimei365.order.controller;
-
-import com.alibaba.fastjson.JSONObject;
-import com.caimei365.order.model.ResponseJson;
-import com.caimei365.order.model.dto.PayCouponDto;
-import com.caimei365.order.model.dto.PayDto;
-import com.caimei365.order.model.dto.PaySecondDto;
-import com.caimei365.order.model.dto.PayVipDto;
-import com.caimei365.order.service.PayNonOrderService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.http.HttpHeaders;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.InvalidKeySpecException;
-
-/**
- * 二手发布支付,升级超级会员支付
- *
- * @author : Charles
- * @date : 2021/9/27
- */
-@Api(tags = "其他(非订单)支付API")
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/order/pay")
-public class PayNonOrderApi {
-
-    private final PayNonOrderService payNonOrderService;
-
-    /**
-     * 二手发布-微信线上支付
-     *
-     * @param paySecondDto {
-     *                     productId      二手发布商品id
-     *                     returnUrl     页面回调地址
-     *                     code          微信小程序code
-     *                     state         微信公众号state参数
-     *                     }
-     */
-    @ApiOperation("二手发布-微信线上支付(旧:/PayOrder/appletsSecondHandPay)(/PayOrder/secondHandPay[WEIXIN])")
-    @PostMapping("/second/wechat")
-    public ResponseJson<JSONObject> paySecondByWeChat(PaySecondDto paySecondDto, @RequestHeader HttpHeaders headers) {
-        if (null == paySecondDto.getProductId()) {
-            return ResponseJson.error("二手商品Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(paySecondDto.getCode())) {
-            return ResponseJson.error("微信code不能为空!", null);
-        }
-        return payNonOrderService.paySecondByWeChat(paySecondDto, headers);
-    }
-
-    /**
-     * 二手发布-支付宝线上支付
-     *
-     * @param paySecondDto {
-     *                     productId      二手发布商品id
-     *                     returnUrl     页面回调地址
-     *                     }
-     */
-    @ApiOperation("二手发布-支付宝线上支付(旧:/PayOrder/secondHandPay[ALIPAY])")
-    @PostMapping("/second/alipay")
-    public ResponseJson<JSONObject> paySecondByAlipay(PaySecondDto paySecondDto, @RequestHeader HttpHeaders headers) {
-        if (null == paySecondDto.getProductId()) {
-            return ResponseJson.error("二手商品Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(paySecondDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        return payNonOrderService.paySecondByAlipay(paySecondDto, headers);
-    }
-
-    /**
-     * 二手发布-银联线上支付
-     *
-     * @param paySecondDto {
-     *                     productId     二手发布商品id
-     *                     returnUrl     页面回调地址
-     *                     bankCode      银行编码(银联支付使用)
-     *                     userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
-     *                     }
-     */
-    @ApiOperation("二手发布-银联线上支付(旧:/PayOrder/secondHandPay[UNIONPAY])")
-    @PostMapping("/second/union")
-    public ResponseJson<JSONObject> paySecondByUnionPay(PaySecondDto paySecondDto, @RequestHeader HttpHeaders headers) {
-        if (null == paySecondDto.getProductId()) {
-            return ResponseJson.error("二手商品Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(paySecondDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        if (StringUtils.isEmpty(paySecondDto.getBankCode())) {
-            return ResponseJson.error("银行编码不能为空!", null);
-        }
-        if (StringUtils.isEmpty(paySecondDto.getUserType())) {
-            return ResponseJson.error("银行用户类型不能为空!", null);
-        }
-        return payNonOrderService.paySecondByUnionPay(paySecondDto, headers);
-    }
-
-    /**
-     * 二手发布-支付回调
-     */
-    @ApiOperation("二手发布-支付回调(旧:/PayOrder/secondHandPayCallBack)")
-    @GetMapping("/second/callback")
-    public String paymentSecondCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
-        if (StringUtils.isBlank(data)) {
-            return "回调参数失败";
-        }
-        return payNonOrderService.paymentSecondCallback(data);
-    }
-
-    /**
-     * 升级超级会员-微信线上支付
-     *
-     * @param payVipDto {
-     *                  vipRecordId   会员购买记录Id
-     *                  returnUrl     页面回调地址
-     *                  code          微信小程序code
-     *                  state         微信公众号state参数
-     *                  }
-     */
-    @ApiOperation("升级超级会员-微信线上支付")
-    @PostMapping("/vip/wechat")
-    public ResponseJson<JSONObject> paySuperVipByWeChat(PayVipDto payVipDto, @RequestHeader HttpHeaders headers) {
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getCode())) {
-            return ResponseJson.error("微信code不能为空!", null);
-        }
-        return payNonOrderService.paySuperVipByWeChat(payVipDto, headers);
-    }
-
-    /**
-     * 升级超级会员-支付宝线上支付
-     *
-     * @param payVipDto {
-     *                  vipRecordId   会员购买记录Id
-     *                  returnUrl     页面回调地址
-     *                  }
-     */
-    @ApiOperation("升级超级会员-支付宝线上支付")
-    @PostMapping("/vip/alipay")
-    public ResponseJson<JSONObject> paySuperVipByAlipay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers) {
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        return payNonOrderService.paySuperVipByAlipay(payVipDto, headers);
-    }
-
-    /**
-     * 升级超级会员-银联线上支付
-     *
-     * @param payVipDto {
-     *                  vipRecordId   会员购买记录Id
-     *                  returnUrl     页面回调地址
-     *                  bankCode      银行编码(银联支付使用)
-     *                  userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
-     *                  }
-     */
-    @ApiOperation("升级超级会员-银联线上支付")
-    @PostMapping("/vip/union")
-    public ResponseJson<JSONObject> paySuperVipByUnionPay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers) {
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getBankCode())) {
-            return ResponseJson.error("银行编码不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getUserType())) {
-            return ResponseJson.error("银行用户类型不能为空!", null);
-        }
-        return payNonOrderService.paySuperVipByUnionPay(payVipDto, headers);
-    }
-
-    /**
-     * 升级超级会员-银联线上支付
-     *
-     * @param payVipDto {
-     *                  vipRecordId   会员购买记录Id
-     *                  }
-     */
-    @ApiOperation("超级会员银联转账")
-    @PostMapping("/vip/transfer/union")
-    public ResponseJson<JSONObject> paySuperVipByTransfer(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        return payNonOrderService.paySuperVipByTransfer(payVipDto, headers);
-    }
-    /**
-     * 升级超级会员-支付回调
-     */
-    @ApiOperation("升级超级会员-支付回调")
-    @GetMapping("/vip/callback")
-    public String paymentSuperVipCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
-        if (StringUtils.isBlank(data)) {
-            return "回调参数失败";
-        }
-        return payNonOrderService.paymentSuperVipCallback(data);
-    }
-
-    /**
-     * 升级超级会员-线上退款
-     *
-     * @param payVipDto {
-     *                  vipRecordId   会员购买记录Id
-     *                  code          退款口令
-     *                  }
-     */
-    @ApiOperation("升级超级会员-线上退款)")
-    @PostMapping("/vip/online/refund")
-    public ResponseJson<JSONObject> superVipOnlineRefund(PayVipDto payVipDto) throws NoSuchAlgorithmException, InvalidKeySpecException {
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getCode()) || !"SVIP".equals(payVipDto.getCode())) {
-            return ResponseJson.error("退款口令code不正确!", null);
-        }
-        return payNonOrderService.superVipOnlineRefund(payVipDto);
-    }
-
-
-    @ApiOperation("购买价值优惠券-获取购买记录id")
-    @PostMapping("/coupon/record")
-    public ResponseJson<PayCouponDto> payCouponGetRecord(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
-        if (null == payCouponDto.getCouponId()) {
-            return ResponseJson.error("优惠券Id不能为空!", null);
-        }
-        if (null == payCouponDto.getUserId()) {
-            return ResponseJson.error("userId不能为空!", null);
-        }
-        return payNonOrderService.getCouponRecord(payCouponDto, headers);
-    }
-
-    /**
-     * 升级超级会员-微信线上支付
-     *
-     * @param payCouponDto {
-     *                     couponId      购买优惠券Id
-     *                     userId        userId
-     *                     couponRecordId  购买记录id
-     *                     returnUrl     页面回调地址
-     *                     code          微信小程序code
-     *                     state         微信公众号state参数
-     *                     }
-     */
-    @ApiOperation("购买价值优惠券-微信线上支付")
-    @PostMapping("/coupon/wechat")
-    public ResponseJson<JSONObject> payCouponByWeChat(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
-        if (null == payCouponDto.getCouponRecordId()) {
-            return ResponseJson.error("购买记录id不能为空!", null);
-        }
-        if (null == payCouponDto.getSource()) {
-            return ResponseJson.error("领取渠道不能为空!", null);
-        }
-        if (null == payCouponDto.getCouponId()) {
-            return ResponseJson.error("优惠券Id不能为空!", null);
-        }
-        if (null == payCouponDto.getUserId()) {
-            return ResponseJson.error("userId不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payCouponDto.getCode())) {
-            return ResponseJson.error("微信code不能为空!", null);
-        }
-        return payNonOrderService.payCouponByWeChat(payCouponDto, headers);
-    }
-
-    /**
-     * 购买价值优惠券-支付宝线上支付
-     *
-     * @param payCouponDto {
-     *                     couponRecordId  购买记录id
-     *                     couponId      购买优惠券Id
-     *                     userId        userId
-     *                     returnUrl     页面回调地址
-     *                     }
-     */
-    @ApiOperation("购买价值优惠券-支付宝线上支付")
-    @PostMapping("/coupon/alipay")
-    public ResponseJson<JSONObject> payCouponByAlipay(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
-        if (null == payCouponDto.getCouponRecordId()) {
-            return ResponseJson.error("购买记录id不能为空!", null);
-        }
-        if (null == payCouponDto.getSource()) {
-            return ResponseJson.error("领取渠道不能为空!", null);
-        }
-        if (null == payCouponDto.getCouponId()) {
-            return ResponseJson.error("优惠券Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payCouponDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        return payNonOrderService.payCouponByAlipay(payCouponDto, headers);
-    }
-
-    /**
-     * 购买价值优惠券-银联线上支付
-     *
-     * @param payCouponDto {
-     *                     couponRecordId  购买记录id
-     *                     userID        用户id
-     *                     couponId      购买优惠券Id
-     *                     source        购买渠道
-     *                     returnUrl     页面回调地址
-     *                     bankCode      银行编码(银联支付使用)
-     *                     userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
-     *                     }
-     */
-    @ApiOperation("购买价值优惠券-银联线上支付")
-    @PostMapping("/coupon/union")
-    public ResponseJson<JSONObject> payCouponByUnionPay(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
-        if (null == payCouponDto.getCouponRecordId()) {
-            return ResponseJson.error("购买记录id不能为空!", null);
-        }
-        if (null == payCouponDto.getSource()) {
-            return ResponseJson.error("领取渠道不能为空!", null);
-        }
-        if (null == payCouponDto.getUserId()) {
-            return ResponseJson.error("用户id不能为空!", null);
-        }
-        if (null == payCouponDto.getCouponId()) {
-            return ResponseJson.error("优惠券Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payCouponDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payCouponDto.getBankCode())) {
-            return ResponseJson.error("银行编码不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payCouponDto.getUserType())) {
-            return ResponseJson.error("银行用户类型不能为空!", null);
-        }
-        return payNonOrderService.payCouponUnionPay(payCouponDto, headers);
-    }
-
-    /**
-     * 购买价值优惠券-银联转账支付
-     *
-     * @param payCouponDto {
-     *                     couponRecordId  购买记录id
-     *                     userID        用户id
-     *                     couponId      购买优惠券Id
-     *                     source        购买渠道
-     *                     }
-     */
-    @ApiOperation("购买价值优惠券-银联转账支付")
-    @PostMapping("/coupon/transfer/union")
-    public ResponseJson<JSONObject> payCouponByTransfer(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
-        if (null == payCouponDto.getCouponRecordId()) {
-            return ResponseJson.error("购买记录id不能为空!", null);
-        }
-        if (null == payCouponDto.getSource()) {
-            return ResponseJson.error("领取渠道不能为空!", null);
-        }
-        if (null == payCouponDto.getUserId()) {
-            return ResponseJson.error("用户id不能为空!", null);
-        }
-        if (null == payCouponDto.getCouponId()) {
-            return ResponseJson.error("优惠券Id不能为空!", null);
-        }
-        return payNonOrderService.payCouponByTransfer(payCouponDto, headers);
-    }
-    /**
-     * 购买优惠券-查询是否购买成功
-     */
-    @ApiOperation("购买优惠券-查询是否购买成功")
-    @GetMapping("/coupon/check")
-    public ResponseJson couponCheck(Integer couponRecordId) {
-        if (null == couponRecordId) {
-            return ResponseJson.error("购买记录id不能为空!", null);
-        }
-        return payNonOrderService.couponCheck(couponRecordId);
-    }
-
-
-    /**
-     * 购买优惠券-支付回调
-     */
-    @ApiOperation("购买优惠券-支付回调")
-    @GetMapping("/coupon/callback")
-    public String couponCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
-        if (StringUtils.isBlank(data)) {
-            return "回调参数失败";
-        }
-        return payNonOrderService.couponCallback(data);
-    }
-
-    /**
-     * 购买优惠券-查询是否购买成功
-     */
-    @ApiOperation("购买超级会员-查询是否购买成功")
-    @GetMapping("/vip/check")
-    public ResponseJson vipCheck(Integer recordId) {
-        if (null == recordId) {
-            return ResponseJson.error("购买记录id不能为空!", null);
-        }
-        return payNonOrderService.vipCheck(recordId);
-    }
-
-
-    /**
-     * 开通认证通会员-微信线上支付
-     * @param payVipDto {
-     *                  vipRecordId   会员购买记录Id
-     *                  returnUrl     页面回调地址
-     *                  code          微信小程序code
-     *                  state         微信公众号state参数
-     * }
-     */
-    @ApiOperation("开通认证通会员-微信线上支付")
-    @PostMapping("/auth/vip/wechat")
-    public ResponseJson<JSONObject> payAuthVipByWeChat(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getCode())) {
-            return ResponseJson.error("微信code不能为空!", null);
-        }
-        return payNonOrderService.payAuthVipByWeChat(payVipDto, headers);
-    }
-
-    /**
-     * 开通认证通会员-支付宝线上支付
-     * @param payVipDto {
-     *                  vipRecordId   会员购买记录Id
-     *                  returnUrl     页面回调地址
-     * }
-     */
-    @ApiOperation("开通认证通会员-支付宝线上支付")
-    @PostMapping("/auth/vip/alipay")
-    public ResponseJson<JSONObject> payAuthVipByAlipay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        return payNonOrderService.payAuthVipByAlipay(payVipDto, headers);
-    }
-
-    /**
-     * 开通认证通会员-银联线上支付
-     * @param payVipDto {
-     *               vipRecordId   会员购买记录Id
-     *               returnUrl     页面回调地址
-     *               bankCode      银行编码(银联支付使用)
-     *               userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
-     * }
-     */
-    @ApiOperation("开通认证通会员-银联线上支付")
-    @PostMapping("/auth/vip/union")
-    public ResponseJson<JSONObject> payAuthVipByUnionPay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getBankCode())) {
-            return ResponseJson.error("银行编码不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getUserType())) {
-            return ResponseJson.error("银行用户类型不能为空!", null);
-        }
-        return payNonOrderService.payAuthVipByUnionPay(payVipDto, headers);
-    }
-
-    /**
-     * 开通认证通会员-支付回调
-     */
-    @ApiOperation("开通认证通会员-支付回调")
-    @GetMapping("/auth/vip/callback")
-    public String paymentAuthVipCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
-        if (StringUtils.isBlank(data)) {
-            return "回调参数失败";
-        }
-        return payNonOrderService.paymentAuthVipCallback(data);
-    }
-
-    /**
-     * 开通认证通会员-线上退款
-     * @param payVipDto {
-     *               vipRecordId   会员购买记录Id
-     *               code          退款口令
-     * }
-     */
-    @ApiOperation("开通认证通会员-线上退款)")
-    @PostMapping("/auth/vip/online/refund")
-    public ResponseJson<JSONObject> authVipOnlineRefund(PayVipDto payVipDto) throws NoSuchAlgorithmException, InvalidKeySpecException {
-        if (null == payVipDto.getVipRecordId()) {
-            return ResponseJson.error("会员购买记录Id不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payVipDto.getCode()) || !"SVIP".equals(payVipDto.getCode())) {
-            return ResponseJson.error("退款口令code不正确!", null);
-        }
-        return payNonOrderService.superVipOnlineRefund(payVipDto);
-    }
-
-    @ApiOperation("购买认证通会员-查询是否购买成功")
-    @GetMapping("/auth/vip/check")
-    public ResponseJson authVipCheck(Integer vipRecordId) {
-        if (null == vipRecordId) {
-            return ResponseJson.error("购买记录id不能为空!", null);
-        }
-        return payNonOrderService.authVipCheck(vipRecordId);
-    }
-}
+//package com.caimei365.order.controller;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.caimei365.order.model.ResponseJson;
+//import com.caimei365.order.model.dto.PayCouponDto;
+//import com.caimei365.order.model.dto.PayDto;
+//import com.caimei365.order.model.dto.PaySecondDto;
+//import com.caimei365.order.model.dto.PayVipDto;
+//import com.caimei365.order.service.PayNonOrderService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import lombok.RequiredArgsConstructor;
+//import org.apache.commons.lang3.StringUtils;
+//import org.springframework.http.HttpHeaders;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.security.NoSuchAlgorithmException;
+//import java.security.spec.InvalidKeySpecException;
+//
+///**
+// * 二手发布支付,升级超级会员支付
+// *
+// * @author : Charles
+// * @date : 2021/9/27
+// */
+//@Api(tags = "其他(非订单)支付API")
+//@RestController
+//@RequiredArgsConstructor
+//@RequestMapping("/order/pay")
+//public class PayNonOrderApi {
+//
+//    private final PayNonOrderService payNonOrderService;
+//
+//    /**
+//     * 二手发布-微信线上支付
+//     *
+//     * @param paySecondDto {
+//     *                     productId      二手发布商品id
+//     *                     returnUrl     页面回调地址
+//     *                     code          微信小程序code
+//     *                     state         微信公众号state参数
+//     *                     }
+//     */
+//    @ApiOperation("二手发布-微信线上支付(旧:/PayOrder/appletsSecondHandPay)(/PayOrder/secondHandPay[WEIXIN])")
+//    @PostMapping("/second/wechat")
+//    public ResponseJson<JSONObject> paySecondByWeChat(PaySecondDto paySecondDto, @RequestHeader HttpHeaders headers) {
+//        if (null == paySecondDto.getProductId()) {
+//            return ResponseJson.error("二手商品Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(paySecondDto.getCode())) {
+//            return ResponseJson.error("微信code不能为空!", null);
+//        }
+//        return payNonOrderService.paySecondByWeChat(paySecondDto, headers);
+//    }
+//
+//    /**
+//     * 二手发布-支付宝线上支付
+//     *
+//     * @param paySecondDto {
+//     *                     productId      二手发布商品id
+//     *                     returnUrl     页面回调地址
+//     *                     }
+//     */
+//    @ApiOperation("二手发布-支付宝线上支付(旧:/PayOrder/secondHandPay[ALIPAY])")
+//    @PostMapping("/second/alipay")
+//    public ResponseJson<JSONObject> paySecondByAlipay(PaySecondDto paySecondDto, @RequestHeader HttpHeaders headers) {
+//        if (null == paySecondDto.getProductId()) {
+//            return ResponseJson.error("二手商品Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(paySecondDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        return payNonOrderService.paySecondByAlipay(paySecondDto, headers);
+//    }
+//
+//    /**
+//     * 二手发布-银联线上支付
+//     *
+//     * @param paySecondDto {
+//     *                     productId     二手发布商品id
+//     *                     returnUrl     页面回调地址
+//     *                     bankCode      银行编码(银联支付使用)
+//     *                     userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
+//     *                     }
+//     */
+//    @ApiOperation("二手发布-银联线上支付(旧:/PayOrder/secondHandPay[UNIONPAY])")
+//    @PostMapping("/second/union")
+//    public ResponseJson<JSONObject> paySecondByUnionPay(PaySecondDto paySecondDto, @RequestHeader HttpHeaders headers) {
+//        if (null == paySecondDto.getProductId()) {
+//            return ResponseJson.error("二手商品Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(paySecondDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(paySecondDto.getBankCode())) {
+//            return ResponseJson.error("银行编码不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(paySecondDto.getUserType())) {
+//            return ResponseJson.error("银行用户类型不能为空!", null);
+//        }
+//        return payNonOrderService.paySecondByUnionPay(paySecondDto, headers);
+//    }
+//
+//    /**
+//     * 二手发布-支付回调
+//     */
+//    @ApiOperation("二手发布-支付回调(旧:/PayOrder/secondHandPayCallBack)")
+//    @GetMapping("/second/callback")
+//    public String paymentSecondCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
+//        if (StringUtils.isBlank(data)) {
+//            return "回调参数失败";
+//        }
+//        return payNonOrderService.paymentSecondCallback(data);
+//    }
+//
+//    /**
+//     * 升级超级会员-微信线上支付
+//     *
+//     * @param payVipDto {
+//     *                  vipRecordId   会员购买记录Id
+//     *                  returnUrl     页面回调地址
+//     *                  code          微信小程序code
+//     *                  state         微信公众号state参数
+//     *                  }
+//     */
+//    @ApiOperation("升级超级会员-微信线上支付")
+//    @PostMapping("/vip/wechat")
+//    public ResponseJson<JSONObject> paySuperVipByWeChat(PayVipDto payVipDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getCode())) {
+//            return ResponseJson.error("微信code不能为空!", null);
+//        }
+//        return payNonOrderService.paySuperVipByWeChat(payVipDto, headers);
+//    }
+//
+//    /**
+//     * 升级超级会员-支付宝线上支付
+//     *
+//     * @param payVipDto {
+//     *                  vipRecordId   会员购买记录Id
+//     *                  returnUrl     页面回调地址
+//     *                  }
+//     */
+//    @ApiOperation("升级超级会员-支付宝线上支付")
+//    @PostMapping("/vip/alipay")
+//    public ResponseJson<JSONObject> paySuperVipByAlipay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        return payNonOrderService.paySuperVipByAlipay(payVipDto, headers);
+//    }
+//
+//    /**
+//     * 升级超级会员-银联线上支付
+//     *
+//     * @param payVipDto {
+//     *                  vipRecordId   会员购买记录Id
+//     *                  returnUrl     页面回调地址
+//     *                  bankCode      银行编码(银联支付使用)
+//     *                  userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
+//     *                  }
+//     */
+//    @ApiOperation("升级超级会员-银联线上支付")
+//    @PostMapping("/vip/union")
+//    public ResponseJson<JSONObject> paySuperVipByUnionPay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getBankCode())) {
+//            return ResponseJson.error("银行编码不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getUserType())) {
+//            return ResponseJson.error("银行用户类型不能为空!", null);
+//        }
+//        return payNonOrderService.paySuperVipByUnionPay(payVipDto, headers);
+//    }
+//
+//    /**
+//     * 升级超级会员-银联线上支付
+//     *
+//     * @param payVipDto {
+//     *                  vipRecordId   会员购买记录Id
+//     *                  }
+//     */
+//    @ApiOperation("超级会员银联转账")
+//    @PostMapping("/vip/transfer/union")
+//    public ResponseJson<JSONObject> paySuperVipByTransfer(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        return payNonOrderService.paySuperVipByTransfer(payVipDto, headers);
+//    }
+//    /**
+//     * 升级超级会员-支付回调
+//     */
+//    @ApiOperation("升级超级会员-支付回调")
+//    @GetMapping("/vip/callback")
+//    public String paymentSuperVipCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
+//        if (StringUtils.isBlank(data)) {
+//            return "回调参数失败";
+//        }
+//        return payNonOrderService.paymentSuperVipCallback(data);
+//    }
+//
+//    /**
+//     * 升级超级会员-线上退款
+//     *
+//     * @param payVipDto {
+//     *                  vipRecordId   会员购买记录Id
+//     *                  code          退款口令
+//     *                  }
+//     */
+//    @ApiOperation("升级超级会员-线上退款)")
+//    @PostMapping("/vip/online/refund")
+//    public ResponseJson<JSONObject> superVipOnlineRefund(PayVipDto payVipDto) throws NoSuchAlgorithmException, InvalidKeySpecException {
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getCode()) || !"SVIP".equals(payVipDto.getCode())) {
+//            return ResponseJson.error("退款口令code不正确!", null);
+//        }
+//        return payNonOrderService.superVipOnlineRefund(payVipDto);
+//    }
+//
+//
+//    @ApiOperation("购买价值优惠券-获取购买记录id")
+//    @PostMapping("/coupon/record")
+//    public ResponseJson<PayCouponDto> payCouponGetRecord(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payCouponDto.getCouponId()) {
+//            return ResponseJson.error("优惠券Id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getUserId()) {
+//            return ResponseJson.error("userId不能为空!", null);
+//        }
+//        return payNonOrderService.getCouponRecord(payCouponDto, headers);
+//    }
+//
+//    /**
+//     * 升级超级会员-微信线上支付
+//     *
+//     * @param payCouponDto {
+//     *                     couponId      购买优惠券Id
+//     *                     userId        userId
+//     *                     couponRecordId  购买记录id
+//     *                     returnUrl     页面回调地址
+//     *                     code          微信小程序code
+//     *                     state         微信公众号state参数
+//     *                     }
+//     */
+//    @ApiOperation("购买价值优惠券-微信线上支付")
+//    @PostMapping("/coupon/wechat")
+//    public ResponseJson<JSONObject> payCouponByWeChat(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payCouponDto.getCouponRecordId()) {
+//            return ResponseJson.error("购买记录id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getSource()) {
+//            return ResponseJson.error("领取渠道不能为空!", null);
+//        }
+//        if (null == payCouponDto.getCouponId()) {
+//            return ResponseJson.error("优惠券Id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getUserId()) {
+//            return ResponseJson.error("userId不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payCouponDto.getCode())) {
+//            return ResponseJson.error("微信code不能为空!", null);
+//        }
+//        return payNonOrderService.payCouponByWeChat(payCouponDto, headers);
+//    }
+//
+//    /**
+//     * 购买价值优惠券-支付宝线上支付
+//     *
+//     * @param payCouponDto {
+//     *                     couponRecordId  购买记录id
+//     *                     couponId      购买优惠券Id
+//     *                     userId        userId
+//     *                     returnUrl     页面回调地址
+//     *                     }
+//     */
+//    @ApiOperation("购买价值优惠券-支付宝线上支付")
+//    @PostMapping("/coupon/alipay")
+//    public ResponseJson<JSONObject> payCouponByAlipay(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payCouponDto.getCouponRecordId()) {
+//            return ResponseJson.error("购买记录id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getSource()) {
+//            return ResponseJson.error("领取渠道不能为空!", null);
+//        }
+//        if (null == payCouponDto.getCouponId()) {
+//            return ResponseJson.error("优惠券Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payCouponDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        return payNonOrderService.payCouponByAlipay(payCouponDto, headers);
+//    }
+//
+//    /**
+//     * 购买价值优惠券-银联线上支付
+//     *
+//     * @param payCouponDto {
+//     *                     couponRecordId  购买记录id
+//     *                     userID        用户id
+//     *                     couponId      购买优惠券Id
+//     *                     source        购买渠道
+//     *                     returnUrl     页面回调地址
+//     *                     bankCode      银行编码(银联支付使用)
+//     *                     userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
+//     *                     }
+//     */
+//    @ApiOperation("购买价值优惠券-银联线上支付")
+//    @PostMapping("/coupon/union")
+//    public ResponseJson<JSONObject> payCouponByUnionPay(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payCouponDto.getCouponRecordId()) {
+//            return ResponseJson.error("购买记录id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getSource()) {
+//            return ResponseJson.error("领取渠道不能为空!", null);
+//        }
+//        if (null == payCouponDto.getUserId()) {
+//            return ResponseJson.error("用户id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getCouponId()) {
+//            return ResponseJson.error("优惠券Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payCouponDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payCouponDto.getBankCode())) {
+//            return ResponseJson.error("银行编码不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payCouponDto.getUserType())) {
+//            return ResponseJson.error("银行用户类型不能为空!", null);
+//        }
+//        return payNonOrderService.payCouponUnionPay(payCouponDto, headers);
+//    }
+//
+//    /**
+//     * 购买价值优惠券-银联转账支付
+//     *
+//     * @param payCouponDto {
+//     *                     couponRecordId  购买记录id
+//     *                     userID        用户id
+//     *                     couponId      购买优惠券Id
+//     *                     source        购买渠道
+//     *                     }
+//     */
+//    @ApiOperation("购买价值优惠券-银联转账支付")
+//    @PostMapping("/coupon/transfer/union")
+//    public ResponseJson<JSONObject> payCouponByTransfer(PayCouponDto payCouponDto, @RequestHeader HttpHeaders headers) {
+//        if (null == payCouponDto.getCouponRecordId()) {
+//            return ResponseJson.error("购买记录id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getSource()) {
+//            return ResponseJson.error("领取渠道不能为空!", null);
+//        }
+//        if (null == payCouponDto.getUserId()) {
+//            return ResponseJson.error("用户id不能为空!", null);
+//        }
+//        if (null == payCouponDto.getCouponId()) {
+//            return ResponseJson.error("优惠券Id不能为空!", null);
+//        }
+//        return payNonOrderService.payCouponByTransfer(payCouponDto, headers);
+//    }
+//    /**
+//     * 购买优惠券-查询是否购买成功
+//     */
+//    @ApiOperation("购买优惠券-查询是否购买成功")
+//    @GetMapping("/coupon/check")
+//    public ResponseJson couponCheck(Integer couponRecordId) {
+//        if (null == couponRecordId) {
+//            return ResponseJson.error("购买记录id不能为空!", null);
+//        }
+//        return payNonOrderService.couponCheck(couponRecordId);
+//    }
+//
+//
+//    /**
+//     * 购买优惠券-支付回调
+//     */
+//    @ApiOperation("购买优惠券-支付回调")
+//    @GetMapping("/coupon/callback")
+//    public String couponCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
+//        if (StringUtils.isBlank(data)) {
+//            return "回调参数失败";
+//        }
+//        return payNonOrderService.couponCallback(data);
+//    }
+//
+//    /**
+//     * 购买优惠券-查询是否购买成功
+//     */
+//    @ApiOperation("购买超级会员-查询是否购买成功")
+//    @GetMapping("/vip/check")
+//    public ResponseJson vipCheck(Integer recordId) {
+//        if (null == recordId) {
+//            return ResponseJson.error("购买记录id不能为空!", null);
+//        }
+//        return payNonOrderService.vipCheck(recordId);
+//    }
+//
+//
+//    /**
+//     * 开通认证通会员-微信线上支付
+//     * @param payVipDto {
+//     *                  vipRecordId   会员购买记录Id
+//     *                  returnUrl     页面回调地址
+//     *                  code          微信小程序code
+//     *                  state         微信公众号state参数
+//     * }
+//     */
+//    @ApiOperation("开通认证通会员-微信线上支付")
+//    @PostMapping("/auth/vip/wechat")
+//    public ResponseJson<JSONObject> payAuthVipByWeChat(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getCode())) {
+//            return ResponseJson.error("微信code不能为空!", null);
+//        }
+//        return payNonOrderService.payAuthVipByWeChat(payVipDto, headers);
+//    }
+//
+//    /**
+//     * 开通认证通会员-支付宝线上支付
+//     * @param payVipDto {
+//     *                  vipRecordId   会员购买记录Id
+//     *                  returnUrl     页面回调地址
+//     * }
+//     */
+//    @ApiOperation("开通认证通会员-支付宝线上支付")
+//    @PostMapping("/auth/vip/alipay")
+//    public ResponseJson<JSONObject> payAuthVipByAlipay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        return payNonOrderService.payAuthVipByAlipay(payVipDto, headers);
+//    }
+//
+//    /**
+//     * 开通认证通会员-银联线上支付
+//     * @param payVipDto {
+//     *               vipRecordId   会员购买记录Id
+//     *               returnUrl     页面回调地址
+//     *               bankCode      银行编码(银联支付使用)
+//     *               userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
+//     * }
+//     */
+//    @ApiOperation("开通认证通会员-银联线上支付")
+//    @PostMapping("/auth/vip/union")
+//    public ResponseJson<JSONObject> payAuthVipByUnionPay(PayVipDto payVipDto, @RequestHeader HttpHeaders headers){
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getBankCode())) {
+//            return ResponseJson.error("银行编码不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getUserType())) {
+//            return ResponseJson.error("银行用户类型不能为空!", null);
+//        }
+//        return payNonOrderService.payAuthVipByUnionPay(payVipDto, headers);
+//    }
+//
+//    /**
+//     * 开通认证通会员-支付回调
+//     */
+//    @ApiOperation("开通认证通会员-支付回调")
+//    @GetMapping("/auth/vip/callback")
+//    public String paymentAuthVipCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
+//        if (StringUtils.isBlank(data)) {
+//            return "回调参数失败";
+//        }
+//        return payNonOrderService.paymentAuthVipCallback(data);
+//    }
+//
+//    /**
+//     * 开通认证通会员-线上退款
+//     * @param payVipDto {
+//     *               vipRecordId   会员购买记录Id
+//     *               code          退款口令
+//     * }
+//     */
+//    @ApiOperation("开通认证通会员-线上退款)")
+//    @PostMapping("/auth/vip/online/refund")
+//    public ResponseJson<JSONObject> authVipOnlineRefund(PayVipDto payVipDto) throws NoSuchAlgorithmException, InvalidKeySpecException {
+//        if (null == payVipDto.getVipRecordId()) {
+//            return ResponseJson.error("会员购买记录Id不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payVipDto.getCode()) || !"SVIP".equals(payVipDto.getCode())) {
+//            return ResponseJson.error("退款口令code不正确!", null);
+//        }
+//        return payNonOrderService.superVipOnlineRefund(payVipDto);
+//    }
+//
+//    @ApiOperation("购买认证通会员-查询是否购买成功")
+//    @GetMapping("/auth/vip/check")
+//    public ResponseJson authVipCheck(Integer vipRecordId) {
+//        if (null == vipRecordId) {
+//            return ResponseJson.error("购买记录id不能为空!", null);
+//        }
+//        return payNonOrderService.authVipCheck(vipRecordId);
+//    }
+//}

+ 308 - 308
src/main/java/com/caimei365/order/controller/PayOrderApi.java

@@ -1,318 +1,318 @@
-package com.caimei365.order.controller;
-
-import com.alibaba.fastjson.JSONObject;
-import com.caimei365.order.model.ResponseJson;
-import com.caimei365.order.model.dto.PayDto;
-import com.caimei365.order.model.dto.PayLinkDto;
-import com.caimei365.order.service.PayOrderService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.http.HttpHeaders;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.InvalidKeySpecException;
-import java.util.Map;
-
-/**
- * 订单支付API
- *
- * @author : Charles
- * @date : 2021/7/29
- */
-@Api(tags="订单支付API")
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/order/pay")
-public class PayOrderApi {
-    private final PayOrderService payOrderService;
-
-    /**
-     * 订单支付前效验付款规则
-     */
-    @ApiOperation("订单支付前效验付款规则(旧:/order/paymentValidation)")
-    @ApiImplicitParam(required = false, name = "orderId", value = "订单Id")
-    @GetMapping("/check")
-    public ResponseJson<Map<String, Object>> paymentValidation(Integer orderId) {
-        if (null == orderId) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        return payOrderService.payBeforeCheck(orderId);
-    }
-
-    /**
-     * 订单支付,余额抵扣
-     * @param payDto {
-     *                orderId      订单ID
-     * }
-     */
-    @ApiOperation("订单支付,余额抵扣(旧:/order/balanceDeduction)")
-    @PostMapping("/balance/deduction")
-    public ResponseJson<Map<String, Object>> balanceDeduction(PayDto payDto){
-        if (null == payDto.getOrderId()) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        return payOrderService.balanceDeduction(payDto.getOrderId());
-    }
-
-    /**
-     * 获取线上支付全局开关状态
-     */
-    @ApiOperation("获取线上支付全局开关状态(旧:/PayOrder/onLineSwitch)")
-    @GetMapping("/online/switch")
-    public ResponseJson<Integer> getPayOnLineSwitch() {
-        return payOrderService.getPayOnLineSwitch();
-    }
-
-    /**
-     * 收银台数据显示
-     */
-    @ApiOperation("收银台数据(旧:/PayOrder/checkoutCounter)")
-    @ApiImplicitParam(required = false, name = "orderId", value = "订单Id")
-    @GetMapping("/checkout/counter")
-    public ResponseJson<Map<String, Object>> getCheckoutCounter(Integer orderId) {
-        if (null == orderId) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        return payOrderService.getCheckoutCounter(orderId);
-    }
-
-
-    /**
-     *  生成网银支付链接
-     * @param payLinkDto {vvv
-     *                   orderId       订单ID
-     *                   vipRecordId   会员购买记录Id
-     * }
-     */
-    @ApiOperation("生成网银支付链接(旧:/PayOrder/payLink)")
-    @PostMapping("/link")
-    public ResponseJson<String> getPayLink(PayLinkDto payLinkDto) {
-        if (null == payLinkDto.getOrderId() && null == payLinkDto.getVipRecordId() && null == payLinkDto.getAuthVipRecordId()) {
-            return ResponseJson.error("订单Id和会员购买记录Id和认证通会员购买记录Id不能同时为空!", null);
-        }
-        if (null != payLinkDto.getOrderId() && null != payLinkDto.getVipRecordId()) {
-            return ResponseJson.error("订单Id和会员购买记录Id不能同时出现!", null);
-        }
-        if (null != payLinkDto.getAuthVipRecordId() && null != payLinkDto.getVipRecordId()) {
-            return ResponseJson.error("认证通会员购买记录Id和会员购买记录Id不能同时出现!", null);
-        }
-        if (null != payLinkDto.getOrderId() && null != payLinkDto.getAuthVipRecordId()) {
-            return ResponseJson.error("订单Id和认证通会员购买记录Id不能同时出现!", null);
-        }
-        return payOrderService.getPayLink(payLinkDto);
-    }
-
-    /**
-     * 支付链接重定向到页面
-     * @param linkLogo 链接标识
-     */
-    @ApiOperation("支付链接重定向到页面(旧:/PayOrder/jumpPage)")
-    @ApiImplicitParam(required = false, name = "linkLogo", value = "链接标识")
-    @GetMapping("/link/jump")
-    public void jumpPayPage(String linkLogo, HttpServletResponse response) throws IOException {
-        payOrderService.jumpPayPage(linkLogo, response);
-    }
-
-    /**
-     * 重定向页面的支付数据
-     */
-    @ApiOperation("重定向页面的支付数据(旧:/PayOrder/linkData)")
-    @GetMapping("/link/data")
-    public ResponseJson<Map<String, Object>> linkPayData(String linkLogo) {
-        if (StringUtils.isBlank(linkLogo)) {
-            return ResponseJson.error("链接标识不能为空!", null);
-        }
-        return payOrderService.linkPayData(linkLogo);
-    }
-
-    /**
-     * 微信线上支付
-     * @param payDto {
-     *               orderId      订单ID
-     *               payAmount     支付金额,单位分,必须大于2
-     *               returnUrl     页面回调地址
-     *               code          微信小程序code
-     *               state         微信公众号state参数
-     * }
-     */
-    @ApiOperation("微信线上支付(旧:/PayOrder/miniWxPay)")
-    @PostMapping("/wechat")
-    public ResponseJson<JSONObject> payByWeChat(PayDto payDto, @RequestHeader HttpHeaders headers){
-        if (null == payDto.getOrderId()) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 2) {
-            return ResponseJson.error("支付金额不正确!", null);
-        }
-        if (StringUtils.isEmpty(payDto.getCode())) {
-            return ResponseJson.error("微信code不能为空!", null);
-        }
-        return payOrderService.payByWeChat(payDto, headers);
-    }
-
-    /**
-     * 支付宝线上支付
-     * @param payDto {
-     *               orderId      订单ID
-     *               payAmount     支付金额,单位分,必须大于2
-     *               returnUrl     页面回调地址
-     * }
-     */
-    @ApiOperation("支付宝线上支付(旧:/PayOrder/pcMallPay[ALIPAY])")
-    @PostMapping("/alipay")
-    public ResponseJson<JSONObject> payByAlipay(PayDto payDto, @RequestHeader HttpHeaders headers){
-        if (null == payDto.getOrderId()) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 2) {
-            return ResponseJson.error("支付金额不正确!", null);
-        }
-        if (StringUtils.isEmpty(payDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        return payOrderService.payByAlipay(payDto, headers);
-    }
-
-    /**
-     * 银联线上支付
-     * @param payDto {
-     *               orderId       订单ID
-     *               payAmount     支付金额,单位分,必须大于2
-     *               returnUrl     页面回调地址
-     *               bankCode      银行编码(银联支付使用)
-     *               userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
-     * }
-     */
-    @ApiOperation("银联线上支付(旧:/PayOrder/pcMallPay[UNIONPAY])")
-    @PostMapping("/union")
-    public ResponseJson<JSONObject> payByUnionPay(PayDto payDto, @RequestHeader HttpHeaders headers){
-        if (null == payDto.getOrderId()) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 2) {
-            return ResponseJson.error("支付金额不正确!", null);
-        }
-        if (StringUtils.isEmpty(payDto.getReturnUrl())) {
-            return ResponseJson.error("回调地址不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payDto.getBankCode())) {
-            return ResponseJson.error("银行编码不能为空!", null);
-        }
-        if (StringUtils.isEmpty(payDto.getUserType())) {
-            return ResponseJson.error("银行用户类型不能为空!", null);
-        }
-        return payOrderService.payByUnionPay(payDto, headers);
-    }
-
-    /**
-     * 银联线上支付
-     * @param payDto {
-     *               orderId       订单ID
-     *               payAmount     支付金额,单位分,必须大于1200(银联转账金额12)
-     * }
-     */
-    @ApiOperation("银联转账")
-    @PostMapping("/transfer/union")
-    public ResponseJson<JSONObject> payByUnion(PayDto payDto, @RequestHeader HttpHeaders headers){
-        if (null == payDto.getOrderId()) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 1200) {
-            return ResponseJson.error("支付金额不能小于手续费!", null);
-        }
-        return payOrderService.payByUnion(payDto, headers);
-    }
-
-    /**
-     * 支付异步通知回调
-     */
-    @ApiOperation("支付异步通知回调(旧:/PayOrder/paymentCallback)")
-    @GetMapping("/callback")
-    public String paymentCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
-        if (StringUtils.isBlank(data)) {
-            return "回调参数失败";
-        }
-        return payOrderService.paymentCallback(data);
-    }
-
-    /**
-     * 判断此次支付是否完成
-     * @param orderId           订单id
-     * @param paySuccessCounter 付款次数
-     */
-    @ApiOperation("判断此次支付是否完成(旧:/PayOrder/payWhetherSuccess)")
-    @ApiImplicitParams({
-            @ApiImplicitParam(required = false, name = "orderId", value = "订单id"),
-            @ApiImplicitParam(required = false, name = "paySuccessCounter", value = "付款次数")
-    })
-    @GetMapping("/result/check")
-    public ResponseJson<String> payWhetherSuccess(Integer orderId, Integer paySuccessCounter) {
-        if (null == orderId) {
-            return ResponseJson.error("订单Id不能为空!", null);
-        }
-        if (null == paySuccessCounter) {
-            return ResponseJson.error("付款次数不能为空!", null);
-        }
-        return payOrderService.payWhetherSuccess(orderId, paySuccessCounter);
-    }
-
-    /**
-     * 查询本次支付订单结果
-     * @param mbOrderId 平台唯一流水号
-     */
-    @ApiOperation("查询本次支付订单结果(旧:/PayOrder/findOrderStatus)")
-    @ApiImplicitParam(required = false, name = "mbOrderId", value = "平台唯一流水号")
-    @GetMapping("/result/json")
-    public ResponseJson<JSONObject> getPayOrderResult(String mbOrderId) {
-        if (null == mbOrderId) {
-            return ResponseJson.error("平台唯一流水号不能为空!", null);
-        }
-        return payOrderService.getPayOrderResult(mbOrderId);
-    }
-
-    /**
-     * 延时分账异步通知回调
-     */
-    @ApiOperation("延时分账异步通知回调(旧:/PayOrder/delayedSplittingCallback)")
-    @GetMapping("/delay/split/callback")
-    public String delayedSplittingCallback(String data) {
-        if (StringUtils.isBlank(data)) {
-            return "回调参数失败";
-        }
-        return payOrderService.delayedSplittingCallback(data);
-    }
-
-    @ApiOperation("银行通道码获取")
-    @GetMapping("/bankcode")
-    public ResponseJson<JSONObject> bankcode() {
-        return payOrderService.bankCode();
-    }
-
+//package com.caimei365.order.controller;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.caimei365.order.model.ResponseJson;
+//import com.caimei365.order.model.dto.PayDto;
+//import com.caimei365.order.model.dto.PayLinkDto;
+//import com.caimei365.order.service.PayOrderService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiImplicitParam;
+//import io.swagger.annotations.ApiImplicitParams;
+//import io.swagger.annotations.ApiOperation;
+//import lombok.RequiredArgsConstructor;
+//import org.apache.commons.lang3.StringUtils;
+//import org.springframework.http.HttpHeaders;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.security.NoSuchAlgorithmException;
+//import java.security.spec.InvalidKeySpecException;
+//import java.util.Map;
+//
+///**
+// * 订单支付API
+// *
+// * @author : Charles
+// * @date : 2021/7/29
+// */
+//@Api(tags="订单支付API")
+//@RestController
+//@RequiredArgsConstructor
+//@RequestMapping("/order/pay")
+//public class PayOrderApi {
+//    private final PayOrderService payOrderService;
+//
+//    /**
+//     * 订单支付前效验付款规则
+//     */
+//    @ApiOperation("订单支付前效验付款规则(旧:/order/paymentValidation)")
+//    @ApiImplicitParam(required = false, name = "orderId", value = "订单Id")
+//    @GetMapping("/check")
+//    public ResponseJson<Map<String, Object>> paymentValidation(Integer orderId) {
+//        if (null == orderId) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        return payOrderService.payBeforeCheck(orderId);
+//    }
+//
+//    /**
+//     * 订单支付,余额抵扣
+//     * @param payDto {
+//     *                orderId      订单ID
+//     * }
+//     */
+//    @ApiOperation("订单支付,余额抵扣(旧:/order/balanceDeduction)")
+//    @PostMapping("/balance/deduction")
+//    public ResponseJson<Map<String, Object>> balanceDeduction(PayDto payDto){
+//        if (null == payDto.getOrderId()) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        return payOrderService.balanceDeduction(payDto.getOrderId());
+//    }
+//
+//    /**
+//     * 获取线上支付全局开关状态
+//     */
+//    @ApiOperation("获取线上支付全局开关状态(旧:/PayOrder/onLineSwitch)")
+//    @GetMapping("/online/switch")
+//    public ResponseJson<Integer> getPayOnLineSwitch() {
+//        return payOrderService.getPayOnLineSwitch();
+//    }
+//
+//    /**
+//     * 收银台数据显示
+//     */
+//    @ApiOperation("收银台数据(旧:/PayOrder/checkoutCounter)")
+//    @ApiImplicitParam(required = false, name = "orderId", value = "订单Id")
+//    @GetMapping("/checkout/counter")
+//    public ResponseJson<Map<String, Object>> getCheckoutCounter(Integer orderId) {
+//        if (null == orderId) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        return payOrderService.getCheckoutCounter(orderId);
+//    }
+//
+//
+//    /**
+//     *  生成网银支付链接
+//     * @param payLinkDto {vvv
+//     *                   orderId       订单ID
+//     *                   vipRecordId   会员购买记录Id
+//     * }
+//     */
+//    @ApiOperation("生成网银支付链接(旧:/PayOrder/payLink)")
+//    @PostMapping("/link")
+//    public ResponseJson<String> getPayLink(PayLinkDto payLinkDto) {
+//        if (null == payLinkDto.getOrderId() && null == payLinkDto.getVipRecordId() && null == payLinkDto.getAuthVipRecordId()) {
+//            return ResponseJson.error("订单Id和会员购买记录Id和认证通会员购买记录Id不能同时为空!", null);
+//        }
+//        if (null != payLinkDto.getOrderId() && null != payLinkDto.getVipRecordId()) {
+//            return ResponseJson.error("订单Id和会员购买记录Id不能同时出现!", null);
+//        }
+//        if (null != payLinkDto.getAuthVipRecordId() && null != payLinkDto.getVipRecordId()) {
+//            return ResponseJson.error("认证通会员购买记录Id和会员购买记录Id不能同时出现!", null);
+//        }
+//        if (null != payLinkDto.getOrderId() && null != payLinkDto.getAuthVipRecordId()) {
+//            return ResponseJson.error("订单Id和认证通会员购买记录Id不能同时出现!", null);
+//        }
+//        return payOrderService.getPayLink(payLinkDto);
+//    }
+//
+//    /**
+//     * 支付链接重定向到页面
+//     * @param linkLogo 链接标识
+//     */
+//    @ApiOperation("支付链接重定向到页面(旧:/PayOrder/jumpPage)")
+//    @ApiImplicitParam(required = false, name = "linkLogo", value = "链接标识")
+//    @GetMapping("/link/jump")
+//    public void jumpPayPage(String linkLogo, HttpServletResponse response) throws IOException {
+//        payOrderService.jumpPayPage(linkLogo, response);
+//    }
+//
+//    /**
+//     * 重定向页面的支付数据
+//     */
+//    @ApiOperation("重定向页面的支付数据(旧:/PayOrder/linkData)")
+//    @GetMapping("/link/data")
+//    public ResponseJson<Map<String, Object>> linkPayData(String linkLogo) {
+//        if (StringUtils.isBlank(linkLogo)) {
+//            return ResponseJson.error("链接标识不能为空!", null);
+//        }
+//        return payOrderService.linkPayData(linkLogo);
+//    }
+//
+//    /**
+//     * 微信线上支付
+//     * @param payDto {
+//     *               orderId      订单ID
+//     *               payAmount     支付金额,单位分,必须大于2
+//     *               returnUrl     页面回调地址
+//     *               code          微信小程序code
+//     *               state         微信公众号state参数
+//     * }
+//     */
+//    @ApiOperation("微信线上支付(旧:/PayOrder/miniWxPay)")
+//    @PostMapping("/wechat")
+//    public ResponseJson<JSONObject> payByWeChat(PayDto payDto, @RequestHeader HttpHeaders headers){
+//        if (null == payDto.getOrderId()) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 2) {
+//            return ResponseJson.error("支付金额不正确!", null);
+//        }
+//        if (StringUtils.isEmpty(payDto.getCode())) {
+//            return ResponseJson.error("微信code不能为空!", null);
+//        }
+//        return payOrderService.payByWeChat(payDto, headers);
+//    }
+//
+//    /**
+//     * 支付宝线上支付
+//     * @param payDto {
+//     *               orderId      订单ID
+//     *               payAmount     支付金额,单位分,必须大于2
+//     *               returnUrl     页面回调地址
+//     * }
+//     */
+//    @ApiOperation("支付宝线上支付(旧:/PayOrder/pcMallPay[ALIPAY])")
+//    @PostMapping("/alipay")
+//    public ResponseJson<JSONObject> payByAlipay(PayDto payDto, @RequestHeader HttpHeaders headers){
+//        if (null == payDto.getOrderId()) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 2) {
+//            return ResponseJson.error("支付金额不正确!", null);
+//        }
+//        if (StringUtils.isEmpty(payDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        return payOrderService.payByAlipay(payDto, headers);
+//    }
+//
+//    /**
+//     * 银联线上支付
+//     * @param payDto {
+//     *               orderId       订单ID
+//     *               payAmount     支付金额,单位分,必须大于2
+//     *               returnUrl     页面回调地址
+//     *               bankCode      银行编码(银联支付使用)
+//     *               userType      用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
+//     * }
+//     */
+//    @ApiOperation("银联线上支付(旧:/PayOrder/pcMallPay[UNIONPAY])")
+//    @PostMapping("/union")
+//    public ResponseJson<JSONObject> payByUnionPay(PayDto payDto, @RequestHeader HttpHeaders headers){
+//        if (null == payDto.getOrderId()) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 2) {
+//            return ResponseJson.error("支付金额不正确!", null);
+//        }
+//        if (StringUtils.isEmpty(payDto.getReturnUrl())) {
+//            return ResponseJson.error("回调地址不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payDto.getBankCode())) {
+//            return ResponseJson.error("银行编码不能为空!", null);
+//        }
+//        if (StringUtils.isEmpty(payDto.getUserType())) {
+//            return ResponseJson.error("银行用户类型不能为空!", null);
+//        }
+//        return payOrderService.payByUnionPay(payDto, headers);
+//    }
+//
+//    /**
+//     * 银联线上支付
+//     * @param payDto {
+//     *               orderId       订单ID
+//     *               payAmount     支付金额,单位分,必须大于1200(银联转账金额12)
+//     * }
+//     */
+//    @ApiOperation("银联转账")
+//    @PostMapping("/transfer/union")
+//    public ResponseJson<JSONObject> payByUnion(PayDto payDto, @RequestHeader HttpHeaders headers){
+//        if (null == payDto.getOrderId()) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        if (null == payDto.getPayAmount() || payDto.getPayAmount() < 1200) {
+//            return ResponseJson.error("支付金额不能小于手续费!", null);
+//        }
+//        return payOrderService.payByUnion(payDto, headers);
+//    }
+//
+//    /**
+//     * 支付异步通知回调
+//     */
+//    @ApiOperation("支付异步通知回调(旧:/PayOrder/paymentCallback)")
+//    @GetMapping("/callback")
+//    public String paymentCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
+//        if (StringUtils.isBlank(data)) {
+//            return "回调参数失败";
+//        }
+//        return payOrderService.paymentCallback(data);
+//    }
+//
 //    /**
-//     * 手动临时分账
+//     * 判断此次支付是否完成
+//     * @param orderId           订单id
+//     * @param paySuccessCounter 付款次数
 //     */
-//    @PostMapping("/temp/split")
-//    public String temporarySplitting(){
-//        return payOrderService.temporarySplitting();
+//    @ApiOperation("判断此次支付是否完成(旧:/PayOrder/payWhetherSuccess)")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(required = false, name = "orderId", value = "订单id"),
+//            @ApiImplicitParam(required = false, name = "paySuccessCounter", value = "付款次数")
+//    })
+//    @GetMapping("/result/check")
+//    public ResponseJson<String> payWhetherSuccess(Integer orderId, Integer paySuccessCounter) {
+//        if (null == orderId) {
+//            return ResponseJson.error("订单Id不能为空!", null);
+//        }
+//        if (null == paySuccessCounter) {
+//            return ResponseJson.error("付款次数不能为空!", null);
+//        }
+//        return payOrderService.payWhetherSuccess(orderId, paySuccessCounter);
 //    }
 //
 //    /**
-//     * 手动临时分账异步通知回调
+//     * 查询本次支付订单结果
+//     * @param mbOrderId 平台唯一流水号
 //     */
-//    @ApiOperation("手动临时分账异步通知回调")
-//    @GetMapping("/temp/split/callback")
-//    public String tempSplittingCallback(String data) {
+//    @ApiOperation("查询本次支付订单结果(旧:/PayOrder/findOrderStatus)")
+//    @ApiImplicitParam(required = false, name = "mbOrderId", value = "平台唯一流水号")
+//    @GetMapping("/result/json")
+//    public ResponseJson<JSONObject> getPayOrderResult(String mbOrderId) {
+//        if (null == mbOrderId) {
+//            return ResponseJson.error("平台唯一流水号不能为空!", null);
+//        }
+//        return payOrderService.getPayOrderResult(mbOrderId);
+//    }
+//
+//    /**
+//     * 延时分账异步通知回调
+//     */
+//    @ApiOperation("延时分账异步通知回调(旧:/PayOrder/delayedSplittingCallback)")
+//    @GetMapping("/delay/split/callback")
+//    public String delayedSplittingCallback(String data) {
 //        if (StringUtils.isBlank(data)) {
 //            return "回调参数失败";
 //        }
-//        return payOrderService.tempSplittingCallback(data);
+//        return payOrderService.delayedSplittingCallback(data);
+//    }
+//
+//    @ApiOperation("银行通道码获取")
+//    @GetMapping("/bankcode")
+//    public ResponseJson<JSONObject> bankcode() {
+//        return payOrderService.bankCode();
 //    }
-
-}
+//
+////    /**
+////     * 手动临时分账
+////     */
+////    @PostMapping("/temp/split")
+////    public String temporarySplitting(){
+////        return payOrderService.temporarySplitting();
+////    }
+////
+////    /**
+////     * 手动临时分账异步通知回调
+////     */
+////    @ApiOperation("手动临时分账异步通知回调")
+////    @GetMapping("/temp/split/callback")
+////    public String tempSplittingCallback(String data) {
+////        if (StringUtils.isBlank(data)) {
+////            return "回调参数失败";
+////        }
+////        return payOrderService.tempSplittingCallback(data);
+////    }
+//
+//}

+ 28 - 0
src/main/java/com/caimei365/order/model/enums/AccountPayOrderType.java

@@ -0,0 +1,28 @@
+package com.caimei365.order.model.enums;
+
+public enum AccountPayOrderType {
+
+    ALLOWANCE("活动补贴", 1),
+
+    TRANSFER("资金划拨", 2),
+
+
+    ;
+
+    private final String desc;
+    private final Integer index;
+
+
+    AccountPayOrderType(String desc, Integer index) {
+        this.desc = desc;
+        this.index = index;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+}

+ 33 - 0
src/main/java/com/caimei365/order/model/enums/AmtFreezeCodeType.java

@@ -0,0 +1,33 @@
+package com.caimei365.order.model.enums;
+
+/**
+ * @author 5566
+ * @version 1.0
+ * @date 2020-02-28 11:21
+ * @desc
+ */
+public enum AmtFreezeCodeType {
+    /**
+     *
+     */
+    USER_BARCODE("用户付款条码", 0),
+    MCH_QRCODE("商户二维码", 1),
+    ;
+
+
+    private final String desc;
+    private final Integer index;
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+
+    AmtFreezeCodeType(String desc, Integer index) {
+        this.desc = desc;
+        this.index = index;
+    }
+}

+ 43 - 0
src/main/java/com/caimei365/order/model/enums/AppPayStatus.java

@@ -0,0 +1,43 @@
+package com.caimei365.order.model.enums;
+
+/**
+ * @author 5566
+ * @version 1.0
+ * @date 2020-02-28 13:54
+ * @desc
+ */
+public enum AppPayStatus {
+    /**
+     * 初始化
+     */
+    INIT("已接收", 1),
+
+    DOING("处理中", 2),
+
+    SUCCESS("成功", 3),
+
+    FAIL("失败", 4),
+
+    CLOSE("关闭", 5),
+
+    CANCELLING("撤销中", 6),
+
+    CANCEL("已撤销", 7),
+    ;
+
+    AppPayStatus(String desc, Integer index) {
+        this.desc = desc;
+        this.index = index;
+    }
+
+    private String desc;
+    private Integer index;
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+}

+ 36 - 0
src/main/java/com/caimei365/order/model/enums/AppPayType.java

@@ -0,0 +1,36 @@
+package com.caimei365.order.model.enums;
+
+/**
+ * @author 5566
+ * @version 1.0
+ * @date 2020-02-12 17:32
+ * @desc
+ */
+public enum AppPayType {
+    /**
+     * 支付宝
+     */
+    ALIPAY("支付宝", 1),
+    WXPAY("微信支付", 2),
+    UNIONPAY("银联", 3),
+    QQPAY("QQ钱包", 4),
+    JDPAY("京东", 5),
+    EACHWALLET("互通钱包", 6);
+
+
+    AppPayType(String s, Integer i) {
+        this.desc = s;
+        this.index = i;
+    }
+
+    private String desc;
+    private Integer index;
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+}

+ 78 - 0
src/main/java/com/caimei365/order/model/enums/BizType.java

@@ -0,0 +1,78 @@
+package com.caimei365.order.model.enums;
+
+public enum BizType {
+
+    // 支付宝H5 return "14";
+    // 微信公众号支付 return "13";
+    // 微信小程序支付 return "15";
+    // 企业网银  return "12";
+    // 个人网银 "17";
+
+//    YL("YL", "AppPayPublic", "PUBLIC", "17"), //银联
+    B2B("B2B","","","12"),//企业网银
+    B2C("B2C","","","17"),//个人
+    XCX("XCX", "AppPayApplet", "APPLET", "15"),//小程序
+    GZH("GZH", "AppPayPublic", "PUBLIC", "13"),//公众号
+    ZFBEWM("ZFBEWM", "AppPay", "SCAN", "14"),//支付宝二维码
+    //pc二维码跟公众号一样13
+    WXEWM("WXEWM", "AppPay", "SCAN", "13"),//微信二维码
+    ;
+
+    BizType(String type, String p1, String p4, String num) {
+        this.type = type;
+        this.p1 = p1;
+        this.p4 = p4;
+        this.num = num;
+    }
+
+    public static String getP1ByType(String type) {
+        BizType[] BizType = values();
+        for (BizType bizType : BizType) {
+            if (type.equals(bizType.type)) {
+                return bizType.p1;
+            }
+        }
+        return null;
+    }
+
+    public static String getP4ByType(String type) {
+        BizType[] BizType = values();
+        for (BizType bizType : BizType) {
+            if (type.equals(bizType.type)) {
+                return bizType.p4;
+            }
+        }
+        return null;
+    }
+
+    public static String getNumByType(String type) {
+        BizType[] BizType = values();
+        for (BizType bizType : BizType) {
+            if (type.equals(bizType.type)) {
+                return bizType.num;
+            }
+        }
+        return null;
+    }
+
+    private String type;
+    private String p1;
+    private String p4;
+    private String num;
+
+    public String getP1() {
+        return p1;
+    }
+
+    public String getP4() {
+        return p4;
+    }
+
+    public String getNum() {
+        return num;
+    }
+
+    public String getType() {
+        return type;
+    }
+}

+ 32 - 0
src/main/java/com/caimei365/order/model/enums/Currency.java

@@ -0,0 +1,32 @@
+package com.caimei365.order.model.enums;
+
+/**
+ * @author 5566
+ * @version 1.0
+ * @date 2020-02-28 11:24
+ * @desc
+ */
+public enum Currency {
+    /**
+     *
+     */
+    CNY("人民币", 0),
+    USD("美元", 1),
+    ;
+
+    private final String desc;
+    private final Integer index;
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+
+    Currency(String desc, Integer index) {
+        this.desc = desc;
+        this.index = index;
+    }
+}

+ 55 - 0
src/main/java/com/caimei365/order/model/enums/IndustryTypeEnum.java

@@ -0,0 +1,55 @@
+package com.caimei365.order.model.enums;
+
+/**
+ * @author 5566
+ * @version 1.0
+ * @date 2019-12-16 14:47
+ * @desc
+ */
+public enum IndustryTypeEnum {
+    /**
+     * YS:饮食
+     */
+    YS("餐饮/食品", "快餐,火锅,烧烤,小吃/熟食,其他中餐,日韩/东南亚菜,西餐,咖啡厅,甜品饮品,烘焙糕点", 0),
+
+    LS("线下零售", "超市,便利店,自动贩卖机,百货,食品生鲜,数码电器/电脑办公,家具建材/家居厨具,服饰箱包,运动户外,美妆个护,母婴用品/儿童玩具,计生用品,图书音像/文具乐器,黄金珠宝,钟表眼镜,宠物/宠物用品,礼品鲜花/农资绿植,批发业", 1),
+
+    FW("居民生活/商业服务", "物流/快递,咨询/法律咨询/金融咨询等,婚庆/摄影,装饰/设计,家政/维修服务,广告/会展/活动策划,人才中介机构/招聘/猎头,职业社交/婚介/交友,房地产,苗木种植/园林绿化,丧仪殡葬服务,搬家/回收,宠物医院,共享服务", 2),
+
+    YL("休闲娱乐/美发美容/健身场馆", "娱乐票务,运动健身场馆,俱乐部/休闲会所,游艺厅/KTV/网吧,院线影城,演出赛事,美发/美容/美甲店,酒吧", 3),
+
+    LY("旅行社/旅馆/酒店/度假区", "租车,加油,铁路客运,高速收费,城市公共交通,船舶/海运服务,旅行社,机票/机票代理,旅馆/酒店/度假区,景区", 4),
+
+    JT("汽车用品/汽车美容/维修保养", "汽车用品,汽车美容/维修保养,停车缴费", 5),
+
+    JY("教育/培训", "教育/培训/考试缴费/学费,民办大学及学院,民办中小幼", 6),
+
+    YY("私立/民营医院/诊所/医美", "保健器械/医疗器械/非处方药品,保健信息咨询平台,私立/民营医院/诊所,挂号平台", 7),
+
+    QT("其他行业", "其他行业", 8),
+    ;
+
+    private String desc;
+
+    private String merchantKeyWord;
+
+    private Integer index;
+
+    IndustryTypeEnum(String desc, String merchantKeyWord, Integer index) {
+        this.desc = desc;
+        this.merchantKeyWord = merchantKeyWord;
+        this.index = index;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public String getMerchantKeyWord() {
+        return merchantKeyWord;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+}

+ 32 - 0
src/main/java/com/caimei365/order/model/enums/OperationType.java

@@ -0,0 +1,32 @@
+package com.caimei365.order.model.enums;
+
+/**
+ * @author 5566
+ * @version 1.0
+ * @date 2020-02-28 11:22
+ * @desc
+ */
+public enum OperationType {
+    /**
+     *
+     */
+    FREEZE("冻结", 0),
+    UNFREEZE("解冻", 1),
+    ;
+
+    private final String desc;
+    private final Integer index;
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public Integer getIndex() {
+        return index;
+    }
+
+    OperationType(String desc, Integer index) {
+        this.desc = desc;
+        this.index = index;
+    }
+}

+ 196 - 0
src/main/java/com/caimei365/order/model/vo/AccountPayOrder.java

@@ -0,0 +1,196 @@
+package com.caimei365.order.model.vo;
+
+
+import com.caimei365.order.model.enums.AccountPayOrderType;
+import com.caimei365.order.model.enums.ProductType;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Set;
+
+public class AccountPayOrder implements Serializable {
+
+    private String P1_bizType;
+    private String P2_signType;
+    private String P3_timestamp;
+    private String P4_orderId;
+    private String P5_customerNumber;
+    private String P6_ext;
+
+    public String getP1_bizType() {
+        return P1_bizType;
+    }
+
+    public void setP1_bizType(String p1_bizType) {
+        P1_bizType = p1_bizType;
+    }
+
+    public String getP2_signType() {
+        return P2_signType;
+    }
+
+    public void setP2_signType(String p2_signType) {
+        P2_signType = p2_signType;
+    }
+
+    public String getP3_timestamp() {
+        return P3_timestamp;
+    }
+
+    public void setP3_timestamp(String p3_timestamp) {
+        P3_timestamp = p3_timestamp;
+    }
+
+    public String getP4_orderId() {
+        return P4_orderId;
+    }
+
+    public void setP4_orderId(String p4_orderId) {
+        P4_orderId = p4_orderId;
+    }
+
+    public String getP5_customerNumber() {
+        return P5_customerNumber;
+    }
+
+    public void setP5_customerNumber(String p5_customerNumber) {
+        P5_customerNumber = p5_customerNumber;
+    }
+
+
+    public String getP6_ext() {
+        return P6_ext;
+    }
+
+    public void setP6_ext(String p6_ext) {
+        P6_ext = p6_ext;
+    }
+
+    public static class AccountPayOrderExt {
+        // 订单类型
+        private AccountPayOrderType orderType;
+        // 收款商编
+        private String inMerchantNo;
+        // 金额
+        private BigDecimal amount;
+        // 回调地址
+        private String serverCallbackUrl;
+        // 商品名称
+        private String goodsName;
+        // 商品描述(可选)
+        private String orderDesc;
+        /** 以下两项在补贴场景下必填 **/
+        private ProductType productType;
+        // 原收单订单号
+        private String associatedOrderNo;
+        // 分账规则串 - 仅支持资金划拨类订单
+        private List<SplitBillRule> splitBillRules;
+        // 是否为担保交易
+        private boolean inEscrow = false;
+
+
+
+        public AccountPayOrderType getOrderType() {
+            return orderType;
+        }
+
+        public void setOrderType(AccountPayOrderType orderType) {
+            this.orderType = orderType;
+        }
+
+        public BigDecimal getAmount() {
+            return amount;
+        }
+
+        public void setAmount(BigDecimal amount) {
+            this.amount = amount;
+        }
+
+        public String getServerCallbackUrl() {
+            return serverCallbackUrl;
+        }
+
+        public void setServerCallbackUrl(String serverCallbackUrl) {
+            this.serverCallbackUrl = StringUtils.isEmpty(serverCallbackUrl) ? null : serverCallbackUrl;
+        }
+
+        public String getGoodsName() {
+            return goodsName;
+        }
+
+        public void setGoodsName(String goodsName) {
+            this.goodsName = goodsName;
+        }
+
+        public String getOrderDesc() {
+            return orderDesc;
+        }
+
+        public void setOrderDesc(String orderDesc) {
+            this.orderDesc = orderDesc;
+        }
+
+        public ProductType getProductType() {
+            return productType;
+        }
+
+        public void setProductType(ProductType productType) {
+            this.productType = productType;
+        }
+
+        public String getAssociatedOrderNo() {
+            return associatedOrderNo;
+        }
+
+        public void setAssociatedOrderNo(String associatedOrderNo) {
+            this.associatedOrderNo = associatedOrderNo;
+        }
+
+        public String getInMerchantNo() {
+            return inMerchantNo;
+        }
+
+        public void setInMerchantNo(String inMerchantNo) {
+            this.inMerchantNo = inMerchantNo;
+        }
+
+        public List<SplitBillRule> getSplitBillRules() {
+            return splitBillRules;
+        }
+
+        public void setSplitBillRules(List<SplitBillRule> splitBillRules) {
+            this.splitBillRules = splitBillRules;
+        }
+
+        public boolean isInEscrow() {
+            return inEscrow;
+        }
+
+        public void setInEscrow(boolean inEscrow) {
+            this.inEscrow = inEscrow;
+        }
+        public static class SplitBillRule {
+            private String splitBillMerchantNo; // 收账商编
+            private BigDecimal splitBillAmount; // 分账金额
+            public String getSplitBillMerchantNo() {
+                return splitBillMerchantNo;
+            }
+            public void setSplitBillMerchantNo(String splitBillMerchantNo) {
+                this.splitBillMerchantNo = splitBillMerchantNo;
+            }
+            public BigDecimal getSplitBillAmount() {
+                return splitBillAmount;
+            }
+
+            public void setSplitBillAmount(BigDecimal splitBillAmount) {
+                this.splitBillAmount = splitBillAmount;
+            }
+        }
+
+
+
+    }
+
+}

+ 26 - 0
src/main/java/com/caimei365/order/model/vo/AccountResVo.java

@@ -0,0 +1,26 @@
+package com.caimei365.order.model.vo;
+
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Setter
+@Getter
+@ToString
+public class AccountResVo {
+  private String  rt1_bizType;
+  private String  rt2_signType;
+  private String  rt3_timestamp;
+  private String  rt4_success;
+  private String  rt5_retCode;
+  private String  rt6_retMsg;
+  private String  rt7_orderId;
+  private String  rt8_customerNumber;
+  private String  rt9_serialNumber;
+  private String  rt10_orderStatus;
+  private String  rt11_amount;
+  private String  rt12_reason;
+  private String  rt13_ext;
+  private String  sign;
+}

+ 49 - 0
src/main/java/com/caimei365/order/model/vo/AppCreateOrderResponseVo.java

@@ -0,0 +1,49 @@
+package com.caimei365.order.model.vo;
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+public class AppCreateOrderResponseVo {
+    /**
+     * 扫码主被扫响应参数
+     */
+    private String rt1_bizType;
+    private String rt2_retCode;
+    private String rt3_retMsg;            //排除签名
+    private String rt4_customerNumber;
+    private String rt5_orderId;
+    private String rt6_serialNumber;
+    private String rt7_payType;
+    private String rt8_qrcode;
+    private String rt9_wapurl;
+    private String rt10_orderAmount;
+    private String rt11_currency;
+    private String rt12_openId;             //排除签名
+    private String rt13_orderStatus;        //排除签名
+    private String rt14_fundBillList;       //排除签名
+    private String rt15_channelRetCode;     //排除签名
+    private String rt16_outTransactionOrderId;  //排除签名
+    private String rt17_bankType;               //排除签名
+    private String rt18_subOpenId;              //排除签名
+    private String onlineCardType;              //排除签名
+    /**
+     * 排除签名
+     */
+    private String subMerchantNo;
+    private String sign;
+
+    /**
+     * 需要加签的属性参数,要求加签的参数空值也签名
+     * 看接口文档
+     */
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("rt1_bizType", "rt2_retCode",
+            "rt4_customerNumber", "rt5_orderId", "rt6_serialNumber", "rt7_payType",
+            "rt8_qrcode", "rt9_wapurl", "rt10_orderAmount", "rt11_currency");
+}

+ 64 - 0
src/main/java/com/caimei365/order/model/vo/AppCreateOrderVo.java

@@ -0,0 +1,64 @@
+package com.caimei365.order.model.vo;
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+public class AppCreateOrderVo {
+
+
+    private String P1_bizType;
+    private String P2_orderId;
+    private String P3_customerNumber;
+    private String P4_payType;
+    private String P5_orderAmount;
+    private String P6_currency;
+    private String P7_authcode;
+    private String P8_appType;
+    private String P9_notifyUrl;
+    private String P10_successToUrl;
+    private String P11_orderIp;
+    private String P12_goodsName;
+    private String P13_goodsDetail;
+    private String P14_desc;
+    /**特殊参数,排除签名*/
+    private String P15_subMerchantId;
+    private String P16_appId;
+    private String P17_limitCreditPay;
+    private String P18_goodsTag;
+    private String P19_guid;
+    private String P20_marketingRule;
+    private String P21_identity;
+    private String hbfqNum;
+    private String deviceInfo;
+    private String timeExpire;
+    /**支付宝行业数据回流信息,排除签名*/
+    private String industryRefluxInfo;
+    /**排除签名*/
+    private String termInfo;
+    /**预授权场景参数,排除签名*/
+    private String openId;
+    /**预授权场景参数,排除签名*/
+    private String authConfirmMode;
+    /**商户自定义门店编码,排除签名*/
+    private String storeId;
+    private String sign;
+    /**分账类型FIXED_AMOUNT:固定金额*/
+    private String splitBillType;
+    /**json数组格式字符串*/
+    private String ruleJson;
+    /**
+     * 需要加签的属性参数,要求加签的参数空值也签名
+     * 看接口文档
+     */
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("P1_bizType",
+            "P2_orderId", "P3_customerNumber", "P4_payType", "P5_orderAmount",
+            "P6_currency", "P7_authcode", "P8_appType", "P9_notifyUrl", "P10_successToUrl",
+            "P11_orderIp", "P12_goodsName", "P13_goodsDetail", "P14_desc");
+}

+ 69 - 0
src/main/java/com/caimei365/order/model/vo/AppPayPublicCreateOrderVo.java

@@ -0,0 +1,69 @@
+package com.caimei365.order.model.vo;
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+public class AppPayPublicCreateOrderVo {
+
+
+    private String P1_bizType;
+    private String P2_orderId;
+    private String P3_customerNumber;
+    private String P4_payType;
+    private String P5_appid;
+    private String P6_deviceInfo;
+    private String P7_isRaw;
+    private String P8_openid;
+    private String P9_orderAmount;
+    private String P10_currency;
+    private String P11_appType;
+    private String P12_notifyUrl;
+    private String P13_successToUrl;
+    private String P14_orderIp;
+    private String P15_goodsName;
+    private String P16_goodsDetail;
+    private String P17_limitCreditPay;
+    private String P18_desc;
+    private String P19_subscribeAppId;
+    /**特殊参数,排除签名*/
+    private String P20_subMerchantId;
+    private String P21_goodsTag;
+    private String P22_guid;
+    private String timeExpire;
+    /**支付宝行业数据回流信息,排除签名*/
+    private String industryRefluxInfo;
+    /**支付宝点餐码 排除签名*/
+    private String foodOrderType;
+    /**排除签名*/
+    private String termInfo;
+    /**分账类型FIXED_AMOUNT:固定金额*/
+    private String splitBillType;
+    /**json数组格式字符串*/
+    private String ruleJson;
+    /**
+     * 银联js用户id类型
+     * userAuthCode:表示为临时授权码;openId:表示为用户id
+     * 不送默认是userAuthCode
+     * 排除签名
+     */
+    private String openIdType;
+    /**商户自定义门店编码,排除签名*/
+    private String storeId;
+    private String sign;
+
+    /**
+     * 需要加签的属性参数,要求加签的参数空值也签名
+     * 看接口文档
+     */
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("P1_bizType", "P2_orderId", "P3_customerNumber",
+            "P4_payType", "P5_appid", "P6_deviceInfo", "P7_isRaw", "P8_openid", "P9_orderAmount", "P10_currency",
+            "P11_appType", "P12_notifyUrl", "P13_successToUrl", "P14_orderIp", "P15_goodsName", "P16_goodsDetail", "P17_limitCreditPay",
+            "P18_desc");
+}

+ 32 - 0
src/main/java/com/caimei365/order/model/vo/HeliOnlineResVo.java

@@ -0,0 +1,32 @@
+package com.caimei365.order.model.vo;
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+public class HeliOnlineResVo {
+    private String rt1_bizType;
+    private String rt2_retCode;
+    private String rt3_retMsg;
+    private String rt4_customerNumber;
+    private String rt5_orderId;
+    private String rt6_orderAmount;
+    private String rt7_bankId;
+    private String rt8_business;
+    private String rt9_timestamp;
+    private String rt10_completeDate;
+    private String rt11_orderStatus;
+    private String rt12_serialNumber;
+    private String rt13_desc;
+    private String sign;
+
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("rt1_bizType", "rt2_retCode", "rt3_retMsg",
+            "rt4_customerNumber", "rt5_orderId", "rt6_orderAmount", "rt7_bankId", "rt8_business", "rt9_timestamp", "rt10_completeDate",
+            "rt11_orderStatus", "rt12_serialNumber", "rt13_desc");
+}

+ 42 - 0
src/main/java/com/caimei365/order/model/vo/HeliOnlineVo.java

@@ -0,0 +1,42 @@
+package com.caimei365.order.model.vo;
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+public class HeliOnlineVo {
+    private String P1_bizType;
+    private String P2_orderId;
+    private String P3_customerNumber;
+    private String P4_orderAmount;
+    //银行编码
+    private String P5_bankId;
+    //业务类型 B2C:个人支付 B2B:企业支付
+    private String P6_business;
+    private String P7_timestamp;
+    private String P8_goodsName;
+    //有效期 Number(10)	1
+    private String P9_period;
+    //有效期单位 Day:天 Hour:时 Minute:分
+    private String P10_periodUnit;
+    //成功通知地址
+    private String P11_callbackUrl;
+    //异步回调地址
+    private String P12_serverCallback;
+    private String P13_orderIp;
+    private String P14_onlineCardType;
+    private String P15_desc;
+    //String(20)	MD5 不参与签名
+    private String P17_signatureType;
+    private String sign;
+
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("P1_bizType", "P2_orderId", "P3_customerNumber",
+            "P4_orderAmount", "P5_bankId", "P6_business", "P7_timestamp", "P8_goodsName", "P9_period", "P10_periodUnit",
+            "P11_callbackUrl", "P12_serverCallback", "P13_orderIp", "P14_onlineCardType", "P15_desc");
+}

+ 16 - 0
src/main/java/com/caimei365/order/model/vo/PaySplitVo.java

@@ -0,0 +1,16 @@
+package com.caimei365.order.model.vo;
+
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Setter
+@Getter
+@ToString
+@Data
+public class PaySplitVo {
+    private String splitBillMerchantEmail;
+    private String splitBillAmount;
+}

+ 50 - 0
src/main/java/com/caimei365/order/model/vo/QueryOrderResponseVo.java

@@ -0,0 +1,50 @@
+package com.caimei365.order.model.vo;
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+public class QueryOrderResponseVo {
+
+    private String rt1_bizType;
+    private String rt2_retCode;
+    private String rt3_retMsg;
+    private String rt4_customerNumber;
+    private String rt5_orderId;
+    private String rt6_serialNumber;
+    private String rt7_orderStatus;
+    private String rt8_orderAmount;
+    private String rt9_currency;
+    private String rt10_desc;
+    private String rt11_openId;
+    private String rt12_channelOrderNum;
+    private String rt13_orderCompleteDate;
+    private String rt14_cashFee;
+    private String rt15_couponFee;
+    private String rt16_onlineCardType;
+    private String rt17_fundBillList;
+    private String rt18_outTransactionOrderId;
+    private String rt19_bankType;
+    private String rt20_subOpenId;
+    /**
+     * 排除签名
+     */
+    private String subMerchantNo;
+    /**渠道上游返回码 不签名*/
+    private String channelRetCode;
+    /**渠道上游返回信息 不签名*/
+    private String channelRetMsg;
+    private String sign;
+    /**
+     * 需要加签的属性参数
+     * 看接口文档
+     */
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("rt1_bizType", "rt2_retCode", "rt4_customerNumber",
+            "rt5_orderId", "rt6_serialNumber", "rt7_orderStatus", "rt8_orderAmount", "rt9_currency");
+}

+ 27 - 0
src/main/java/com/caimei365/order/model/vo/QueryOrderVo.java

@@ -0,0 +1,27 @@
+package com.caimei365.order.model.vo;
+
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+public class QueryOrderVo {
+
+    private String P1_bizType;
+    private String P2_orderId;
+    private String P3_customerNumber;
+    private String P4_serialNumber;
+    private String sign;
+
+    /**
+     * 需要加签的属性参数
+     * 看接口文档
+     */
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("P1_bizType", "P2_orderId", "P3_customerNumber");
+}

+ 19 - 0
src/main/java/com/caimei365/order/model/vo/SplitMoneyVo.java

@@ -0,0 +1,19 @@
+package com.caimei365.order.model.vo;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+
+@Setter
+@Getter
+@Data
+public class SplitMoneyVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    //商户号
+    private String name;
+    private BigDecimal splitMoney;
+}

+ 35 - 0
src/main/java/com/caimei365/order/model/vo/UnionResVo.java

@@ -0,0 +1,35 @@
+package com.caimei365.order.model.vo;
+
+import com.google.common.collect.ImmutableSet;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Set;
+
+@Setter
+@Getter
+@ToString
+@Data
+public class UnionResVo {
+    //网银支付回调
+    private String rt1_bizType;
+    private String rt2_retCode;
+    private String rt3_retMsg;
+    private String rt4_customerNumber;
+    private String rt5_orderId;
+    private String rt6_orderAmount;
+    private String rt7_bankId;
+    private String rt8_business;
+    private String rt9_timestamp;
+    private String rt10_completeDate;
+    private String rt11_orderStatus;
+    private String rt12_serialNumber;
+    private String rt13_desc;
+    private String sign;
+    private String onlineCardType;
+
+    public static final Set<String> NEED_SIGN_PARAMS = ImmutableSet.of("rt1_bizType", "rt2_retCode","rt3_retMsg", "rt4_customerNumber",
+            "rt5_orderId", "rt6_orderAmount", "rt7_bankId", "rt8_business", "rt9_timestamp","rt10_completeDate","rt11_orderStatus","rt12_serialNumber");
+}