提交代码

dev
胡锐 11 months ago
parent 1eec59a4c3
commit ea35f8d545
  1. 4
      cweb/src/main/java/com/cweb/config/AuthConfig.java
  2. 129
      cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java
  3. 48
      cweb/src/main/java/com/cweb/controller/PayController.java
  4. 5
      cweb/src/main/java/com/cweb/controller/TestController.java
  5. 245
      cweb/src/main/java/com/cweb/notify/LLGController.java
  6. 67
      service/src/main/java/com/hfkj/channel/llg/service/LLGOrderService.java
  7. 27
      service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java
  8. 56
      service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java
  9. 64
      service/src/main/java/com/hfkj/entity/BsTradeOrder.java
  10. 260
      service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java
  11. 18
      service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java
  12. 1
      service/src/main/java/com/hfkj/sysenum/PlatformTypeEnum.java
  13. 3
      service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java

@ -92,6 +92,8 @@ public class AuthConfig implements WebMvcConfigurer {
.excludePathPatterns("/fileUpload/*") .excludePathPatterns("/fileUpload/*")
.excludePathPatterns("/tradeOrder/createMicroOrder") .excludePathPatterns("/tradeOrder/createMicroOrder")
.excludePathPatterns("/tradeOrder/createJSAPIOrder") .excludePathPatterns("/tradeOrder/createJSAPIOrder")
.excludePathPatterns("/tradeOrder/createPeriodOrder")
.excludePathPatterns("/tradeOrder/getPeriodBankList")
.excludePathPatterns("/tradeOrder/createOrder") .excludePathPatterns("/tradeOrder/createOrder")
.excludePathPatterns("/tradeOrder/cancelOrder") .excludePathPatterns("/tradeOrder/cancelOrder")
.excludePathPatterns("/tradeOrder/getOrderByOutTradeOrder") .excludePathPatterns("/tradeOrder/getOrderByOutTradeOrder")
@ -100,6 +102,7 @@ public class AuthConfig implements WebMvcConfigurer {
.excludePathPatterns("/getQrCodeDetail/getQrCodeDetail") .excludePathPatterns("/getQrCodeDetail/getQrCodeDetail")
.excludePathPatterns("/pay/microPay") .excludePathPatterns("/pay/microPay")
.excludePathPatterns("/pay/jsapiPay") .excludePathPatterns("/pay/jsapiPay")
.excludePathPatterns("/pay/periodPay")
.excludePathPatterns("/pay/rotationQueryTrade") .excludePathPatterns("/pay/rotationQueryTrade")
.excludePathPatterns("/laKaLaNotify/*") .excludePathPatterns("/laKaLaNotify/*")
.excludePathPatterns("/tianqueNotify/*") .excludePathPatterns("/tianqueNotify/*")
@ -128,6 +131,7 @@ public class AuthConfig implements WebMvcConfigurer {
.excludePathPatterns("/mealTableOrderPay/*") .excludePathPatterns("/mealTableOrderPay/*")
.excludePathPatterns("/ocr/*") .excludePathPatterns("/ocr/*")
.excludePathPatterns("/openGroup/*") .excludePathPatterns("/openGroup/*")
.excludePathPatterns("/llgNotify/*")
; ;
} }

@ -5,6 +5,7 @@ import com.alipay.api.domain.PayModeModel;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.hfkj.channel.lakala.LaKaLaTradeService; import com.hfkj.channel.lakala.LaKaLaTradeService;
import com.hfkj.channel.llg.service.LLGOrderService;
import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.channel.tianque.service.TianQueTradeService;
import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.ErrorHelp;
@ -31,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -74,6 +76,8 @@ public class BsTradeOrderController {
private LaKaLaTradeService laKaLaTradeService; private LaKaLaTradeService laKaLaTradeService;
@Resource @Resource
private TianQueTradeService tianQueTradeService; private TianQueTradeService tianQueTradeService;
@Resource
private LLGOrderService llgOrderService;
@RequestMapping(value="/calculation",method = RequestMethod.GET) @RequestMapping(value="/calculation",method = RequestMethod.GET)
@ResponseBody @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<String, Object> 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) @RequestMapping(value="/cancelOrder",method = RequestMethod.POST)
@ResponseBody @ResponseBody
@ApiOperation(value = "取消交易订单") @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);
}
}
} }

@ -2,6 +2,7 @@ package com.cweb.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hfkj.channel.ccb.CCBTradeService; import com.hfkj.channel.ccb.CCBTradeService;
import com.hfkj.channel.llg.service.LLGOrderService;
import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.channel.tianque.service.TianQueTradeService;
import com.hfkj.channel.weixin.WeiXinPayService; import com.hfkj.channel.weixin.WeiXinPayService;
import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorCode;
@ -46,7 +47,7 @@ public class PayController {
@Resource @Resource
private WeiXinPayService weiXinPayService; private WeiXinPayService weiXinPayService;
@Resource @Resource
private CCBTradeService ccbTradeService; private LLGOrderService llgOrderService;
@Resource @Resource
private BsMerPlatformNoService merPlatformNoService; 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<String, Object> 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);
}
}
} }

@ -832,14 +832,15 @@ public class TestController {
} }
} }
@Resource
private LLGOrderService llgOrderService;
@RequestMapping(value="/LLG",method = RequestMethod.GET) @RequestMapping(value="/LLG",method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "LLG") @ApiOperation(value = "LLG")
public ResponseData LLG(@RequestParam(name = "code", required = false) String code) { public ResponseData LLG(@RequestParam(name = "code", required = false) String code) {
try { try {
return ResponseMsgUtil.success(LLGOrderService.createOrder()); return ResponseMsgUtil.success(llgOrderService.getBanks("109", "06"));
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);

@ -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);
}
}
}

@ -4,10 +4,14 @@ import com.alibaba.fastjson.JSONObject;
import com.hfkj.channel.llg.config.LLGConfig; import com.hfkj.channel.llg.config.LLGConfig;
import com.hfkj.channel.llg.util.AesUtil; import com.hfkj.channel.llg.util.AesUtil;
import com.hfkj.common.utils.HttpsUtils; 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.math.BigDecimal;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.text.DecimalFormat;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -18,6 +22,7 @@ import java.util.Map;
* @author: HuRui * @author: HuRui
* @date: 2023/12/19 * @date: 2023/12/19
**/ **/
@Component
public class LLGOrderService { public class LLGOrderService {
/** /**
@ -27,7 +32,7 @@ public class LLGOrderService {
* @return * @return
* @throws Exception * @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); return HttpsUtils.doGet(LLGConfig.requestUrl + "/v3/openapi/banks?merId=" + merId + "&period=" + period);
} }
@ -36,19 +41,20 @@ public class LLGOrderService {
* @return 分期支付地址 * @return 分期支付地址
* @throws Exception * @throws Exception
*/ */
public static String createOrder() throws Exception { public Map<String,Object> createOrder(BsTradeOrder tradeOrder) throws Exception {
Map<String,Object> param = new HashMap<>(); Map<String,Object> param = new HashMap<>();
param.put("merId", "109"); param.put("merId", tradeOrder.getPlatformMerNo());
param.put("marketId", "135"); param.put("marketId", "135");
param.put("pkgId", "54"); param.put("pkgId", "54");
param.put("bankId", "52"); param.put("bankId", tradeOrder.getPeriodBankCode());
param.put("orderId", System.currentTimeMillis()); param.put("orderId", tradeOrder.getOutTradeNo());
param.put("nickPrice", "100"); param.put("nickPrice", tradeOrder.getTradeAmount().multiply(new BigDecimal("100")).intValue());
param.put("payType", "02"); param.put("payType", "02"); // 固定分期;交易方式 01:消费 02:分期,03:预授权
param.put("period", "06"); param.put("period", new DecimalFormat("00").format(tradeOrder.getPeriodNum())); // 分期数
param.put("phoneName", "测试"); if (StringUtils.isNotBlank(tradeOrder.getSubject())) {
param.put("backUrl", false); // 回调地址 param.put("phoneName", tradeOrder.getSubject());
param.put("frontUrl", false); // 前端跳转地址 }
param.put("backUrl", "https://gratia-pay.dctpay.com/crest/llgNotify/trade"); // 回调地址
param.put("qrcode", false); param.put("qrcode", false);
String dataStr = AesUtil.aesEncrypt(LLGConfig.key, JSONObject.toJSONString(param)); String dataStr = AesUtil.aesEncrypt(LLGConfig.key, JSONObject.toJSONString(param));
@ -65,15 +71,19 @@ public class LLGOrderService {
connection.getContent(); connection.getContent();
// 获取重定向地址 // 获取重定向地址
return "https:" + connection.getHeaderField("Location"); String location = "https:" + connection.getHeaderField("Location");
Map<String,Object> map = new HashMap<>();
map.put("redirectUrl", location);
return map;
} }
/** /**
* 创建订单 * 查询订单状态
* @return 分期支付地址 * @return 分期支付地址
* @throws Exception * @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<String,Object> param = new HashMap<>(); Map<String,Object> param = new HashMap<>();
param.put("merId", merId); param.put("merId", merId);
param.put("orderId", orderId); param.put("orderId", orderId);
@ -81,7 +91,7 @@ public class LLGOrderService {
param.put("txnAmt", txnAmt); param.put("txnAmt", txnAmt);
String dataStr = AesUtil.aesEncrypt(LLGConfig.key, JSONObject.toJSONString(param)); 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) { if (response == null) {
} }
@ -89,4 +99,31 @@ public class LLGOrderService {
return response; return response;
} }
/*
*/
/**
* 查询订单状态
* @return 分期支付地址
* @throws Exception
*//*
public JSONObject paycheck(Long merId, String orderId, String payType, BigDecimal txnAmt) throws Exception {
Map<String,Object> 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;
}
*/
} }

@ -69,7 +69,9 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt {
"fee_rate, settle_amount, ", "fee_rate, settle_amount, ",
"settle_date, acc_payment_code, ", "settle_date, acc_payment_code, ",
"card_type, `status`, ", "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, ", "timeout_express, subject, ",
"pay_notify_url, attach, ", "pay_notify_url, attach, ",
"special_field, refund_type, ", "special_field, refund_type, ",
@ -108,7 +110,9 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt {
"#{feeRate,jdbcType=DECIMAL}, #{settleAmount,jdbcType=DECIMAL}, ", "#{feeRate,jdbcType=DECIMAL}, #{settleAmount,jdbcType=DECIMAL}, ",
"#{settleDate,jdbcType=DATE}, #{accPaymentCode,jdbcType=VARCHAR}, ", "#{settleDate,jdbcType=DATE}, #{accPaymentCode,jdbcType=VARCHAR}, ",
"#{cardType,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, ", "#{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}, ", "#{timeoutExpress,jdbcType=INTEGER}, #{subject,jdbcType=VARCHAR}, ",
"#{payNotifyUrl,jdbcType=VARCHAR}, #{attach,jdbcType=VARCHAR}, ", "#{payNotifyUrl,jdbcType=VARCHAR}, #{attach,jdbcType=VARCHAR}, ",
"#{specialField,jdbcType=VARCHAR}, #{refundType,jdbcType=INTEGER}, ", "#{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="card_type", property="cardType", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="profit_sharing_status", property="profitSharingStatus", jdbcType=JdbcType.BIT), @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="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="timeout_express", property="timeoutExpress", jdbcType=JdbcType.INTEGER), @Result(column="timeout_express", property="timeoutExpress", jdbcType=JdbcType.INTEGER),
@Result(column="subject", property="subject", jdbcType=JdbcType.VARCHAR), @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, ", "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, ", "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, ", "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, ", "period_status, period_bank_code, period_bank_name, period_num, pay_time, timeout_express, ",
"refund_price, create_type, trans_type, create_time, cancel_time, update_time, ", "subject, pay_notify_url, attach, special_field, refund_type, refund_price, create_type, ",
"request_ip, ext_1, ext_2, ext_3", "trans_type, create_time, cancel_time, update_time, request_ip, ext_1, ext_2, ",
"ext_3",
"from bs_trade_order", "from bs_trade_order",
"where id = #{id,jdbcType=BIGINT}" "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="card_type", property="cardType", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="profit_sharing_status", property="profitSharingStatus", jdbcType=JdbcType.BIT), @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="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="timeout_express", property="timeoutExpress", jdbcType=JdbcType.INTEGER), @Result(column="timeout_express", property="timeoutExpress", jdbcType=JdbcType.INTEGER),
@Result(column="subject", property="subject", jdbcType=JdbcType.VARCHAR), @Result(column="subject", property="subject", jdbcType=JdbcType.VARCHAR),
@ -391,6 +404,10 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt {
"card_type = #{cardType,jdbcType=VARCHAR},", "card_type = #{cardType,jdbcType=VARCHAR},",
"`status` = #{status,jdbcType=INTEGER},", "`status` = #{status,jdbcType=INTEGER},",
"profit_sharing_status = #{profitSharingStatus,jdbcType=BIT},", "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},", "pay_time = #{payTime,jdbcType=TIMESTAMP},",
"timeout_express = #{timeoutExpress,jdbcType=INTEGER},", "timeout_express = #{timeoutExpress,jdbcType=INTEGER},",
"subject = #{subject,jdbcType=VARCHAR},", "subject = #{subject,jdbcType=VARCHAR},",

@ -280,6 +280,22 @@ public class BsTradeOrderSqlProvider {
sql.VALUES("profit_sharing_status", "#{profitSharingStatus,jdbcType=BIT}"); 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) { if (record.getPayTime() != null) {
sql.VALUES("pay_time", "#{payTime,jdbcType=TIMESTAMP}"); sql.VALUES("pay_time", "#{payTime,jdbcType=TIMESTAMP}");
} }
@ -421,6 +437,10 @@ public class BsTradeOrderSqlProvider {
sql.SELECT("card_type"); sql.SELECT("card_type");
sql.SELECT("`status`"); sql.SELECT("`status`");
sql.SELECT("profit_sharing_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("pay_time");
sql.SELECT("timeout_express"); sql.SELECT("timeout_express");
sql.SELECT("subject"); sql.SELECT("subject");
@ -711,6 +731,22 @@ public class BsTradeOrderSqlProvider {
sql.SET("profit_sharing_status = #{record.profitSharingStatus,jdbcType=BIT}"); 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) { if (record.getPayTime() != null) {
sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); 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("card_type = #{record.cardType,jdbcType=VARCHAR}");
sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
sql.SET("profit_sharing_status = #{record.profitSharingStatus,jdbcType=BIT}"); 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("pay_time = #{record.payTime,jdbcType=TIMESTAMP}");
sql.SET("timeout_express = #{record.timeoutExpress,jdbcType=INTEGER}"); sql.SET("timeout_express = #{record.timeoutExpress,jdbcType=INTEGER}");
sql.SET("subject = #{record.subject,jdbcType=VARCHAR}"); sql.SET("subject = #{record.subject,jdbcType=VARCHAR}");
@ -1130,6 +1170,22 @@ public class BsTradeOrderSqlProvider {
sql.SET("profit_sharing_status = #{profitSharingStatus,jdbcType=BIT}"); 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) { if (record.getPayTime() != null) {
sql.SET("pay_time = #{payTime,jdbcType=TIMESTAMP}"); sql.SET("pay_time = #{payTime,jdbcType=TIMESTAMP}");
} }

@ -338,6 +338,26 @@ public class BsTradeOrder implements Serializable {
*/ */
private Boolean profitSharingStatus; 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; 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() { public Date getPayTime() {
return payTime; return payTime;
} }
@ -1140,6 +1192,10 @@ public class BsTradeOrder implements Serializable {
&& (this.getCardType() == null ? other.getCardType() == null : this.getCardType().equals(other.getCardType())) && (this.getCardType() == null ? other.getCardType() == null : this.getCardType().equals(other.getCardType()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getProfitSharingStatus() == null ? other.getProfitSharingStatus() == null : this.getProfitSharingStatus().equals(other.getProfitSharingStatus())) && (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.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime()))
&& (this.getTimeoutExpress() == null ? other.getTimeoutExpress() == null : this.getTimeoutExpress().equals(other.getTimeoutExpress())) && (this.getTimeoutExpress() == null ? other.getTimeoutExpress() == null : this.getTimeoutExpress().equals(other.getTimeoutExpress()))
&& (this.getSubject() == null ? other.getSubject() == null : this.getSubject().equals(other.getSubject())) && (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 + ((getCardType() == null) ? 0 : getCardType().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getProfitSharingStatus() == null) ? 0 : getProfitSharingStatus().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 + ((getPayTime() == null) ? 0 : getPayTime().hashCode());
result = prime * result + ((getTimeoutExpress() == null) ? 0 : getTimeoutExpress().hashCode()); result = prime * result + ((getTimeoutExpress() == null) ? 0 : getTimeoutExpress().hashCode());
result = prime * result + ((getSubject() == null) ? 0 : getSubject().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(", cardType=").append(cardType);
sb.append(", status=").append(status); sb.append(", status=").append(status);
sb.append(", profitSharingStatus=").append(profitSharingStatus); 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(", payTime=").append(payTime);
sb.append(", timeoutExpress=").append(timeoutExpress); sb.append(", timeoutExpress=").append(timeoutExpress);
sb.append(", subject=").append(subject); sb.append(", subject=").append(subject);

@ -4213,6 +4213,266 @@ public class BsTradeOrderExample {
return (Criteria) this; 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<Boolean> values) {
addCriterion("period_status in", values, "periodStatus");
return (Criteria) this;
}
public Criteria andPeriodStatusNotIn(List<Boolean> 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<String> values) {
addCriterion("period_bank_code in", values, "periodBankCode");
return (Criteria) this;
}
public Criteria andPeriodBankCodeNotIn(List<String> 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<String> values) {
addCriterion("period_bank_name in", values, "periodBankName");
return (Criteria) this;
}
public Criteria andPeriodBankNameNotIn(List<String> 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<Integer> values) {
addCriterion("period_num in", values, "periodNum");
return (Criteria) this;
}
public Criteria andPeriodNumNotIn(List<Integer> 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() { public Criteria andPayTimeIsNull() {
addCriterion("pay_time is null"); addCriterion("pay_time is null");
return (Criteria) this; return (Criteria) this;

@ -219,6 +219,24 @@ public class BsTradeOrderServiceImpl implements BsTradeOrderService {
tradeOrder.setQrCodeId(MapUtils.getLong(param, "qrCodeId")); 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"))) { if (StringUtils.isNotBlank(MapUtils.getString(param, "transType"))) {
tradeOrder.setTransType(MapUtils.getString(param, "transType")); tradeOrder.setTransType(MapUtils.getString(param, "transType"));
} }

@ -13,6 +13,7 @@ public enum PlatformTypeEnum {
type3(3, "建行"), type3(3, "建行"),
type4(4, "微信"), type4(4, "微信"),
type5(5, "随行付"), type5(5, "随行付"),
type6(6, "零零购"),
; ;

@ -10,7 +10,8 @@ public enum TradeOrderPayModeEnum {
WECHAT("WECHAT", "微信"), WECHAT("WECHAT", "微信"),
ALIPAY("ALIPAY", "支付宝"), ALIPAY("ALIPAY", "支付宝"),
UQRCODEPAY("UQRCODEPAY", "银联"), UQRCODEPAY("UQRCODEPAY", "银联"),
DRAGON("DRAGON", "【建行】龙支付") DRAGON("DRAGON", "【建行】龙支付"),
CREDIT_CARDS_PERIOD("CREDIT_CARDS_PERIOD", "信用卡分期"),
; ;
private String code; private String code;

Loading…
Cancel
Save