From ea35f8d545869b8fff2605b9afd7e2d02185418e Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Fri, 22 Dec 2023 16:55:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cweb/config/AuthConfig.java | 4 + .../controller/BsTradeOrderController.java | 129 +++++++++ .../com/cweb/controller/PayController.java | 48 +++- .../com/cweb/controller/TestController.java | 5 +- .../java/com/cweb/notify/LLGController.java | 245 +++++++++++++++++ .../channel/llg/service/LLGOrderService.java | 69 +++-- .../java/com/hfkj/dao/BsTradeOrderMapper.java | 27 +- .../com/hfkj/dao/BsTradeOrderSqlProvider.java | 56 ++++ .../java/com/hfkj/entity/BsTradeOrder.java | 64 +++++ .../com/hfkj/entity/BsTradeOrderExample.java | 260 ++++++++++++++++++ .../service/impl/BsTradeOrderServiceImpl.java | 18 ++ .../com/hfkj/sysenum/PlatformTypeEnum.java | 1 + .../hfkj/sysenum/TradeOrderPayModeEnum.java | 3 +- 13 files changed, 904 insertions(+), 25 deletions(-) create mode 100644 cweb/src/main/java/com/cweb/notify/LLGController.java diff --git a/cweb/src/main/java/com/cweb/config/AuthConfig.java b/cweb/src/main/java/com/cweb/config/AuthConfig.java index df7020b..5be93d2 100644 --- a/cweb/src/main/java/com/cweb/config/AuthConfig.java +++ b/cweb/src/main/java/com/cweb/config/AuthConfig.java @@ -92,6 +92,8 @@ public class AuthConfig implements WebMvcConfigurer { .excludePathPatterns("/fileUpload/*") .excludePathPatterns("/tradeOrder/createMicroOrder") .excludePathPatterns("/tradeOrder/createJSAPIOrder") + .excludePathPatterns("/tradeOrder/createPeriodOrder") + .excludePathPatterns("/tradeOrder/getPeriodBankList") .excludePathPatterns("/tradeOrder/createOrder") .excludePathPatterns("/tradeOrder/cancelOrder") .excludePathPatterns("/tradeOrder/getOrderByOutTradeOrder") @@ -100,6 +102,7 @@ public class AuthConfig implements WebMvcConfigurer { .excludePathPatterns("/getQrCodeDetail/getQrCodeDetail") .excludePathPatterns("/pay/microPay") .excludePathPatterns("/pay/jsapiPay") + .excludePathPatterns("/pay/periodPay") .excludePathPatterns("/pay/rotationQueryTrade") .excludePathPatterns("/laKaLaNotify/*") .excludePathPatterns("/tianqueNotify/*") @@ -128,6 +131,7 @@ public class AuthConfig implements WebMvcConfigurer { .excludePathPatterns("/mealTableOrderPay/*") .excludePathPatterns("/ocr/*") .excludePathPatterns("/openGroup/*") + .excludePathPatterns("/llgNotify/*") ; } diff --git a/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java b/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java index fd2610e..fdcf985 100644 --- a/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java +++ b/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java @@ -5,6 +5,7 @@ import com.alipay.api.domain.PayModeModel; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hfkj.channel.lakala.LaKaLaTradeService; +import com.hfkj.channel.llg.service.LLGOrderService; import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; @@ -31,6 +32,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.HashMap; import java.util.Map; @@ -74,6 +76,8 @@ public class BsTradeOrderController { private LaKaLaTradeService laKaLaTradeService; @Resource private TianQueTradeService tianQueTradeService; + @Resource + private LLGOrderService llgOrderService; @RequestMapping(value="/calculation",method = RequestMethod.GET) @ResponseBody @@ -304,6 +308,110 @@ public class BsTradeOrderController { } } + @RequestMapping(value="/createPeriodOrder",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "创建交易分期订单") + public ResponseData createPeriodOrder(@RequestBody JSONObject body, HttpServletRequest request) { + try { + if (body == null + || StringUtils.isBlank(body.getString("qrCodeSN")) + || body.getBigDecimal("totalAmount") == null + || StringUtils.isBlank(body.getString("periodBankCode")) + || StringUtils.isBlank(body.getString("periodBankName")) + || body.getInteger("periodNum") == null + ) { + log.error("configStore error!", "参数错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + if (body.getBigDecimal("totalAmount").compareTo(new BigDecimal("1")) == -1) { + log.error("configStore error!", "参数错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "分期金额不能小于1"); + } + // 查询二维码 + BsPayQrCode payQrCode = payQrCodeService.getDetailBySN(body.getString("qrCodeSN")); + if (payQrCode == null) { + log.error("configStore error!", "未知的二维码序列号"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的二维码序列号"); + } + if (!payQrCode.getStatus().equals(PayQrCodeStatusEnum.status1.getNumber())) { + log.error("configStore error!", "二维码状态异常"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "创建交易失败!二维码状态异常"); + } + if (payQrCode.getStoreId() == null) { + log.error("configStore error!", "二维码未绑定门店"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "创建交易失败!二维码未绑定门店"); + } + // 查询门店 + BsStore store = storeService.getStoreById(payQrCode.getStoreId()); + if (store == null) { + log.error("configStore error!", ""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的门店"); + } + if (!store.getStatus().equals(StoreStatusEnum.status2.getNumber())) { + log.error("configStore error!", ""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "创建交易失败!门店状态异常"); + } + // 商户 + BsMer mer = merService.getMer(store.getMerId()); + if (mer == null) { + log.error("configStore error!", ""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的商户"); + } + if (!mer.getMerStatus().equals(MerStatusEnum.status1.getNumber())) { + log.error("configStore error!", ""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "创建交易失败!商户状态异常"); + } + + // 优惠活动 + BsStoreDiscountActivity storeDiscountActivity = null; + if (body.getLong("storeDiscountId") != null) { + storeDiscountActivity = storeDiscountActivityService.getDetailById(body.getLong("storeDiscountId")); + if (storeDiscountActivity != null) { + if (!storeDiscountActivity.getPartakeWay().equals(StoreDiscountActivityPartakeWayEnum.type1.getNumber()) + && StringUtils.isBlank(body.getString("userPhone"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, storeDiscountActivity.getName() + ",需要登录才能参加"); + } + } + } + + // 用户优惠券 + UserDiscount userDiscount = null; + if (body.getLong("userDiscountId") != null) { + String token = request.getHeader("Authorization"); + if (token == null) { + log.error("configStore error!", ""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "用户未登录!无法使用优惠券"); + } + userDiscount = UserDiscountService.getUserDiscountDetail(body.getLong("userDiscountId"), token); + } + + Map param = new HashMap<>(); + param.put("qrCodeSN", body.getString("qrCodeSN")); + param.put("qrCodeId", payQrCode.getId()); + param.put("payMode", TradeOrderPayModeEnum.CREDIT_CARDS_PERIOD.getCode()); + param.put("periodStatus", true); + param.put("periodNum", body.getInteger("periodNum")); + param.put("periodBankCode", body.getString("periodBankCode")); + param.put("periodBankName", body.getString("periodBankName")); + param.put("transType", "PERIOD"); + + // 创建交易订单 + return ResponseMsgUtil.success(tradeOrderService.createOrder( + TradeOrderCreateTypeEnum.type1, + store.getId(), + body.getBigDecimal("totalAmount"), + storeDiscountActivity, + body.getString("userPhone"), + userDiscount, + param, + request)); + + } catch (Exception e) { + log.error(e.getMessage(), e); + return ResponseMsgUtil.exception(e); + } + } + @RequestMapping(value="/cancelOrder",method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "取消交易订单") @@ -493,4 +601,25 @@ public class BsTradeOrderController { } } + + @RequestMapping(value="/getPeriodBankList",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "获取分期银行列表") + public ResponseData getPeriodBankList(@RequestParam(value = "merId" , required = true) Long merId, + @RequestParam(value = "periodNum" , required = true) Integer periodNum) { + try { + + BsMerPlatformNo merPlatform = platformNoService.getPlatformNo(merId, PlatformTypeEnum.type6); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户未开通分期功能"); + } + + return ResponseMsgUtil.success(llgOrderService.getBanks(merPlatform.getPlatformNo(), new DecimalFormat("00").format(periodNum)).getJSONObject("data").getJSONArray("banks")); + + } catch (Exception e) { + log.error(e.getMessage(), e); + return ResponseMsgUtil.exception(e); + } + } + } diff --git a/cweb/src/main/java/com/cweb/controller/PayController.java b/cweb/src/main/java/com/cweb/controller/PayController.java index 779d283..f7b78c8 100644 --- a/cweb/src/main/java/com/cweb/controller/PayController.java +++ b/cweb/src/main/java/com/cweb/controller/PayController.java @@ -2,6 +2,7 @@ package com.cweb.controller; import com.alibaba.fastjson.JSONObject; import com.hfkj.channel.ccb.CCBTradeService; +import com.hfkj.channel.llg.service.LLGOrderService; import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.channel.weixin.WeiXinPayService; import com.hfkj.common.exception.ErrorCode; @@ -46,7 +47,7 @@ public class PayController { @Resource private WeiXinPayService weiXinPayService; @Resource - private CCBTradeService ccbTradeService; + private LLGOrderService llgOrderService; @Resource private BsMerPlatformNoService merPlatformNoService; @@ -147,5 +148,50 @@ public class PayController { } } + @RequestMapping(value="/periodPay",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "分期支付") + public ResponseData periodPay(@RequestBody JSONObject body) { + try { + if (body == null || StringUtils.isBlank(body.getString("outTradeNo"))) { + log.error("configStore error!","参数错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + // 查询交易 + BsTradeOrder trade = tradeOrderService.getOrderByOutTradeNo(body.getString("outTradeNo")); + if (trade == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + if (!trade.getStatus().equals(TradeOrderStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单不处于待支付状态"); + } + // 查询交易渠道 + BsMerPlatformNo merPlatform = merPlatformNoService.getPlatformNo(trade.getMerId(), PlatformTypeEnum.type6); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "分期功能未开通"); + } + trade.setPlatformMerNo(merPlatform.getPlatformNo()); + + if (merPlatform.getPlatformType().equals(PlatformTypeEnum.type6.getNumber())) { + try { + Map order = llgOrderService.createOrder(trade); + System.out.println("返回参数:" + JSONObject.toJSONString(order)); + if (StringUtils.isNotBlank(MapUtils.getString(order, "redirectUrl"))) { + return ResponseMsgUtil.success(order); + } + } catch (Exception e) { + log.error("分期支付失败", e.getMessage()); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getMessage()); + } + } + + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "支付失败"); + + } catch (Exception e) { + log.error(e.getMessage(), e); + return ResponseMsgUtil.exception(e); + } + } + } diff --git a/cweb/src/main/java/com/cweb/controller/TestController.java b/cweb/src/main/java/com/cweb/controller/TestController.java index 9c31c73..9510a6c 100644 --- a/cweb/src/main/java/com/cweb/controller/TestController.java +++ b/cweb/src/main/java/com/cweb/controller/TestController.java @@ -832,14 +832,15 @@ public class TestController { } } - + @Resource + private LLGOrderService llgOrderService; @RequestMapping(value="/LLG",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "LLG") public ResponseData LLG(@RequestParam(name = "code", required = false) String code) { try { - return ResponseMsgUtil.success(LLGOrderService.createOrder()); + return ResponseMsgUtil.success(llgOrderService.getBanks("109", "06")); } catch (Exception e) { log.error(e.getMessage(), e); diff --git a/cweb/src/main/java/com/cweb/notify/LLGController.java b/cweb/src/main/java/com/cweb/notify/LLGController.java new file mode 100644 index 0000000..97d7e00 --- /dev/null +++ b/cweb/src/main/java/com/cweb/notify/LLGController.java @@ -0,0 +1,245 @@ +package com.cweb.notify; + +import com.alibaba.fastjson.JSONObject; +import com.hfkj.channel.lakala.LaKaLaLedgerService; +import com.hfkj.channel.lakala.LaKaLaWalletService; +import com.hfkj.channel.llg.config.LLGConfig; +import com.hfkj.channel.llg.util.AesUtil; +import com.hfkj.config.CommonSysConst; +import com.hfkj.entity.*; +import com.hfkj.service.*; +import com.hfkj.sysenum.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedOutputStream; +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + + +/** + * 零零购通知 + * @author hurui + */ +@Controller +@Api(value = "零零购通知") +@RequestMapping(value = "/llgNotify") +public class LLGController { + + private static Logger log = LoggerFactory.getLogger(LLGController.class); + + @Resource + private BsTradeOrderService tradeOrderService; + + @Resource + private BsTradeOrderMsgService tradeOrderMsgService; + @Resource + private BsMerLedgerService merLedgerService; + @Resource + private BsMerLedgerApplyService merLedgerApplyService; + @Resource + private BsMerLedgerReceiverService merLedgerReceiverService; + @Resource + private BsMerLedgerReceiverApplyService merLedgerReceiverApplyService; + @Resource + private LaKaLaLedgerService laKaLaLedgerService; + @Resource + private LaKaLaWalletService laKaLaWalletService; + + @RequestMapping(value="/trade",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "交易通知") + public void trade(@RequestBody String reqBody, HttpServletResponse response) { + try { + log.info("交易【被扫】通知", reqBody); + System.out.println(reqBody); + + // 解密 + String decryptData = AesUtil.aesDecrypt(LLGConfig.key, reqBody); + + JSONObject body = JSONObject.parseObject(decryptData); + // 请求记录 + BsTradeOrderMsg orderMsg = new BsTradeOrderMsg(); + orderMsg.setOutTradeNo(body.getString("out_trade_no")); + orderMsg.setType(TradeOrderMsgTypeEnum.type2.getNumber()); + orderMsg.setResponseContent(reqBody); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + + BsTradeOrder tradeOrder = tradeOrderService.getOrderByOutTradeNo(body.getString("orderId")); + if (tradeOrder != null && body.getString("respCode").equals("00")) { + tradeOrder.setPlatformTradeNo(body.getString("queryId")); + tradeOrder.setPayTime(new Date()); + tradeOrder.setStatus(TradeOrderStatusEnum.status3.getNumber()); + tradeOrderService.editOrder(tradeOrder); + } + + } catch (Exception e) { + log.error("login error!",e); + + } finally { + try { + BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); + out.write("success".getBytes()); + out.flush(); + out.close(); + } catch (Exception e) { + + } + + } + } + + @RequestMapping(value="/applyLedgerMer",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "开通分账业务通知") + public void applyLedgerMer(@RequestBody String reqBody) { + try { + log.info("开通分账业务通知", reqBody); + System.out.println(reqBody); + + JSONObject respData = JSONObject.parseObject(reqBody); + + BsMerLedgerApply ledgerApply = merLedgerApplyService.getApplyByApplyId(respData.getString("applyId")); + if (ledgerApply != null) { + ledgerApply.setNotifyBody(reqBody); + merLedgerApplyService.editMerLedgerApply(ledgerApply); + + // 查询商户分账信息 + BsMerLedger merLedger = merLedgerService.getMerLedgerById(ledgerApply.getMerLedgerId()); + if (merLedger != null) { + // 审核状态 1:通过,2拒绝 + if (respData.getString("auditStatus").equals("1")) { + merLedger.setStatus(MerLedgerStatusEnum.status1.getNumber()); + merLedgerService.editMerLedger(merLedger); + // 延迟3秒 + Thread.sleep(3000); + + // 提现通知地址 + String notifyUrl = CommonSysConst.getSysConfig().getDomainName()+"/crest/merWithdrawal/notify?cupNo="+merLedger.getCupNo(); + + // 配置账户自动结算 + laKaLaWalletService.ewalletSettleProfile(1,merLedger.getCupNo(), "02", "06", notifyUrl); + + // 配置分账接收方账户自动结算 + laKaLaWalletService.ewalletSettleProfile(2,merLedger.getReceiverNo(), "02", "06", notifyUrl); + + } else { + merLedger.setStatus(MerLedgerStatusEnum.status3.getNumber()); + merLedger.setRejectReason(respData.getString("remark")); + merLedgerService.editMerLedger(merLedger); + } + } + } + + } catch (Exception e) { + log.error("login error!",e); + } + + } + + @RequestMapping(value="/applyBindReceiver",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "分账关系绑定申请") + public void applyBindReceiver(@RequestBody String reqBody) { + try { + log.info("分账关系绑定申请通知", reqBody); + System.out.println(reqBody); + + JSONObject respData = JSONObject.parseObject(reqBody); + + // 分手接收方申请记录 + BsMerLedgerReceiverApply receiverApply = merLedgerReceiverApplyService.getReceiverApplyByApplyId(respData.getString("applyId")); + if (receiverApply != null) { + receiverApply.setNotifyBody(reqBody); + // 1:通过,2拒绝 + receiverApply.setStatus( + respData.getString("auditStatus").equals("1") + ?MerLedgerReceiverApplyStatusEnum.status2.getNumber() + :MerLedgerReceiverApplyStatusEnum.status3.getNumber()); + receiverApply.setRejectReason(respData.getString("remark")); + merLedgerReceiverApplyService.editReceiverApply(receiverApply); + + // 分账接收方 + BsMerLedgerReceiver ledgerReceiver = merLedgerReceiverService.getMerLedgerReceiver(receiverApply.getMerId(), receiverApply.getReceiverNo()); + if (ledgerReceiver != null) { + ledgerReceiver.setStatus( + receiverApply.getStatus().equals( + MerLedgerReceiverApplyStatusEnum.status2.getNumber()) + ?MerLedgerReceiverStatusEnum.status1.getNumber() + :MerLedgerReceiverStatusEnum.status2.getNumber() + ); + ledgerReceiver.setAuditStatus( + receiverApply.getStatus().equals(MerLedgerReceiverApplyStatusEnum.status2.getNumber()) + ?MerLedgerReceiverAuditStatusEnum.status2.getNumber() + :MerLedgerReceiverAuditStatusEnum.status3.getNumber() + ); + ledgerReceiver.setRejectReason(receiverApply.getRejectReason()); + merLedgerReceiverService.editMerLedgerReceiver(ledgerReceiver); + } + } + + } catch (Exception e) { + log.error("login error!",e); + } + + } + + @RequestMapping(value="/applyBindUnReceiver",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "分账关系绑定申请") + public void applyBindUnReceiver(@RequestBody String reqBody) { + try { + log.info("分账关系绑定申请通知", reqBody); + System.out.println(reqBody); + + JSONObject respData = JSONObject.parseObject(reqBody); + + // 分手接收方申请记录 + BsMerLedgerReceiverApply receiverApply = merLedgerReceiverApplyService.getReceiverApplyByApplyId(respData.getString("applyId")); + if (receiverApply != null) { + receiverApply.setNotifyBody(reqBody); + // 1:通过,2拒绝 + receiverApply.setStatus( + respData.getString("auditStatus").equals("1") + ?MerLedgerReceiverApplyStatusEnum.status2.getNumber() + :MerLedgerReceiverApplyStatusEnum.status3.getNumber()); + receiverApply.setRejectReason(respData.getString("auditStatusText")); + merLedgerReceiverApplyService.editReceiverApply(receiverApply); + + // 分账接收方 + BsMerLedgerReceiver ledgerReceiver = merLedgerReceiverService.getMerLedgerReceiver(receiverApply.getMerId(), receiverApply.getReceiverNo()); + if (ledgerReceiver != null) { + ledgerReceiver.setStatus( + receiverApply.getStatus().equals( + MerLedgerReceiverApplyStatusEnum.status2.getNumber()) + ?MerLedgerReceiverStatusEnum.status0.getNumber() + :MerLedgerReceiverStatusEnum.status2.getNumber() + ); + ledgerReceiver.setAuditStatus( + receiverApply.getStatus().equals(MerLedgerReceiverApplyStatusEnum.status2.getNumber()) + ?MerLedgerReceiverAuditStatusEnum.status2.getNumber() + :MerLedgerReceiverAuditStatusEnum.status5.getNumber() + ); + ledgerReceiver.setRejectReason(receiverApply.getRejectReason()); + merLedgerReceiverService.editMerLedgerReceiver(ledgerReceiver); + } + } + + } catch (Exception e) { + log.error("login error!",e); + } + + } + +} diff --git a/service/src/main/java/com/hfkj/channel/llg/service/LLGOrderService.java b/service/src/main/java/com/hfkj/channel/llg/service/LLGOrderService.java index 634e779..11af60c 100644 --- a/service/src/main/java/com/hfkj/channel/llg/service/LLGOrderService.java +++ b/service/src/main/java/com/hfkj/channel/llg/service/LLGOrderService.java @@ -4,10 +4,14 @@ import com.alibaba.fastjson.JSONObject; import com.hfkj.channel.llg.config.LLGConfig; import com.hfkj.channel.llg.util.AesUtil; import com.hfkj.common.utils.HttpsUtils; +import com.hfkj.entity.BsTradeOrder; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; +import java.text.DecimalFormat; import java.util.HashMap; import java.util.Map; @@ -18,6 +22,7 @@ import java.util.Map; * @author: HuRui * @date: 2023/12/19 **/ +@Component public class LLGOrderService { /** @@ -27,7 +32,7 @@ public class LLGOrderService { * @return * @throws Exception */ - public static JSONObject getBanks(String merId,Integer period) { + public JSONObject getBanks(String merId,String period) { return HttpsUtils.doGet(LLGConfig.requestUrl + "/v3/openapi/banks?merId=" + merId + "&period=" + period); } @@ -36,23 +41,24 @@ public class LLGOrderService { * @return 分期支付地址 * @throws Exception */ - public static String createOrder() throws Exception { + public Map createOrder(BsTradeOrder tradeOrder) throws Exception { Map param = new HashMap<>(); - param.put("merId", "109"); + param.put("merId", tradeOrder.getPlatformMerNo()); param.put("marketId", "135"); param.put("pkgId", "54"); - param.put("bankId", "52"); - param.put("orderId", System.currentTimeMillis()); - param.put("nickPrice", "100"); - param.put("payType", "02"); - param.put("period", "06"); - param.put("phoneName", "测试"); - param.put("backUrl", false); // 回调地址 - param.put("frontUrl", false); // 前端跳转地址 + param.put("bankId", tradeOrder.getPeriodBankCode()); + param.put("orderId", tradeOrder.getOutTradeNo()); + param.put("nickPrice", tradeOrder.getTradeAmount().multiply(new BigDecimal("100")).intValue()); + param.put("payType", "02"); // 固定分期;交易方式 01:消费 02:分期,03:预授权 + param.put("period", new DecimalFormat("00").format(tradeOrder.getPeriodNum())); // 分期数 + if (StringUtils.isNotBlank(tradeOrder.getSubject())) { + param.put("phoneName", tradeOrder.getSubject()); + } + param.put("backUrl", "https://gratia-pay.dctpay.com/crest/llgNotify/trade"); // 回调地址 param.put("qrcode", false); String dataStr = AesUtil.aesEncrypt(LLGConfig.key, JSONObject.toJSONString(param)); - URL url = new URL(LLGConfig.requestUrl + "/v3/openapi/order/create?data="+ dataStr); + URL url = new URL(LLGConfig.requestUrl+"/v3/openapi/order/create?data="+dataStr); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // GET请求方式 connection.setRequestMethod("GET"); @@ -65,15 +71,19 @@ public class LLGOrderService { connection.getContent(); // 获取重定向地址 - return "https:" + connection.getHeaderField("Location"); + String location = "https:" + connection.getHeaderField("Location"); + + Map map = new HashMap<>(); + map.put("redirectUrl", location); + return map; } /** - * 创建订单 + * 查询订单状态 * @return 分期支付地址 * @throws Exception */ - public static JSONObject createOrder(Long merId, String orderId, String payType, BigDecimal txnAmt) throws Exception { + public JSONObject paycheck(String merId, String orderId, String payType, BigDecimal txnAmt) throws Exception { Map param = new HashMap<>(); param.put("merId", merId); param.put("orderId", orderId); @@ -81,7 +91,7 @@ public class LLGOrderService { param.put("txnAmt", txnAmt); String dataStr = AesUtil.aesEncrypt(LLGConfig.key, JSONObject.toJSONString(param)); - JSONObject response = HttpsUtils.doGet(LLGConfig.requestUrl + "/v3/openapi/order/paycheck?data=" + dataStr); + JSONObject response = HttpsUtils.doPost(LLGConfig.requestUrl + "/v3/openapi/order/paycheck?data=" + dataStr); if (response == null) { } @@ -89,4 +99,31 @@ public class LLGOrderService { return response; } +/* + + */ +/** + * 查询订单状态 + * @return 分期支付地址 + * @throws Exception + *//* + + public JSONObject paycheck(Long merId, String orderId, String payType, BigDecimal txnAmt) throws Exception { + Map param = new HashMap<>(); + param.put("merId", merId); + param.put("orderId", orderId); + param.put("payType", payType); + param.put("txnAmt", txnAmt); + + String dataStr = AesUtil.aesEncrypt(LLGConfig.key, JSONObject.toJSONString(param)); + JSONObject response = HttpsUtils.doPost(LLGConfig.requestUrl + "/v3/openapi/order/refund?data=" + dataStr); + if (response == null) { + + } + + return response; + } +*/ + + } diff --git a/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java b/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java index 68446b6..128787d 100644 --- a/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java +++ b/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java @@ -69,7 +69,9 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "fee_rate, settle_amount, ", "settle_date, acc_payment_code, ", "card_type, `status`, ", - "profit_sharing_status, pay_time, ", + "profit_sharing_status, period_status, ", + "period_bank_code, period_bank_name, ", + "period_num, pay_time, ", "timeout_express, subject, ", "pay_notify_url, attach, ", "special_field, refund_type, ", @@ -108,7 +110,9 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "#{feeRate,jdbcType=DECIMAL}, #{settleAmount,jdbcType=DECIMAL}, ", "#{settleDate,jdbcType=DATE}, #{accPaymentCode,jdbcType=VARCHAR}, ", "#{cardType,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, ", - "#{profitSharingStatus,jdbcType=BIT}, #{payTime,jdbcType=TIMESTAMP}, ", + "#{profitSharingStatus,jdbcType=BIT}, #{periodStatus,jdbcType=BIT}, ", + "#{periodBankCode,jdbcType=VARCHAR}, #{periodBankName,jdbcType=VARCHAR}, ", + "#{periodNum,jdbcType=INTEGER}, #{payTime,jdbcType=TIMESTAMP}, ", "#{timeoutExpress,jdbcType=INTEGER}, #{subject,jdbcType=VARCHAR}, ", "#{payNotifyUrl,jdbcType=VARCHAR}, #{attach,jdbcType=VARCHAR}, ", "#{specialField,jdbcType=VARCHAR}, #{refundType,jdbcType=INTEGER}, ", @@ -191,6 +195,10 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { @Result(column="card_type", property="cardType", jdbcType=JdbcType.VARCHAR), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="profit_sharing_status", property="profitSharingStatus", jdbcType=JdbcType.BIT), + @Result(column="period_status", property="periodStatus", jdbcType=JdbcType.BIT), + @Result(column="period_bank_code", property="periodBankCode", jdbcType=JdbcType.VARCHAR), + @Result(column="period_bank_name", property="periodBankName", jdbcType=JdbcType.VARCHAR), + @Result(column="period_num", property="periodNum", jdbcType=JdbcType.INTEGER), @Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="timeout_express", property="timeoutExpress", jdbcType=JdbcType.INTEGER), @Result(column="subject", property="subject", jdbcType=JdbcType.VARCHAR), @@ -226,9 +234,10 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "rebate_activity_actual_price, trade_actual_amount, income_amount, acc_trade_no, ", "acc_settle_amount, acc_mdiscount_amount, acc_discount_amount, shd_fee_amt, fee_rate, ", "settle_amount, settle_date, acc_payment_code, card_type, `status`, profit_sharing_status, ", - "pay_time, timeout_express, subject, pay_notify_url, attach, special_field, refund_type, ", - "refund_price, create_type, trans_type, create_time, cancel_time, update_time, ", - "request_ip, ext_1, ext_2, ext_3", + "period_status, period_bank_code, period_bank_name, period_num, pay_time, timeout_express, ", + "subject, pay_notify_url, attach, special_field, refund_type, refund_price, create_type, ", + "trans_type, create_time, cancel_time, update_time, request_ip, ext_1, ext_2, ", + "ext_3", "from bs_trade_order", "where id = #{id,jdbcType=BIGINT}" }) @@ -297,6 +306,10 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { @Result(column="card_type", property="cardType", jdbcType=JdbcType.VARCHAR), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="profit_sharing_status", property="profitSharingStatus", jdbcType=JdbcType.BIT), + @Result(column="period_status", property="periodStatus", jdbcType=JdbcType.BIT), + @Result(column="period_bank_code", property="periodBankCode", jdbcType=JdbcType.VARCHAR), + @Result(column="period_bank_name", property="periodBankName", jdbcType=JdbcType.VARCHAR), + @Result(column="period_num", property="periodNum", jdbcType=JdbcType.INTEGER), @Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="timeout_express", property="timeoutExpress", jdbcType=JdbcType.INTEGER), @Result(column="subject", property="subject", jdbcType=JdbcType.VARCHAR), @@ -391,6 +404,10 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "card_type = #{cardType,jdbcType=VARCHAR},", "`status` = #{status,jdbcType=INTEGER},", "profit_sharing_status = #{profitSharingStatus,jdbcType=BIT},", + "period_status = #{periodStatus,jdbcType=BIT},", + "period_bank_code = #{periodBankCode,jdbcType=VARCHAR},", + "period_bank_name = #{periodBankName,jdbcType=VARCHAR},", + "period_num = #{periodNum,jdbcType=INTEGER},", "pay_time = #{payTime,jdbcType=TIMESTAMP},", "timeout_express = #{timeoutExpress,jdbcType=INTEGER},", "subject = #{subject,jdbcType=VARCHAR},", diff --git a/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java b/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java index e319a71..468b669 100644 --- a/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java +++ b/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java @@ -280,6 +280,22 @@ public class BsTradeOrderSqlProvider { sql.VALUES("profit_sharing_status", "#{profitSharingStatus,jdbcType=BIT}"); } + if (record.getPeriodStatus() != null) { + sql.VALUES("period_status", "#{periodStatus,jdbcType=BIT}"); + } + + if (record.getPeriodBankCode() != null) { + sql.VALUES("period_bank_code", "#{periodBankCode,jdbcType=VARCHAR}"); + } + + if (record.getPeriodBankName() != null) { + sql.VALUES("period_bank_name", "#{periodBankName,jdbcType=VARCHAR}"); + } + + if (record.getPeriodNum() != null) { + sql.VALUES("period_num", "#{periodNum,jdbcType=INTEGER}"); + } + if (record.getPayTime() != null) { sql.VALUES("pay_time", "#{payTime,jdbcType=TIMESTAMP}"); } @@ -421,6 +437,10 @@ public class BsTradeOrderSqlProvider { sql.SELECT("card_type"); sql.SELECT("`status`"); sql.SELECT("profit_sharing_status"); + sql.SELECT("period_status"); + sql.SELECT("period_bank_code"); + sql.SELECT("period_bank_name"); + sql.SELECT("period_num"); sql.SELECT("pay_time"); sql.SELECT("timeout_express"); sql.SELECT("subject"); @@ -711,6 +731,22 @@ public class BsTradeOrderSqlProvider { sql.SET("profit_sharing_status = #{record.profitSharingStatus,jdbcType=BIT}"); } + if (record.getPeriodStatus() != null) { + sql.SET("period_status = #{record.periodStatus,jdbcType=BIT}"); + } + + if (record.getPeriodBankCode() != null) { + sql.SET("period_bank_code = #{record.periodBankCode,jdbcType=VARCHAR}"); + } + + if (record.getPeriodBankName() != null) { + sql.SET("period_bank_name = #{record.periodBankName,jdbcType=VARCHAR}"); + } + + if (record.getPeriodNum() != null) { + sql.SET("period_num = #{record.periodNum,jdbcType=INTEGER}"); + } + if (record.getPayTime() != null) { sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); } @@ -851,6 +887,10 @@ public class BsTradeOrderSqlProvider { sql.SET("card_type = #{record.cardType,jdbcType=VARCHAR}"); sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); sql.SET("profit_sharing_status = #{record.profitSharingStatus,jdbcType=BIT}"); + sql.SET("period_status = #{record.periodStatus,jdbcType=BIT}"); + sql.SET("period_bank_code = #{record.periodBankCode,jdbcType=VARCHAR}"); + sql.SET("period_bank_name = #{record.periodBankName,jdbcType=VARCHAR}"); + sql.SET("period_num = #{record.periodNum,jdbcType=INTEGER}"); sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); sql.SET("timeout_express = #{record.timeoutExpress,jdbcType=INTEGER}"); sql.SET("subject = #{record.subject,jdbcType=VARCHAR}"); @@ -1130,6 +1170,22 @@ public class BsTradeOrderSqlProvider { sql.SET("profit_sharing_status = #{profitSharingStatus,jdbcType=BIT}"); } + if (record.getPeriodStatus() != null) { + sql.SET("period_status = #{periodStatus,jdbcType=BIT}"); + } + + if (record.getPeriodBankCode() != null) { + sql.SET("period_bank_code = #{periodBankCode,jdbcType=VARCHAR}"); + } + + if (record.getPeriodBankName() != null) { + sql.SET("period_bank_name = #{periodBankName,jdbcType=VARCHAR}"); + } + + if (record.getPeriodNum() != null) { + sql.SET("period_num = #{periodNum,jdbcType=INTEGER}"); + } + if (record.getPayTime() != null) { sql.SET("pay_time = #{payTime,jdbcType=TIMESTAMP}"); } diff --git a/service/src/main/java/com/hfkj/entity/BsTradeOrder.java b/service/src/main/java/com/hfkj/entity/BsTradeOrder.java index 52c5624..a432994 100644 --- a/service/src/main/java/com/hfkj/entity/BsTradeOrder.java +++ b/service/src/main/java/com/hfkj/entity/BsTradeOrder.java @@ -338,6 +338,26 @@ public class BsTradeOrder implements Serializable { */ private Boolean profitSharingStatus; + /** + * 是否分期 0:否 1:是 + */ + private Boolean periodStatus; + + /** + * 分期银行代码 + */ + private String periodBankCode; + + /** + * 分期银行名称 + */ + private String periodBankName; + + /** + * 分期期数 + */ + private Integer periodNum; + /** * 支付时间 */ @@ -928,6 +948,38 @@ public class BsTradeOrder implements Serializable { this.profitSharingStatus = profitSharingStatus; } + public Boolean getPeriodStatus() { + return periodStatus; + } + + public void setPeriodStatus(Boolean periodStatus) { + this.periodStatus = periodStatus; + } + + public String getPeriodBankCode() { + return periodBankCode; + } + + public void setPeriodBankCode(String periodBankCode) { + this.periodBankCode = periodBankCode; + } + + public String getPeriodBankName() { + return periodBankName; + } + + public void setPeriodBankName(String periodBankName) { + this.periodBankName = periodBankName; + } + + public Integer getPeriodNum() { + return periodNum; + } + + public void setPeriodNum(Integer periodNum) { + this.periodNum = periodNum; + } + public Date getPayTime() { return payTime; } @@ -1140,6 +1192,10 @@ public class BsTradeOrder implements Serializable { && (this.getCardType() == null ? other.getCardType() == null : this.getCardType().equals(other.getCardType())) && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) && (this.getProfitSharingStatus() == null ? other.getProfitSharingStatus() == null : this.getProfitSharingStatus().equals(other.getProfitSharingStatus())) + && (this.getPeriodStatus() == null ? other.getPeriodStatus() == null : this.getPeriodStatus().equals(other.getPeriodStatus())) + && (this.getPeriodBankCode() == null ? other.getPeriodBankCode() == null : this.getPeriodBankCode().equals(other.getPeriodBankCode())) + && (this.getPeriodBankName() == null ? other.getPeriodBankName() == null : this.getPeriodBankName().equals(other.getPeriodBankName())) + && (this.getPeriodNum() == null ? other.getPeriodNum() == null : this.getPeriodNum().equals(other.getPeriodNum())) && (this.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime())) && (this.getTimeoutExpress() == null ? other.getTimeoutExpress() == null : this.getTimeoutExpress().equals(other.getTimeoutExpress())) && (this.getSubject() == null ? other.getSubject() == null : this.getSubject().equals(other.getSubject())) @@ -1227,6 +1283,10 @@ public class BsTradeOrder implements Serializable { result = prime * result + ((getCardType() == null) ? 0 : getCardType().hashCode()); result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); result = prime * result + ((getProfitSharingStatus() == null) ? 0 : getProfitSharingStatus().hashCode()); + result = prime * result + ((getPeriodStatus() == null) ? 0 : getPeriodStatus().hashCode()); + result = prime * result + ((getPeriodBankCode() == null) ? 0 : getPeriodBankCode().hashCode()); + result = prime * result + ((getPeriodBankName() == null) ? 0 : getPeriodBankName().hashCode()); + result = prime * result + ((getPeriodNum() == null) ? 0 : getPeriodNum().hashCode()); result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode()); result = prime * result + ((getTimeoutExpress() == null) ? 0 : getTimeoutExpress().hashCode()); result = prime * result + ((getSubject() == null) ? 0 : getSubject().hashCode()); @@ -1317,6 +1377,10 @@ public class BsTradeOrder implements Serializable { sb.append(", cardType=").append(cardType); sb.append(", status=").append(status); sb.append(", profitSharingStatus=").append(profitSharingStatus); + sb.append(", periodStatus=").append(periodStatus); + sb.append(", periodBankCode=").append(periodBankCode); + sb.append(", periodBankName=").append(periodBankName); + sb.append(", periodNum=").append(periodNum); sb.append(", payTime=").append(payTime); sb.append(", timeoutExpress=").append(timeoutExpress); sb.append(", subject=").append(subject); diff --git a/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java b/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java index 640eb88..8c77345 100644 --- a/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java +++ b/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java @@ -4213,6 +4213,266 @@ public class BsTradeOrderExample { return (Criteria) this; } + public Criteria andPeriodStatusIsNull() { + addCriterion("period_status is null"); + return (Criteria) this; + } + + public Criteria andPeriodStatusIsNotNull() { + addCriterion("period_status is not null"); + return (Criteria) this; + } + + public Criteria andPeriodStatusEqualTo(Boolean value) { + addCriterion("period_status =", value, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusNotEqualTo(Boolean value) { + addCriterion("period_status <>", value, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusGreaterThan(Boolean value) { + addCriterion("period_status >", value, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusGreaterThanOrEqualTo(Boolean value) { + addCriterion("period_status >=", value, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusLessThan(Boolean value) { + addCriterion("period_status <", value, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusLessThanOrEqualTo(Boolean value) { + addCriterion("period_status <=", value, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusIn(List values) { + addCriterion("period_status in", values, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusNotIn(List values) { + addCriterion("period_status not in", values, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusBetween(Boolean value1, Boolean value2) { + addCriterion("period_status between", value1, value2, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodStatusNotBetween(Boolean value1, Boolean value2) { + addCriterion("period_status not between", value1, value2, "periodStatus"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeIsNull() { + addCriterion("period_bank_code is null"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeIsNotNull() { + addCriterion("period_bank_code is not null"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeEqualTo(String value) { + addCriterion("period_bank_code =", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeNotEqualTo(String value) { + addCriterion("period_bank_code <>", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeGreaterThan(String value) { + addCriterion("period_bank_code >", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeGreaterThanOrEqualTo(String value) { + addCriterion("period_bank_code >=", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeLessThan(String value) { + addCriterion("period_bank_code <", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeLessThanOrEqualTo(String value) { + addCriterion("period_bank_code <=", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeLike(String value) { + addCriterion("period_bank_code like", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeNotLike(String value) { + addCriterion("period_bank_code not like", value, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeIn(List values) { + addCriterion("period_bank_code in", values, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeNotIn(List values) { + addCriterion("period_bank_code not in", values, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeBetween(String value1, String value2) { + addCriterion("period_bank_code between", value1, value2, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankCodeNotBetween(String value1, String value2) { + addCriterion("period_bank_code not between", value1, value2, "periodBankCode"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameIsNull() { + addCriterion("period_bank_name is null"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameIsNotNull() { + addCriterion("period_bank_name is not null"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameEqualTo(String value) { + addCriterion("period_bank_name =", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameNotEqualTo(String value) { + addCriterion("period_bank_name <>", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameGreaterThan(String value) { + addCriterion("period_bank_name >", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameGreaterThanOrEqualTo(String value) { + addCriterion("period_bank_name >=", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameLessThan(String value) { + addCriterion("period_bank_name <", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameLessThanOrEqualTo(String value) { + addCriterion("period_bank_name <=", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameLike(String value) { + addCriterion("period_bank_name like", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameNotLike(String value) { + addCriterion("period_bank_name not like", value, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameIn(List values) { + addCriterion("period_bank_name in", values, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameNotIn(List values) { + addCriterion("period_bank_name not in", values, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameBetween(String value1, String value2) { + addCriterion("period_bank_name between", value1, value2, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodBankNameNotBetween(String value1, String value2) { + addCriterion("period_bank_name not between", value1, value2, "periodBankName"); + return (Criteria) this; + } + + public Criteria andPeriodNumIsNull() { + addCriterion("period_num is null"); + return (Criteria) this; + } + + public Criteria andPeriodNumIsNotNull() { + addCriterion("period_num is not null"); + return (Criteria) this; + } + + public Criteria andPeriodNumEqualTo(Integer value) { + addCriterion("period_num =", value, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumNotEqualTo(Integer value) { + addCriterion("period_num <>", value, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumGreaterThan(Integer value) { + addCriterion("period_num >", value, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumGreaterThanOrEqualTo(Integer value) { + addCriterion("period_num >=", value, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumLessThan(Integer value) { + addCriterion("period_num <", value, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumLessThanOrEqualTo(Integer value) { + addCriterion("period_num <=", value, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumIn(List values) { + addCriterion("period_num in", values, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumNotIn(List values) { + addCriterion("period_num not in", values, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumBetween(Integer value1, Integer value2) { + addCriterion("period_num between", value1, value2, "periodNum"); + return (Criteria) this; + } + + public Criteria andPeriodNumNotBetween(Integer value1, Integer value2) { + addCriterion("period_num not between", value1, value2, "periodNum"); + return (Criteria) this; + } + public Criteria andPayTimeIsNull() { addCriterion("pay_time is null"); return (Criteria) this; diff --git a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java index a1d7669..ad424e5 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java @@ -219,6 +219,24 @@ public class BsTradeOrderServiceImpl implements BsTradeOrderService { tradeOrder.setQrCodeId(MapUtils.getLong(param, "qrCodeId")); } + if (MapUtils.getBoolean(param, "periodStatus") != null || MapUtils.getBoolean(param, "periodStatus") == true) { + tradeOrder.setPeriodStatus(true); + } else { + tradeOrder.setPeriodStatus(false); + } + + if (MapUtils.getInteger(param, "periodNum") != null) { + tradeOrder.setPeriodNum(MapUtils.getInteger(param, "periodNum")); + } + + if (StringUtils.isNotBlank(MapUtils.getString(param, "periodBankCode"))) { + tradeOrder.setPeriodBankCode(MapUtils.getString(param, "periodBankCode")); + } + + if (StringUtils.isNotBlank(MapUtils.getString(param, "periodBankName"))) { + tradeOrder.setPeriodBankName(MapUtils.getString(param, "periodBankName")); + } + if (StringUtils.isNotBlank(MapUtils.getString(param, "transType"))) { tradeOrder.setTransType(MapUtils.getString(param, "transType")); } diff --git a/service/src/main/java/com/hfkj/sysenum/PlatformTypeEnum.java b/service/src/main/java/com/hfkj/sysenum/PlatformTypeEnum.java index f7b4567..084cd63 100644 --- a/service/src/main/java/com/hfkj/sysenum/PlatformTypeEnum.java +++ b/service/src/main/java/com/hfkj/sysenum/PlatformTypeEnum.java @@ -13,6 +13,7 @@ public enum PlatformTypeEnum { type3(3, "建行"), type4(4, "微信"), type5(5, "随行付"), + type6(6, "零零购"), ; diff --git a/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java b/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java index cc9065a..b966470 100644 --- a/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java +++ b/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java @@ -10,7 +10,8 @@ public enum TradeOrderPayModeEnum { WECHAT("WECHAT", "微信"), ALIPAY("ALIPAY", "支付宝"), UQRCODEPAY("UQRCODEPAY", "银联"), - DRAGON("DRAGON", "【建行】龙支付") + DRAGON("DRAGON", "【建行】龙支付"), + CREDIT_CARDS_PERIOD("CREDIT_CARDS_PERIOD", "信用卡分期"), ; private String code;