diff --git a/cweb/src/main/java/com/cweb/controller/BsMerController.java b/cweb/src/main/java/com/cweb/controller/BsMerController.java index 7ee6588..68176ca 100644 --- a/cweb/src/main/java/com/cweb/controller/BsMerController.java +++ b/cweb/src/main/java/com/cweb/controller/BsMerController.java @@ -178,6 +178,7 @@ public class BsMerController { if (mer.getId() == null || StringUtils.isBlank(mer.getOrgNo()) || mer.getMerType() == null + || mer.getBusinessType() == null || StringUtils.isBlank(mer.getMerName()) || StringUtils.isBlank(mer.getMerAbbreviate()) || StringUtils.isBlank(mer.getMerMccCode()) @@ -266,6 +267,7 @@ public class BsMerController { mer.getMerRegion().setAreaCode(MapUtils.getObject(regionMap, "street").getRegionId()); mer.getMerRegion().setAreaName(MapUtils.getObject(regionMap, "street").getRegionName()); + bsMer.setBusinessType(mer.getBusinessType()); bsMer.setOrgNo(mer.getOrgNo()); bsMer.setOrgName(commonService.getDictionaryCodeName("ORG_NO", mer.getOrgNo())); bsMer.setMerType(mer.getMerType()); diff --git a/cweb/src/main/java/com/cweb/controller/TestController.java b/cweb/src/main/java/com/cweb/controller/TestController.java index 9c31c73..158bf1f 100644 --- a/cweb/src/main/java/com/cweb/controller/TestController.java +++ b/cweb/src/main/java/com/cweb/controller/TestController.java @@ -17,6 +17,9 @@ import com.hfkj.channel.weixin.WeiXinMerService; import com.hfkj.channel.weixin.utils.WxUtils; import com.hfkj.channel.weixin.utils.sdk.WXPayConstants; import com.hfkj.common.Base64Util; +import com.hfkj.common.exception.ErrorCode; +import com.hfkj.common.exception.ErrorHelp; +import com.hfkj.common.exception.SysCode; import com.hfkj.common.utils.DateUtil; import com.hfkj.common.utils.HttpsUtils; import com.hfkj.common.utils.ResponseMsgUtil; @@ -26,6 +29,7 @@ import com.hfkj.config.mqtt.MqttProviderService; import com.hfkj.entity.*; import com.hfkj.model.MerBasisModel; import com.hfkj.model.ResponseData; +import com.hfkj.openapi.v1.utils.SignatureUtil; import com.hfkj.service.*; import com.hfkj.service.rebate.BsRebateMerAccountService; import com.hfkj.service.rebate.BsRebatePartMerService; @@ -214,15 +218,26 @@ public class TestController { @RequestMapping(value="/lklWithdraw",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "lklWithdraw") - public ResponseData lklWithdraw(@RequestParam(value = "cupNo", required = true) String cupNo) { + public Object lklWithdraw(@RequestParam(value = "cupNo", required = true) String cupNo) { try { - - -/* MqttClient connect = mqttProviderService.connect("provider-" + System.currentTimeMillis()); - connect.subscribe("MEAL_TABLE_" + cupNo);*/ - - - return ResponseMsgUtil.success(null); + Map param = new HashMap<>(); + param.put("merchantNo", "2023090616352962600"); + param.put("outTradeNo", "test" + System.currentTimeMillis()); + param.put("totalAmount", new BigDecimal("0.01")); + param.put("subject", "测试交易"); + // param.put("notifyUrl", "https://gratia-pay.dctpay.com/openApi/v1/payNotify/lakalaCounter"); + param.put("timeoutExpress", "10"); + param.put("sign", SignatureUtil.createSign(param, "tglpZHbMLS8URfGeNqn82MGMcVRU9GtO")); + return HttpsUtils.doPost("https://gratia-pay.dctpay.com/openApi/v1/trade/counter", JSONObject.toJSONString(param)); + + // return laKaLaTradeService.queryCounterTrade("test1706672951022"); + // return laKaLaTradeService.counterOrderCreate(); + /* param.put("merchantNo", "2023090616352962600"); + param.put("outTradeNo", "test1706163838561"); // test1706147564102 + param.put("refundTradeNo", System.currentTimeMillis()); + param.put("refundAmount", new BigDecimal("0.01")); + param.put("sign", SignatureUtil.createSign(param, "tglpZHbMLS8URfGeNqn82MGMcVRU9GtO")); + return HttpsUtils.doPost("https://gratia-pay.dctpay.com/openApi/v1/trade/refund", JSONObject.toJSONString(param));*/ // return ResponseMsgUtil.success(laKaLaWalletService.ewalletBalanceQuery("8226900581219V0", null,"01")); // return ResponseMsgUtil.success(laKaLaWalletService.ewalletWithdrawD1("8226900581219V0", new BigDecimal("30193.35"),"提现")); /* return ResponseMsgUtil.success(laKaLaWalletService.ewalletSettleProfile( @@ -247,7 +262,8 @@ public class TestController { public ResponseData saasGetToken() { try { - return ResponseMsgUtil.success(LaKaLaConfig.queryCardBin("3100020709200056842")); + return ResponseMsgUtil.success(saasCommon.getUpdateToken()); + //return ResponseMsgUtil.success(LaKaLaConfig.queryCardBin("3100020709200056842")); /* // 转换成bas64 String imageUrl = "https://gratia-pay-test.obs.cn-east-3.myhuaweicloud.com/merchant/57/1682405639861.jpeg"; String base64ImgUrl = ImageUtils.getBase64ByImgUrl(imageUrl); diff --git a/open-api/src/main/java/com/api/controller/v1/NotifyController.java b/open-api/src/main/java/com/api/controller/v1/NotifyController.java index ef54962..7e2304c 100644 --- a/open-api/src/main/java/com/api/controller/v1/NotifyController.java +++ b/open-api/src/main/java/com/api/controller/v1/NotifyController.java @@ -121,6 +121,89 @@ public class NotifyController { } } + @RequestMapping(value="/lakalaCounter",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "拉卡拉收银台交易通知") + public void lakalaCounter(@RequestBody String reqBody, HttpServletResponse response) { + try { + log.info("========= Start 拉卡拉收银台交易通知 Start ==========="); + log.info("平台接收拉卡拉交易通知:" + reqBody); + System.out.println(reqBody); + + JSONObject body = JSONObject.parseObject(reqBody); + // 查询订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(body.getString("out_order_no")); + if (order != null && order.getStatus().equals(TradeOrderStatusEnum.status1.getNumber())) { + // 订单交易信息 + JSONObject orderTradeInfo = body.getJSONObject("order_trade_info"); + + Map other = new HashMap<>(); + other.put("log_no", orderTradeInfo.getString("log_no")); + other.put("acc_trade_no", orderTradeInfo.getString("acc_trade_no")); + other.put("platform_pay_order_no", body.getString("pay_order_no")); + + TradeOrderPayModeEnum payMode = TradeOrderPayModeEnum.UNKNOWN; + if (orderTradeInfo.getString("busi_type").equals("ONLINE_QUICK")) { + payMode = TradeOrderPayModeEnum.QUICK; + } + + tradeOrderService.paySuccess( + body.getString("out_order_no"), + orderTradeInfo.getString("trade_no"), + PlatformTypeEnum.type1, + payMode, + body.getBigDecimal("total_amount").divide(new BigDecimal("100")), + body.getString("merchant_no"), + other + ); + } + + if (StringUtils.isNotBlank(order.getPayNotifyUrl())) { + BsTradeOrder tradeOrder = openApiTradeOrderService.getOrderByOutTradeNo(order.getOutTradeNo()); + ResponseQueryTradeModel responseQueryTradeModel = new ResponseQueryTradeModel(); + responseQueryTradeModel.setMerchantNo(tradeOrder.getMerNo()); + responseQueryTradeModel.setOutTradeNo(tradeOrder.getOutTradeNo()); + responseQueryTradeModel.setAccTradeNo(tradeOrder.getAccTradeNo()); + responseQueryTradeModel.setPlatformTradeNo(tradeOrder.getPlatformTradeNo()); + responseQueryTradeModel.setUserId(tradeOrder.getPayUserId()); + responseQueryTradeModel.setPayMode(tradeOrder.getPayMode()); + responseQueryTradeModel.setTradeAmount(tradeOrder.getTradeAmount()); + responseQueryTradeModel.setTradeActualAmount(tradeOrder.getTradeActualAmount()); + responseQueryTradeModel.setStatus(tradeOrder.getStatus()); + responseQueryTradeModel.setCreateTime(tradeOrder.getCreateTime()); + responseQueryTradeModel.setPayTime(tradeOrder.getPayTime()); + responseQueryTradeModel.setAttach(tradeOrder.getAttach()); + responseQueryTradeModel.setSign(SignatureUtil.createSign(responseQueryTradeModel, merKeyService.getKeyByMerNo(tradeOrder.getMerNo()))); + + log.info("发送URL:" + order.getPayNotifyUrl()); + log.info("发送参数:" + JSONObject.toJSONString(responseQueryTradeModel)); + JSONObject result = HttpsUtils.doPost(order.getPayNotifyUrl(), JSONObject.toJSONString(responseQueryTradeModel)); + if (result != null) { + log.info("响应参数:" + result); + BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); + out.write(result.toJSONString().getBytes()); + out.flush(); + out.close(); + } else { + log.info("响应参数:null"); + } + } else { + BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); + JSONObject result = new JSONObject(); + result.put("code", "SUCCESS"); + result.put("message", "执行成功"); + out.write(result.toJSONString().getBytes()); + out.flush(); + out.close(); + } + + } catch (Exception e) { + log.info("出现异常", e); + } finally { + log.info("========= END 拉卡拉收银台交易通知 END ==========="); + } + } + @RequestMapping(value="/tianque",method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "天阙【随行付】交易通知") diff --git a/open-api/src/main/java/com/api/controller/v1/TradeController.java b/open-api/src/main/java/com/api/controller/v1/TradeController.java index ffae0b7..34b9bbe 100644 --- a/open-api/src/main/java/com/api/controller/v1/TradeController.java +++ b/open-api/src/main/java/com/api/controller/v1/TradeController.java @@ -131,6 +131,73 @@ public class TradeController { } } + @RequestMapping(value="/counter",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "收银台") + public ResponseData counter(@Validated @RequestBody RequestTradeCounterModel body, HttpServletRequest request) { + log.info("========= Start 收银台接口 Start ==========="); + log.info("请求参数:" + JSONObject.toJSONString(body)); + try { + // 验证签名 + if (!SignatureUtil.checkSign(body.getSign(), body, merKeyService.getKeyByMerNo(body.getMerchantNo()))) { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_SIGN_ERR, ""); + } + // 查询商户 + BsMer mer = merService.getMer(body.getMerchantNo()); + if (mer == null) { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未知的商户号"); + } + if (!mer.getMerStatus().equals(MerStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "商户状态异常"); + } + // 查询订单号是否存在 + BsTradeOrder outTradeNo = openApiTradeOrderService.getOrderByOutTradeNo(body.getOutTradeNo()); + if (outTradeNo != null) { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "商户交易流水重复"); + } + + BsTradeOrder tradeOrder = new BsTradeOrder(); + tradeOrder.setTransType("COUNTER"); + tradeOrder.setCompanyId(mer.getCompanyId()); + tradeOrder.setAgentId(mer.getAgentId()); + tradeOrder.setSalesmanId(mer.getSalesmanId()); + tradeOrder.setSalesmanName(mer.getSalesmanName()); + tradeOrder.setMerId(mer.getId()); + tradeOrder.setMerName(mer.getMerName()); + tradeOrder.setMerNo(mer.getMerNo()); + tradeOrder.setMerAbbreviate(mer.getMerAbbreviate()); + tradeOrder.setOutTradeNo(body.getOutTradeNo()); + tradeOrder.setTradeAmount(new BigDecimal(body.getTotalAmount())); + tradeOrder.setTradeActualAmount(tradeOrder.getTradeAmount()); + tradeOrder.setStatus(TradeOrderStatusEnum.status1.getNumber()); + tradeOrder.setProfitSharingStatus(false); + tradeOrder.setPeriodStatus(false); + tradeOrder.setCreateType(TradeOrderCreateTypeEnum.type3.getCode()); + tradeOrder.setPayAppid(body.getSubAppid()); + tradeOrder.setPayUserId(body.getUserId()); + tradeOrder.setTimeoutExpress(body.getTimeoutExpress()); + tradeOrder.setPayNotifyUrl(body.getNotifyUrl()); + tradeOrder.setPayCallbackUrl(body.getCallbackUrl()); + tradeOrder.setSubject(body.getSubject()); + tradeOrder.setRefundPrice(new BigDecimal("0")); + tradeOrder.setAttach(body.getAttach()); + tradeOrder.setSpecialField(body.getSpecialField()); + tradeOrder.setRequestIp(RequestUtils.getIpAddress(request)); + tradeOrder.setRebateActivityPart(false); + + // 创建交易订单 + Map returnParam = openApiTradeOrderService.counterCreateOrder(tradeOrder); + log.info("返回参数:" + JSONObject.toJSONString(returnParam)); + return ResponseMsgUtil.success(returnParam); + + } catch (Exception e) { + log.info("出现异常:", e); + return ResponseMsgUtil.exception(e); + } finally { + log.info("========= END 收银台接口 END ==========="); + } + } + @RequestMapping(value="/queryTrade",method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "查询交易") diff --git a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java index 5035266..8219d2e 100644 --- a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java +++ b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java @@ -1,5 +1,6 @@ package com.hfkj.channel.lakala; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; @@ -286,6 +287,155 @@ public class LaKaLaTradeService { return returnMap; } + /** + * 拉卡拉收银台 + * @param tradeNo 订单号 + */ + public Map counterOrderCreate(String tradeNo) { + log.info("========= Start 收银台 Start ==========="); + // 查询交易订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(tradeNo); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + if (!order.getStatus().equals(TradeOrderStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单不处于待支付状态"); + } + // 查询商户号 + BsMerPlatformNo platform = merPlatformNoService.getPlatformNo(order.getMerId(), PlatformTypeEnum.type1); + if (platform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户号"); + } + // 查询终端号 + BsMerPlatformTerm merPlatformTerm = merPlatformTermService.getMerPlatformTerm(platform.getId(), "WECHAT_PAY"); + if (merPlatformTerm == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户终端号"); + } + // 查询商户 + BsMer mer = merService.getMer(order.getMerId()); + if (mer == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的商户信息"); + } + + Map commonParam = new HashMap<>(); + commonParam.put("req_time", DateUtil.format(new Date(), "yyyyMMddHHmmss")); + commonParam.put("version", "3.0"); + + Map map = new HashMap<>(); + /* map.put("merchant_no", "822290058120M0K"); + map.put("term_no", "A1132196"); + map.put("vpos_id", "683643490614132736");*/ + + map.put("merchant_no", platform.getCupNo()); + map.put("term_no", merPlatformTerm.getTermNo()); + map.put("out_order_no", order.getOutTradeNo()); + map.put("total_amount", order.getTradeAmount().multiply(new BigDecimal("100")).intValue()); + map.put("support_cancel", 1); + map.put("support_refund", 1); + map.put("support_repeat_pay", 0); + + if (StringUtils.isNotBlank(order.getSubject())) { + map.put("order_info", order.getSubject()); + } + if (order.getCreateType().equals(TradeOrderCreateTypeEnum.type3.getCode())) { + map.put("notify_url", CommonSysConst.getSysConfig().getDomainName()+"/openApi/v1/payNotify/lakalaCounter"); + } + if (StringUtils.isNotBlank(order.getPayCallbackUrl())) { + map.put("callback_url", order.getPayCallbackUrl()); + } + + Calendar orderEfficientTime = new GregorianCalendar(); + orderEfficientTime.setTime(new Date()); + orderEfficientTime.add(Calendar.MINUTE, 5); + map.put("order_efficient_time", DateUtil.date2String(orderEfficientTime.getTime(), DateUtil.YMDHMS)); + + JSONObject counterParam = new JSONObject(); + counterParam.put("pay_mode", "QUICK_PAY"); + map.put("counter_param", counterParam.toJSONString()); + + commonParam.put("req_data", map); + Map reqParam = LaKaLaConfig.generateSignParamsV3(JSONObject.parseObject(JSONObject.toJSONString(commonParam))); + + // 头部参数 + Map heard = new HashMap<>(); + heard.put("Authorization", reqParam.get("Authorization")); + + // 请求记录 + log.info("请求参数:", JSONObject.toJSONString(commonParam)); + Map requestMap = new HashMap<>(); + requestMap.put("Authorization", reqParam.get("Authorization")); + requestMap.put("req_data", JSONObject.toJSONString(commonParam)); + BsTradeOrderMsg orderMsg = new BsTradeOrderMsg(); + orderMsg.setOutTradeNo(tradeNo); + orderMsg.setType(TradeOrderMsgTypeEnum.type1.getNumber()); + orderMsg.setRequestContent(JSONObject.toJSONString(requestMap)); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + + // 请求拉卡拉接口 + JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/ccss/counter/order/special_create", commonParam, heard); + log.info("响应参数:", JSONObject.toJSONString(responseBody)); + orderMsg.setResponseContent(responseBody.toJSONString()); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + if (!responseBody.getString("code").equals("000000")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("msg")); + } + + Map returnMap = new HashMap<>(); + returnMap.put("order", order); + returnMap.put("platformType", PlatformTypeEnum.type1.getNumber()); + returnMap.put("counterUrl", responseBody.getJSONObject("resp_data").getString("counter_url")); + log.info("========= END 收银台 END ==========="); + + return returnMap; + } + + + /** + * 拉卡拉收银台 + */ + public Map counterOrderCreate() { + log.info("========= Start 收银台 Start ==========="); + + Map commonParam = new HashMap<>(); + commonParam.put("req_time", DateUtil.format(new Date(), "yyyyMMddHHmmss")); + commonParam.put("version", "3.0"); + + Map map = new HashMap<>(); + map.put("merchant_no", "822690053111ERC"); + map.put("term_no", "A4346412"); + + map.put("out_order_no", "test"+System.currentTimeMillis()); + map.put("total_amount", new BigDecimal("0.1").multiply(new BigDecimal("100")).intValue()); + map.put("support_cancel", 1); + map.put("support_refund", 1); + map.put("support_repeat_pay", 0); + + Calendar orderEfficientTime = new GregorianCalendar(); + orderEfficientTime.setTime(new Date()); + orderEfficientTime.add(Calendar.MINUTE, 5); + map.put("order_efficient_time", DateUtil.date2String(orderEfficientTime.getTime(), DateUtil.YMDHMS)); + + JSONObject counterParam = new JSONObject(); + counterParam.put("pay_mode", "QUICK_PAY"); + map.put("counter_param", counterParam.toJSONString()); + + commonParam.put("req_data", map); + Map reqParam = LaKaLaConfig.generateSignParamsV3(JSONObject.parseObject(JSONObject.toJSONString(commonParam))); + + // 头部参数 + Map heard = new HashMap<>(); + heard.put("Authorization", reqParam.get("Authorization")); + + // 请求拉卡拉接口 + JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/ccss/counter/order/special_create", commonParam, heard); + log.info("响应参数:", JSONObject.toJSONString(responseBody)); + if (!responseBody.getString("code").equals("000000")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("msg")); + } + log.info("========= END 收银台 END ==========="); + return JSONObject.parseObject(responseBody.toJSONString(), Map.class); + } + /** * 查询交易 * @param tradeNo 订单号 @@ -344,6 +494,64 @@ public class LaKaLaTradeService { } } + + /** + * 收银台交易查询 + * @param tradeNo 订单号 + */ + public Map queryCounterTrade(String tradeNo) { + log.info("========= Start 收银台交易查询 Start ==========="); + try { + // 查询交易订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(tradeNo); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + // 查询商户号 + BsMerPlatformNo platformNo = merPlatformNoService.getPlatformNo(order.getMerId(), PlatformTypeEnum.type1); + if (platformNo == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户号"); + } + // 查询终端号 + BsMerPlatformTerm merPlatformTerm = merPlatformTermService.getMerPlatformTerm(platformNo.getId(), "WECHAT_PAY"); + if (merPlatformTerm == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户终端号"); + } + Map commonParam = new HashMap<>(); + commonParam.put("req_time", DateUtil.format(new Date(), "yyyyMMddHHmmss")); + commonParam.put("version", "3.0"); + commonParam.put("out_org_code", CommonSysConst.getSysConfig().getLkl_v3_appid()); + + Map map = new HashMap<>(); + map.put("merchant_no", platformNo.getCupNo()); + map.put("out_order_no", order.getOutTradeNo()); + commonParam.put("req_data", map); + + Map reqParam = LaKaLaConfig.generateSignParamsV3(JSONObject.parseObject(JSONObject.toJSONString(commonParam))); + + // 头部参数 + Map heard = new HashMap<>(); + heard.put("Authorization", reqParam.get("Authorization")); + + // 请求记录 + // 请求拉卡拉接口 + JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/ccss/counter/order/query", commonParam, heard); + log.info("请求参数:"+ JSONObject.toJSONString(commonParam)); + log.info("响应参数:"+ JSONObject.toJSONString(responseBody)); + System.out.println("请求参数:"+ JSONObject.toJSONString(commonParam)); + System.out.println("响应参数:"+ JSONObject.toJSONString(responseBody)); + if (!responseBody.getString("code").equals("000000")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("msg")); + } + return responseBody.getJSONObject("resp_data"); + + } catch (Exception e) { + return null; + } finally { + log.info("========= END 收银台交易查询 END ==========="); + } + } + /** * 商户计费查询 * @param tradeNo 订单号 @@ -569,6 +777,118 @@ public class LaKaLaTradeService { return returnMap; } + /** + * 收银台退款 + * @param refundNo 订单号 + */ + public Map counterRefund(String refundNo,BigDecimal refundAmount) { + log.info("========= Start 收银台退款 Start ==========="); + // 查询交易订单 + BsTradeOrderRefund orderRefund = tradeOrderRefundService.getRefundByRefundNo(refundNo); + if (orderRefund == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到订单"); + } + if (!orderRefund.getStatus().equals(TradeOrderRefundStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单不处于退款中状态"); + } + // 查询交易订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(orderRefund.getOutTradeNo()); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + // 查询商户号 + BsMerPlatformNo platformNo = merPlatformNoService.getPlatformNo(orderRefund.getMerId(), PlatformTypeEnum.type1); + if (platformNo == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户号"); + } + // 查询终端号 + BsMerPlatformTerm merPlatformTerm = merPlatformTermService.getMerPlatformTerm(platformNo.getId(), "WECHAT_PAY"); + if (merPlatformTerm == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户终端号"); + } + + Map commonParam = new HashMap<>(); + commonParam.put("req_time", DateUtil.format(new Date(), "yyyyMMddHHmmss")); + commonParam.put("version", "3.0"); + commonParam.put("out_org_code", CommonSysConst.getSysConfig().getLkl_v3_appid()); + + Map map = new HashMap<>(); + map.put("merchant_no", platformNo.getCupNo()); + map.put("term_no", merPlatformTerm.getTermNo()); + map.put("out_trade_no", orderRefund.getRefundNo()); + map.put("refund_amount", refundAmount.multiply(new BigDecimal("100")).intValue()); + map.put("origin_biz_type", 4); // 原交易类型:1 银行卡,2 外卡,3 扫码,4 线上 + map.put("origin_trade_date", DateUtil.date2String(order.getPayTime(),"yyyyMMdd")); // 原交易日期:yyyyMMdd + map.put("origin_log_no", order.getPlatformLogNo()); + + if (StringUtils.isNotBlank(orderRefund.getRefundReason())) { + map.put("refund_reason",orderRefund.getRefundReason()); + } + + Map locationInfo = new HashMap<>(); + locationInfo.put("request_ip", "10.176.1.192"); + map.put("location_info", locationInfo); + + commonParam.put("req_data", map); + Map reqParam = LaKaLaConfig.generateSignParamsV3(JSONObject.parseObject(JSONObject.toJSONString(commonParam))); + + // 头部参数 + Map heard = new HashMap<>(); + heard.put("Authorization", reqParam.get("Authorization")); + + // 请求记录 + log.info("请求参数:", JSONObject.toJSONString(commonParam)); + Map requestMap = new HashMap<>(); + requestMap.put("Authorization", reqParam.get("Authorization")); + requestMap.put("req_data", JSONObject.toJSONString(commonParam)); + BsTradeOrderMsg orderMsg = new BsTradeOrderMsg(); + orderMsg.setOutTradeNo(refundNo); + orderMsg.setType(TradeOrderMsgTypeEnum.type1.getNumber()); + orderMsg.setRequestContent(JSONObject.toJSONString(requestMap)); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + + // 是否分账 + if (order.getProfitSharingStatus().equals(true)) { + // 查询分账记录 + BsTradeOrderProfitSharing tradeOrderProfitSharing = tradeOrderProfitSharingService.getProfitSharingByTradeOrderId(ProfitSharingCmdTypeEnum.CMD_TYPE_1, order.getId()); + if (tradeOrderProfitSharing != null && tradeOrderProfitSharing.getStatus().equals(ProfitSharingStatusEnum.status3.getNumber())) { + laKaLaTradeSeparateService.cancel(tradeOrderProfitSharing.getProfitSharingOrderNo()); + } + } + + // 请求拉卡拉退款接口 + JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/lams/trade/trade_refund", commonParam, heard); + log.info("响应参数:", JSONObject.toJSONString(responseBody)); + orderMsg.setResponseContent(responseBody.toJSONString()); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + + if (!responseBody.getString("code").equals("000000")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("msg")); + } + + JSONObject data = responseBody.getJSONObject("resp_data"); + if (responseBody.getString("code").equals("000000")) { + orderRefund.setPlatformOrderNo(data.getString("trade_no")); + orderRefund.setPlatformLogNo(data.getString("log_no")); + orderRefund.setAccTradeNo(data.getString("acc_trade_no")); + orderRefund.setTotalAmount(data.getBigDecimal("total_amount").divide(new BigDecimal("100"))); + orderRefund.setRefundAmount(data.getBigDecimal("refund_amount").divide(new BigDecimal("100"))); + orderRefund.setPayerAmount(data.getBigDecimal("payer_amount").divide(new BigDecimal("100"))); + orderRefund.setRefundTime(new Date()); + orderRefund.setStatus(TradeOrderRefundStatusEnum.status2.getNumber()); + tradeOrderRefundService.editOrderRefund(orderRefund); + + order.setStatus(TradeOrderStatusEnum.status6.getNumber()); + tradeOrderService.editOrder(order); + } + + Map returnMap = new HashMap<>(); + returnMap.put("order", order); + returnMap.put("orderRefund", orderRefund); + log.info("========= END 收银台退款 END ==========="); + return returnMap; + } + /** * 关单 * @param tradeNo 订单号 diff --git a/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java b/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java index 60767e1..76a7358 100644 --- a/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java +++ b/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java @@ -132,7 +132,14 @@ public class SaasMerService { Map body = new HashMap<>(); body.put("userNo",basisModel.getOrgNo()); body.put("email", basisModel.getRegEmail()); - body.put("busiCode", "WECHAT_PAY"); + + String busiCode = ""; + if (basisModel.getBusinessType().equals(MerBusinessType.type1.getNumber())) { + busiCode = "WECHAT_PAY"; + } else if (basisModel.getBusinessType().equals(MerBusinessType.type2.getNumber())) { + busiCode = "B2B_SYT"; + } + body.put("busiCode", busiCode); // WECHAT_PAY:专业化扫码, B2B_SYT:B2B收银台 body.put("merRegName", basisModel.getMerName()); body.put("merType", basisModel.getMerType().equals(MerTypeEnum.status2.getNumber())?"TP_MERCHANT":"TP_PERSONAL"); body.put("merName", basisModel.getMerName()); diff --git a/service/src/main/java/com/hfkj/dao/BsMerMapper.java b/service/src/main/java/com/hfkj/dao/BsMerMapper.java index 94c35e4..c02f24e 100644 --- a/service/src/main/java/com/hfkj/dao/BsMerMapper.java +++ b/service/src/main/java/com/hfkj/dao/BsMerMapper.java @@ -39,47 +39,49 @@ public interface BsMerMapper extends BsMerMapperExt { int deleteByPrimaryKey(Long id); @Insert({ - "insert into bs_mer (org_no, org_name, ", - "company_id, company_name, ", - "agent_id, agent_name, ", - "salesman_id, salesman_name, ", - "reg_phone, reg_name, ", - "reg_email, mer_type, ", - "mer_no, mer_name, ", - "mer_abbreviate, mer_operate_type, ", - "mer_online_type, mer_online_name, ", - "mer_mcc_code, mer_mcc_name, ", - "blis_url, blis_name, ", - "blis_no, blis_reg_address, ", - "blis_period_type, blis_period_start, ", - "blis_period_end, lar_name, ", - "lar_id_card, lar_id_card_portrait_img, ", - "lar_id_card_national_emblem_img, lar_id_card_address, ", - "lar_id_card_period_type, lar_id_card_period_start, ", - "lar_id_card_period_end, complete_status, ", - "mer_status, create_salesman_id, ", + "insert into bs_mer (business_type, org_no, ", + "org_name, company_id, ", + "company_name, agent_id, ", + "agent_name, salesman_id, ", + "salesman_name, reg_phone, ", + "reg_name, reg_email, ", + "mer_type, mer_no, ", + "mer_name, mer_abbreviate, ", + "mer_operate_type, mer_online_type, ", + "mer_online_name, mer_mcc_code, ", + "mer_mcc_name, blis_url, ", + "blis_name, blis_no, ", + "blis_reg_address, blis_period_type, ", + "blis_period_start, blis_period_end, ", + "lar_name, lar_id_card, ", + "lar_id_card_portrait_img, lar_id_card_national_emblem_img, ", + "lar_id_card_address, lar_id_card_period_type, ", + "lar_id_card_period_start, lar_id_card_period_end, ", + "complete_status, mer_status, ", + "period_status, create_salesman_id, ", "create_salesman_name, create_time, ", "update_time, ext_1, ", "ext_2, ext_3)", - "values (#{orgNo,jdbcType=VARCHAR}, #{orgName,jdbcType=VARCHAR}, ", - "#{companyId,jdbcType=BIGINT}, #{companyName,jdbcType=VARCHAR}, ", - "#{agentId,jdbcType=BIGINT}, #{agentName,jdbcType=VARCHAR}, ", - "#{salesmanId,jdbcType=BIGINT}, #{salesmanName,jdbcType=VARCHAR}, ", - "#{regPhone,jdbcType=VARCHAR}, #{regName,jdbcType=VARCHAR}, ", - "#{regEmail,jdbcType=VARCHAR}, #{merType,jdbcType=INTEGER}, ", - "#{merNo,jdbcType=VARCHAR}, #{merName,jdbcType=VARCHAR}, ", - "#{merAbbreviate,jdbcType=VARCHAR}, #{merOperateType,jdbcType=INTEGER}, ", - "#{merOnlineType,jdbcType=INTEGER}, #{merOnlineName,jdbcType=VARCHAR}, ", - "#{merMccCode,jdbcType=VARCHAR}, #{merMccName,jdbcType=VARCHAR}, ", - "#{blisUrl,jdbcType=VARCHAR}, #{blisName,jdbcType=VARCHAR}, ", - "#{blisNo,jdbcType=VARCHAR}, #{blisRegAddress,jdbcType=VARCHAR}, ", - "#{blisPeriodType,jdbcType=INTEGER}, #{blisPeriodStart,jdbcType=VARCHAR}, ", - "#{blisPeriodEnd,jdbcType=VARCHAR}, #{larName,jdbcType=VARCHAR}, ", - "#{larIdCard,jdbcType=VARCHAR}, #{larIdCardPortraitImg,jdbcType=VARCHAR}, ", - "#{larIdCardNationalEmblemImg,jdbcType=VARCHAR}, #{larIdCardAddress,jdbcType=VARCHAR}, ", - "#{larIdCardPeriodType,jdbcType=INTEGER}, #{larIdCardPeriodStart,jdbcType=VARCHAR}, ", - "#{larIdCardPeriodEnd,jdbcType=VARCHAR}, #{completeStatus,jdbcType=INTEGER}, ", - "#{merStatus,jdbcType=INTEGER}, #{createSalesmanId,jdbcType=BIGINT}, ", + "values (#{businessType,jdbcType=INTEGER}, #{orgNo,jdbcType=VARCHAR}, ", + "#{orgName,jdbcType=VARCHAR}, #{companyId,jdbcType=BIGINT}, ", + "#{companyName,jdbcType=VARCHAR}, #{agentId,jdbcType=BIGINT}, ", + "#{agentName,jdbcType=VARCHAR}, #{salesmanId,jdbcType=BIGINT}, ", + "#{salesmanName,jdbcType=VARCHAR}, #{regPhone,jdbcType=VARCHAR}, ", + "#{regName,jdbcType=VARCHAR}, #{regEmail,jdbcType=VARCHAR}, ", + "#{merType,jdbcType=INTEGER}, #{merNo,jdbcType=VARCHAR}, ", + "#{merName,jdbcType=VARCHAR}, #{merAbbreviate,jdbcType=VARCHAR}, ", + "#{merOperateType,jdbcType=INTEGER}, #{merOnlineType,jdbcType=INTEGER}, ", + "#{merOnlineName,jdbcType=VARCHAR}, #{merMccCode,jdbcType=VARCHAR}, ", + "#{merMccName,jdbcType=VARCHAR}, #{blisUrl,jdbcType=VARCHAR}, ", + "#{blisName,jdbcType=VARCHAR}, #{blisNo,jdbcType=VARCHAR}, ", + "#{blisRegAddress,jdbcType=VARCHAR}, #{blisPeriodType,jdbcType=INTEGER}, ", + "#{blisPeriodStart,jdbcType=VARCHAR}, #{blisPeriodEnd,jdbcType=VARCHAR}, ", + "#{larName,jdbcType=VARCHAR}, #{larIdCard,jdbcType=VARCHAR}, ", + "#{larIdCardPortraitImg,jdbcType=VARCHAR}, #{larIdCardNationalEmblemImg,jdbcType=VARCHAR}, ", + "#{larIdCardAddress,jdbcType=VARCHAR}, #{larIdCardPeriodType,jdbcType=INTEGER}, ", + "#{larIdCardPeriodStart,jdbcType=VARCHAR}, #{larIdCardPeriodEnd,jdbcType=VARCHAR}, ", + "#{completeStatus,jdbcType=INTEGER}, #{merStatus,jdbcType=INTEGER}, ", + "#{periodStatus,jdbcType=BIT}, #{createSalesmanId,jdbcType=BIGINT}, ", "#{createSalesmanName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ", "#{updateTime,jdbcType=TIMESTAMP}, #{ext1,jdbcType=VARCHAR}, ", "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" @@ -94,6 +96,7 @@ public interface BsMerMapper extends BsMerMapperExt { @SelectProvider(type=BsMerSqlProvider.class, method="selectByExample") @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="business_type", property="businessType", jdbcType=JdbcType.INTEGER), @Result(column="org_no", property="orgNo", jdbcType=JdbcType.VARCHAR), @Result(column="org_name", property="orgName", jdbcType=JdbcType.VARCHAR), @Result(column="company_id", property="companyId", jdbcType=JdbcType.BIGINT), @@ -131,6 +134,7 @@ public interface BsMerMapper extends BsMerMapperExt { @Result(column="lar_id_card_period_end", property="larIdCardPeriodEnd", jdbcType=JdbcType.VARCHAR), @Result(column="complete_status", property="completeStatus", jdbcType=JdbcType.INTEGER), @Result(column="mer_status", property="merStatus", jdbcType=JdbcType.INTEGER), + @Result(column="period_status", property="periodStatus", jdbcType=JdbcType.BIT), @Result(column="create_salesman_id", property="createSalesmanId", jdbcType=JdbcType.BIGINT), @Result(column="create_salesman_name", property="createSalesmanName", jdbcType=JdbcType.VARCHAR), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @@ -143,19 +147,21 @@ public interface BsMerMapper extends BsMerMapperExt { @Select({ "select", - "id, org_no, org_name, company_id, company_name, agent_id, agent_name, salesman_id, ", - "salesman_name, reg_phone, reg_name, reg_email, mer_type, mer_no, mer_name, mer_abbreviate, ", - "mer_operate_type, mer_online_type, mer_online_name, mer_mcc_code, mer_mcc_name, ", - "blis_url, blis_name, blis_no, blis_reg_address, blis_period_type, blis_period_start, ", - "blis_period_end, lar_name, lar_id_card, lar_id_card_portrait_img, lar_id_card_national_emblem_img, ", - "lar_id_card_address, lar_id_card_period_type, lar_id_card_period_start, lar_id_card_period_end, ", - "complete_status, mer_status, create_salesman_id, create_salesman_name, create_time, ", + "id, business_type, org_no, org_name, company_id, company_name, agent_id, agent_name, ", + "salesman_id, salesman_name, reg_phone, reg_name, reg_email, mer_type, mer_no, ", + "mer_name, mer_abbreviate, mer_operate_type, mer_online_type, mer_online_name, ", + "mer_mcc_code, mer_mcc_name, blis_url, blis_name, blis_no, blis_reg_address, ", + "blis_period_type, blis_period_start, blis_period_end, lar_name, lar_id_card, ", + "lar_id_card_portrait_img, lar_id_card_national_emblem_img, lar_id_card_address, ", + "lar_id_card_period_type, lar_id_card_period_start, lar_id_card_period_end, complete_status, ", + "mer_status, period_status, create_salesman_id, create_salesman_name, create_time, ", "update_time, ext_1, ext_2, ext_3", "from bs_mer", "where id = #{id,jdbcType=BIGINT}" }) @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="business_type", property="businessType", jdbcType=JdbcType.INTEGER), @Result(column="org_no", property="orgNo", jdbcType=JdbcType.VARCHAR), @Result(column="org_name", property="orgName", jdbcType=JdbcType.VARCHAR), @Result(column="company_id", property="companyId", jdbcType=JdbcType.BIGINT), @@ -193,6 +199,7 @@ public interface BsMerMapper extends BsMerMapperExt { @Result(column="lar_id_card_period_end", property="larIdCardPeriodEnd", jdbcType=JdbcType.VARCHAR), @Result(column="complete_status", property="completeStatus", jdbcType=JdbcType.INTEGER), @Result(column="mer_status", property="merStatus", jdbcType=JdbcType.INTEGER), + @Result(column="period_status", property="periodStatus", jdbcType=JdbcType.BIT), @Result(column="create_salesman_id", property="createSalesmanId", jdbcType=JdbcType.BIGINT), @Result(column="create_salesman_name", property="createSalesmanName", jdbcType=JdbcType.VARCHAR), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @@ -214,7 +221,8 @@ public interface BsMerMapper extends BsMerMapperExt { @Update({ "update bs_mer", - "set org_no = #{orgNo,jdbcType=VARCHAR},", + "set business_type = #{businessType,jdbcType=INTEGER},", + "org_no = #{orgNo,jdbcType=VARCHAR},", "org_name = #{orgName,jdbcType=VARCHAR},", "company_id = #{companyId,jdbcType=BIGINT},", "company_name = #{companyName,jdbcType=VARCHAR},", @@ -251,6 +259,7 @@ public interface BsMerMapper extends BsMerMapperExt { "lar_id_card_period_end = #{larIdCardPeriodEnd,jdbcType=VARCHAR},", "complete_status = #{completeStatus,jdbcType=INTEGER},", "mer_status = #{merStatus,jdbcType=INTEGER},", + "period_status = #{periodStatus,jdbcType=BIT},", "create_salesman_id = #{createSalesmanId,jdbcType=BIGINT},", "create_salesman_name = #{createSalesmanName,jdbcType=VARCHAR},", "create_time = #{createTime,jdbcType=TIMESTAMP},", diff --git a/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java b/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java index d0c857c..9d39521 100644 --- a/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java +++ b/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java @@ -28,6 +28,10 @@ public class BsMerSqlProvider { SQL sql = new SQL(); sql.INSERT_INTO("bs_mer"); + if (record.getBusinessType() != null) { + sql.VALUES("business_type", "#{businessType,jdbcType=INTEGER}"); + } + if (record.getOrgNo() != null) { sql.VALUES("org_no", "#{orgNo,jdbcType=VARCHAR}"); } @@ -176,6 +180,10 @@ public class BsMerSqlProvider { sql.VALUES("mer_status", "#{merStatus,jdbcType=INTEGER}"); } + if (record.getPeriodStatus() != null) { + sql.VALUES("period_status", "#{periodStatus,jdbcType=BIT}"); + } + if (record.getCreateSalesmanId() != null) { sql.VALUES("create_salesman_id", "#{createSalesmanId,jdbcType=BIGINT}"); } @@ -214,6 +222,7 @@ public class BsMerSqlProvider { } else { sql.SELECT("id"); } + sql.SELECT("business_type"); sql.SELECT("org_no"); sql.SELECT("org_name"); sql.SELECT("company_id"); @@ -251,6 +260,7 @@ public class BsMerSqlProvider { sql.SELECT("lar_id_card_period_end"); sql.SELECT("complete_status"); sql.SELECT("mer_status"); + sql.SELECT("period_status"); sql.SELECT("create_salesman_id"); sql.SELECT("create_salesman_name"); sql.SELECT("create_time"); @@ -279,6 +289,10 @@ public class BsMerSqlProvider { sql.SET("id = #{record.id,jdbcType=BIGINT}"); } + if (record.getBusinessType() != null) { + sql.SET("business_type = #{record.businessType,jdbcType=INTEGER}"); + } + if (record.getOrgNo() != null) { sql.SET("org_no = #{record.orgNo,jdbcType=VARCHAR}"); } @@ -427,6 +441,10 @@ public class BsMerSqlProvider { sql.SET("mer_status = #{record.merStatus,jdbcType=INTEGER}"); } + if (record.getPeriodStatus() != null) { + sql.SET("period_status = #{record.periodStatus,jdbcType=BIT}"); + } + if (record.getCreateSalesmanId() != null) { sql.SET("create_salesman_id = #{record.createSalesmanId,jdbcType=BIGINT}"); } @@ -464,6 +482,7 @@ public class BsMerSqlProvider { sql.UPDATE("bs_mer"); sql.SET("id = #{record.id,jdbcType=BIGINT}"); + sql.SET("business_type = #{record.businessType,jdbcType=INTEGER}"); sql.SET("org_no = #{record.orgNo,jdbcType=VARCHAR}"); sql.SET("org_name = #{record.orgName,jdbcType=VARCHAR}"); sql.SET("company_id = #{record.companyId,jdbcType=BIGINT}"); @@ -501,6 +520,7 @@ public class BsMerSqlProvider { sql.SET("lar_id_card_period_end = #{record.larIdCardPeriodEnd,jdbcType=VARCHAR}"); sql.SET("complete_status = #{record.completeStatus,jdbcType=INTEGER}"); sql.SET("mer_status = #{record.merStatus,jdbcType=INTEGER}"); + sql.SET("period_status = #{record.periodStatus,jdbcType=BIT}"); sql.SET("create_salesman_id = #{record.createSalesmanId,jdbcType=BIGINT}"); sql.SET("create_salesman_name = #{record.createSalesmanName,jdbcType=VARCHAR}"); sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); @@ -518,6 +538,10 @@ public class BsMerSqlProvider { SQL sql = new SQL(); sql.UPDATE("bs_mer"); + if (record.getBusinessType() != null) { + sql.SET("business_type = #{businessType,jdbcType=INTEGER}"); + } + if (record.getOrgNo() != null) { sql.SET("org_no = #{orgNo,jdbcType=VARCHAR}"); } @@ -666,6 +690,10 @@ public class BsMerSqlProvider { sql.SET("mer_status = #{merStatus,jdbcType=INTEGER}"); } + if (record.getPeriodStatus() != null) { + sql.SET("period_status = #{periodStatus,jdbcType=BIT}"); + } + if (record.getCreateSalesmanId() != null) { sql.SET("create_salesman_id = #{createSalesmanId,jdbcType=BIGINT}"); } diff --git a/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java b/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java index 68446b6..6032813 100644 --- a/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java +++ b/service/src/main/java/com/hfkj/dao/BsTradeOrderMapper.java @@ -46,32 +46,36 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "device_id, device_sn, ", "qr_code_id, qr_code_sn, ", "platform_type, platform_mer_no, ", - "platform_trade_no, platform_log_no, ", - "platform_appid, platform_rate, ", - "platform_commission, pay_appid, ", - "pay_user_id, pay_mode, ", - "out_trade_no, trade_amount, ", - "store_discount_satisfy, store_discount_id, ", - "store_discount_name, store_discount_type, ", - "store_discount_condition, store_discount_price, ", - "store_discount_final_cost_price, store_discount_actual_price, ", - "store_discount_profit_price, user_id, ", - "user_phone, user_discount_id, ", - "user_discount_name, user_discount_type, ", - "user_discount_price, user_discount_actual_price, ", - "rebate_activity_part, rebate_activity_id, ", - "rebate_activity_no, rebate_activity_type, ", - "rebate_activity_preferential_type, rebate_activity_price, ", - "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, ", + "platform_pay_order_no, platform_trade_no, ", + "platform_log_no, platform_appid, ", + "platform_rate, platform_commission, ", + "pay_appid, pay_user_id, ", + "pay_mode, out_trade_no, ", + "trade_amount, store_discount_satisfy, ", + "store_discount_id, store_discount_name, ", + "store_discount_type, store_discount_condition, ", + "store_discount_price, store_discount_final_cost_price, ", + "store_discount_actual_price, store_discount_profit_price, ", + "user_id, user_phone, ", + "user_discount_id, user_discount_name, ", + "user_discount_type, user_discount_price, ", + "user_discount_actual_price, rebate_activity_part, ", + "rebate_activity_id, rebate_activity_no, ", + "rebate_activity_type, rebate_activity_preferential_type, ", + "rebate_activity_price, 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, ", + "period_status, period_bank_code, ", + "period_bank_name, period_num, ", + "period_fee_paid, period_mer_platform_fee_paid_id, ", + "pay_time, timeout_express, ", + "subject, pay_notify_url, ", + "pay_callback_url, attach, ", "special_field, refund_type, ", "refund_price, create_type, ", "trans_type, create_time, ", @@ -85,32 +89,36 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "#{deviceId,jdbcType=BIGINT}, #{deviceSn,jdbcType=VARCHAR}, ", "#{qrCodeId,jdbcType=BIGINT}, #{qrCodeSn,jdbcType=VARCHAR}, ", "#{platformType,jdbcType=INTEGER}, #{platformMerNo,jdbcType=VARCHAR}, ", - "#{platformTradeNo,jdbcType=VARCHAR}, #{platformLogNo,jdbcType=VARCHAR}, ", - "#{platformAppid,jdbcType=VARCHAR}, #{platformRate,jdbcType=DECIMAL}, ", - "#{platformCommission,jdbcType=DECIMAL}, #{payAppid,jdbcType=VARCHAR}, ", - "#{payUserId,jdbcType=VARCHAR}, #{payMode,jdbcType=VARCHAR}, ", - "#{outTradeNo,jdbcType=VARCHAR}, #{tradeAmount,jdbcType=DECIMAL}, ", - "#{storeDiscountSatisfy,jdbcType=BIT}, #{storeDiscountId,jdbcType=BIGINT}, ", - "#{storeDiscountName,jdbcType=VARCHAR}, #{storeDiscountType,jdbcType=INTEGER}, ", - "#{storeDiscountCondition,jdbcType=DECIMAL}, #{storeDiscountPrice,jdbcType=DECIMAL}, ", - "#{storeDiscountFinalCostPrice,jdbcType=DECIMAL}, #{storeDiscountActualPrice,jdbcType=DECIMAL}, ", - "#{storeDiscountProfitPrice,jdbcType=DECIMAL}, #{userId,jdbcType=INTEGER}, ", - "#{userPhone,jdbcType=VARCHAR}, #{userDiscountId,jdbcType=BIGINT}, ", - "#{userDiscountName,jdbcType=VARCHAR}, #{userDiscountType,jdbcType=INTEGER}, ", - "#{userDiscountPrice,jdbcType=DECIMAL}, #{userDiscountActualPrice,jdbcType=DECIMAL}, ", - "#{rebateActivityPart,jdbcType=BIT}, #{rebateActivityId,jdbcType=BIGINT}, ", - "#{rebateActivityNo,jdbcType=VARCHAR}, #{rebateActivityType,jdbcType=INTEGER}, ", - "#{rebateActivityPreferentialType,jdbcType=INTEGER}, #{rebateActivityPrice,jdbcType=DECIMAL}, ", - "#{rebateActivityActualPrice,jdbcType=DECIMAL}, #{tradeActualAmount,jdbcType=DECIMAL}, ", - "#{incomeAmount,jdbcType=DECIMAL}, #{accTradeNo,jdbcType=VARCHAR}, ", - "#{accSettleAmount,jdbcType=DECIMAL}, #{accMdiscountAmount,jdbcType=DECIMAL}, ", - "#{accDiscountAmount,jdbcType=DECIMAL}, #{shdFeeAmt,jdbcType=DECIMAL}, ", - "#{feeRate,jdbcType=DECIMAL}, #{settleAmount,jdbcType=DECIMAL}, ", - "#{settleDate,jdbcType=DATE}, #{accPaymentCode,jdbcType=VARCHAR}, ", - "#{cardType,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, ", - "#{profitSharingStatus,jdbcType=BIT}, #{payTime,jdbcType=TIMESTAMP}, ", - "#{timeoutExpress,jdbcType=INTEGER}, #{subject,jdbcType=VARCHAR}, ", - "#{payNotifyUrl,jdbcType=VARCHAR}, #{attach,jdbcType=VARCHAR}, ", + "#{platformPayOrderNo,jdbcType=VARCHAR}, #{platformTradeNo,jdbcType=VARCHAR}, ", + "#{platformLogNo,jdbcType=VARCHAR}, #{platformAppid,jdbcType=VARCHAR}, ", + "#{platformRate,jdbcType=DECIMAL}, #{platformCommission,jdbcType=DECIMAL}, ", + "#{payAppid,jdbcType=VARCHAR}, #{payUserId,jdbcType=VARCHAR}, ", + "#{payMode,jdbcType=VARCHAR}, #{outTradeNo,jdbcType=VARCHAR}, ", + "#{tradeAmount,jdbcType=DECIMAL}, #{storeDiscountSatisfy,jdbcType=BIT}, ", + "#{storeDiscountId,jdbcType=BIGINT}, #{storeDiscountName,jdbcType=VARCHAR}, ", + "#{storeDiscountType,jdbcType=INTEGER}, #{storeDiscountCondition,jdbcType=DECIMAL}, ", + "#{storeDiscountPrice,jdbcType=DECIMAL}, #{storeDiscountFinalCostPrice,jdbcType=DECIMAL}, ", + "#{storeDiscountActualPrice,jdbcType=DECIMAL}, #{storeDiscountProfitPrice,jdbcType=DECIMAL}, ", + "#{userId,jdbcType=INTEGER}, #{userPhone,jdbcType=VARCHAR}, ", + "#{userDiscountId,jdbcType=BIGINT}, #{userDiscountName,jdbcType=VARCHAR}, ", + "#{userDiscountType,jdbcType=INTEGER}, #{userDiscountPrice,jdbcType=DECIMAL}, ", + "#{userDiscountActualPrice,jdbcType=DECIMAL}, #{rebateActivityPart,jdbcType=BIT}, ", + "#{rebateActivityId,jdbcType=BIGINT}, #{rebateActivityNo,jdbcType=VARCHAR}, ", + "#{rebateActivityType,jdbcType=INTEGER}, #{rebateActivityPreferentialType,jdbcType=INTEGER}, ", + "#{rebateActivityPrice,jdbcType=DECIMAL}, #{rebateActivityActualPrice,jdbcType=DECIMAL}, ", + "#{tradeActualAmount,jdbcType=DECIMAL}, #{incomeAmount,jdbcType=DECIMAL}, ", + "#{accTradeNo,jdbcType=VARCHAR}, #{accSettleAmount,jdbcType=DECIMAL}, ", + "#{accMdiscountAmount,jdbcType=DECIMAL}, #{accDiscountAmount,jdbcType=DECIMAL}, ", + "#{shdFeeAmt,jdbcType=DECIMAL}, #{feeRate,jdbcType=DECIMAL}, ", + "#{settleAmount,jdbcType=DECIMAL}, #{settleDate,jdbcType=DATE}, ", + "#{accPaymentCode,jdbcType=VARCHAR}, #{cardType,jdbcType=VARCHAR}, ", + "#{status,jdbcType=INTEGER}, #{profitSharingStatus,jdbcType=BIT}, ", + "#{periodStatus,jdbcType=BIT}, #{periodBankCode,jdbcType=VARCHAR}, ", + "#{periodBankName,jdbcType=VARCHAR}, #{periodNum,jdbcType=INTEGER}, ", + "#{periodFeePaid,jdbcType=INTEGER}, #{periodMerPlatformFeePaidId,jdbcType=BIGINT}, ", + "#{payTime,jdbcType=TIMESTAMP}, #{timeoutExpress,jdbcType=INTEGER}, ", + "#{subject,jdbcType=VARCHAR}, #{payNotifyUrl,jdbcType=VARCHAR}, ", + "#{payCallbackUrl,jdbcType=VARCHAR}, #{attach,jdbcType=VARCHAR}, ", "#{specialField,jdbcType=VARCHAR}, #{refundType,jdbcType=INTEGER}, ", "#{refundPrice,jdbcType=DECIMAL}, #{createType,jdbcType=INTEGER}, ", "#{transType,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ", @@ -144,6 +152,7 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { @Result(column="qr_code_sn", property="qrCodeSn", jdbcType=JdbcType.VARCHAR), @Result(column="platform_type", property="platformType", jdbcType=JdbcType.INTEGER), @Result(column="platform_mer_no", property="platformMerNo", jdbcType=JdbcType.VARCHAR), + @Result(column="platform_pay_order_no", property="platformPayOrderNo", jdbcType=JdbcType.VARCHAR), @Result(column="platform_trade_no", property="platformTradeNo", jdbcType=JdbcType.VARCHAR), @Result(column="platform_log_no", property="platformLogNo", jdbcType=JdbcType.VARCHAR), @Result(column="platform_appid", property="platformAppid", jdbcType=JdbcType.VARCHAR), @@ -191,10 +200,17 @@ 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="period_fee_paid", property="periodFeePaid", jdbcType=JdbcType.INTEGER), + @Result(column="period_mer_platform_fee_paid_id", property="periodMerPlatformFeePaidId", jdbcType=JdbcType.BIGINT), @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), @Result(column="pay_notify_url", property="payNotifyUrl", jdbcType=JdbcType.VARCHAR), + @Result(column="pay_callback_url", property="payCallbackUrl", jdbcType=JdbcType.VARCHAR), @Result(column="attach", property="attach", jdbcType=JdbcType.VARCHAR), @Result(column="special_field", property="specialField", jdbcType=JdbcType.VARCHAR), @Result(column="refund_type", property="refundType", jdbcType=JdbcType.INTEGER), @@ -215,18 +231,20 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "select", "id, company_id, agent_id, salesman_id, salesman_name, mer_id, mer_name, mer_abbreviate, ", "mer_no, store_id, store_name, device_id, device_sn, qr_code_id, qr_code_sn, ", - "platform_type, platform_mer_no, platform_trade_no, platform_log_no, platform_appid, ", - "platform_rate, platform_commission, pay_appid, pay_user_id, pay_mode, out_trade_no, ", - "trade_amount, store_discount_satisfy, store_discount_id, store_discount_name, ", - "store_discount_type, store_discount_condition, store_discount_price, store_discount_final_cost_price, ", - "store_discount_actual_price, store_discount_profit_price, user_id, user_phone, ", - "user_discount_id, user_discount_name, user_discount_type, user_discount_price, ", - "user_discount_actual_price, rebate_activity_part, rebate_activity_id, rebate_activity_no, ", - "rebate_activity_type, rebate_activity_preferential_type, rebate_activity_price, ", - "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, ", + "platform_type, platform_mer_no, platform_pay_order_no, platform_trade_no, platform_log_no, ", + "platform_appid, platform_rate, platform_commission, pay_appid, pay_user_id, ", + "pay_mode, out_trade_no, trade_amount, store_discount_satisfy, store_discount_id, ", + "store_discount_name, store_discount_type, store_discount_condition, store_discount_price, ", + "store_discount_final_cost_price, store_discount_actual_price, store_discount_profit_price, ", + "user_id, user_phone, user_discount_id, user_discount_name, user_discount_type, ", + "user_discount_price, user_discount_actual_price, rebate_activity_part, rebate_activity_id, ", + "rebate_activity_no, rebate_activity_type, rebate_activity_preferential_type, ", + "rebate_activity_price, 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, period_status, period_bank_code, period_bank_name, ", + "period_num, period_fee_paid, period_mer_platform_fee_paid_id, pay_time, timeout_express, ", + "subject, pay_notify_url, pay_callback_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", @@ -250,6 +268,7 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { @Result(column="qr_code_sn", property="qrCodeSn", jdbcType=JdbcType.VARCHAR), @Result(column="platform_type", property="platformType", jdbcType=JdbcType.INTEGER), @Result(column="platform_mer_no", property="platformMerNo", jdbcType=JdbcType.VARCHAR), + @Result(column="platform_pay_order_no", property="platformPayOrderNo", jdbcType=JdbcType.VARCHAR), @Result(column="platform_trade_no", property="platformTradeNo", jdbcType=JdbcType.VARCHAR), @Result(column="platform_log_no", property="platformLogNo", jdbcType=JdbcType.VARCHAR), @Result(column="platform_appid", property="platformAppid", jdbcType=JdbcType.VARCHAR), @@ -297,10 +316,17 @@ 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="period_fee_paid", property="periodFeePaid", jdbcType=JdbcType.INTEGER), + @Result(column="period_mer_platform_fee_paid_id", property="periodMerPlatformFeePaidId", jdbcType=JdbcType.BIGINT), @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), @Result(column="pay_notify_url", property="payNotifyUrl", jdbcType=JdbcType.VARCHAR), + @Result(column="pay_callback_url", property="payCallbackUrl", jdbcType=JdbcType.VARCHAR), @Result(column="attach", property="attach", jdbcType=JdbcType.VARCHAR), @Result(column="special_field", property="specialField", jdbcType=JdbcType.VARCHAR), @Result(column="refund_type", property="refundType", jdbcType=JdbcType.INTEGER), @@ -344,6 +370,7 @@ public interface BsTradeOrderMapper extends BsTradeOrderMapperExt { "qr_code_sn = #{qrCodeSn,jdbcType=VARCHAR},", "platform_type = #{platformType,jdbcType=INTEGER},", "platform_mer_no = #{platformMerNo,jdbcType=VARCHAR},", + "platform_pay_order_no = #{platformPayOrderNo,jdbcType=VARCHAR},", "platform_trade_no = #{platformTradeNo,jdbcType=VARCHAR},", "platform_log_no = #{platformLogNo,jdbcType=VARCHAR},", "platform_appid = #{platformAppid,jdbcType=VARCHAR},", @@ -391,10 +418,17 @@ 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},", + "period_fee_paid = #{periodFeePaid,jdbcType=INTEGER},", + "period_mer_platform_fee_paid_id = #{periodMerPlatformFeePaidId,jdbcType=BIGINT},", "pay_time = #{payTime,jdbcType=TIMESTAMP},", "timeout_express = #{timeoutExpress,jdbcType=INTEGER},", "subject = #{subject,jdbcType=VARCHAR},", "pay_notify_url = #{payNotifyUrl,jdbcType=VARCHAR},", + "pay_callback_url = #{payCallbackUrl,jdbcType=VARCHAR},", "attach = #{attach,jdbcType=VARCHAR},", "special_field = #{specialField,jdbcType=VARCHAR},", "refund_type = #{refundType,jdbcType=INTEGER},", diff --git a/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java b/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java index e319a71..efc4f76 100644 --- a/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java +++ b/service/src/main/java/com/hfkj/dao/BsTradeOrderSqlProvider.java @@ -92,6 +92,10 @@ public class BsTradeOrderSqlProvider { sql.VALUES("platform_mer_no", "#{platformMerNo,jdbcType=VARCHAR}"); } + if (record.getPlatformPayOrderNo() != null) { + sql.VALUES("platform_pay_order_no", "#{platformPayOrderNo,jdbcType=VARCHAR}"); + } + if (record.getPlatformTradeNo() != null) { sql.VALUES("platform_trade_no", "#{platformTradeNo,jdbcType=VARCHAR}"); } @@ -280,6 +284,30 @@ 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.getPeriodFeePaid() != null) { + sql.VALUES("period_fee_paid", "#{periodFeePaid,jdbcType=INTEGER}"); + } + + if (record.getPeriodMerPlatformFeePaidId() != null) { + sql.VALUES("period_mer_platform_fee_paid_id", "#{periodMerPlatformFeePaidId,jdbcType=BIGINT}"); + } + if (record.getPayTime() != null) { sql.VALUES("pay_time", "#{payTime,jdbcType=TIMESTAMP}"); } @@ -296,6 +324,10 @@ public class BsTradeOrderSqlProvider { sql.VALUES("pay_notify_url", "#{payNotifyUrl,jdbcType=VARCHAR}"); } + if (record.getPayCallbackUrl() != null) { + sql.VALUES("pay_callback_url", "#{payCallbackUrl,jdbcType=VARCHAR}"); + } + if (record.getAttach() != null) { sql.VALUES("attach", "#{attach,jdbcType=VARCHAR}"); } @@ -374,6 +406,7 @@ public class BsTradeOrderSqlProvider { sql.SELECT("qr_code_sn"); sql.SELECT("platform_type"); sql.SELECT("platform_mer_no"); + sql.SELECT("platform_pay_order_no"); sql.SELECT("platform_trade_no"); sql.SELECT("platform_log_no"); sql.SELECT("platform_appid"); @@ -421,10 +454,17 @@ 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("period_fee_paid"); + sql.SELECT("period_mer_platform_fee_paid_id"); sql.SELECT("pay_time"); sql.SELECT("timeout_express"); sql.SELECT("subject"); sql.SELECT("pay_notify_url"); + sql.SELECT("pay_callback_url"); sql.SELECT("attach"); sql.SELECT("special_field"); sql.SELECT("refund_type"); @@ -523,6 +563,10 @@ public class BsTradeOrderSqlProvider { sql.SET("platform_mer_no = #{record.platformMerNo,jdbcType=VARCHAR}"); } + if (record.getPlatformPayOrderNo() != null) { + sql.SET("platform_pay_order_no = #{record.platformPayOrderNo,jdbcType=VARCHAR}"); + } + if (record.getPlatformTradeNo() != null) { sql.SET("platform_trade_no = #{record.platformTradeNo,jdbcType=VARCHAR}"); } @@ -711,6 +755,30 @@ 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.getPeriodFeePaid() != null) { + sql.SET("period_fee_paid = #{record.periodFeePaid,jdbcType=INTEGER}"); + } + + if (record.getPeriodMerPlatformFeePaidId() != null) { + sql.SET("period_mer_platform_fee_paid_id = #{record.periodMerPlatformFeePaidId,jdbcType=BIGINT}"); + } + if (record.getPayTime() != null) { sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); } @@ -727,6 +795,10 @@ public class BsTradeOrderSqlProvider { sql.SET("pay_notify_url = #{record.payNotifyUrl,jdbcType=VARCHAR}"); } + if (record.getPayCallbackUrl() != null) { + sql.SET("pay_callback_url = #{record.payCallbackUrl,jdbcType=VARCHAR}"); + } + if (record.getAttach() != null) { sql.SET("attach = #{record.attach,jdbcType=VARCHAR}"); } @@ -804,6 +876,7 @@ public class BsTradeOrderSqlProvider { sql.SET("qr_code_sn = #{record.qrCodeSn,jdbcType=VARCHAR}"); sql.SET("platform_type = #{record.platformType,jdbcType=INTEGER}"); sql.SET("platform_mer_no = #{record.platformMerNo,jdbcType=VARCHAR}"); + sql.SET("platform_pay_order_no = #{record.platformPayOrderNo,jdbcType=VARCHAR}"); sql.SET("platform_trade_no = #{record.platformTradeNo,jdbcType=VARCHAR}"); sql.SET("platform_log_no = #{record.platformLogNo,jdbcType=VARCHAR}"); sql.SET("platform_appid = #{record.platformAppid,jdbcType=VARCHAR}"); @@ -851,10 +924,17 @@ 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("period_fee_paid = #{record.periodFeePaid,jdbcType=INTEGER}"); + sql.SET("period_mer_platform_fee_paid_id = #{record.periodMerPlatformFeePaidId,jdbcType=BIGINT}"); sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); sql.SET("timeout_express = #{record.timeoutExpress,jdbcType=INTEGER}"); sql.SET("subject = #{record.subject,jdbcType=VARCHAR}"); sql.SET("pay_notify_url = #{record.payNotifyUrl,jdbcType=VARCHAR}"); + sql.SET("pay_callback_url = #{record.payCallbackUrl,jdbcType=VARCHAR}"); sql.SET("attach = #{record.attach,jdbcType=VARCHAR}"); sql.SET("special_field = #{record.specialField,jdbcType=VARCHAR}"); sql.SET("refund_type = #{record.refundType,jdbcType=INTEGER}"); @@ -942,6 +1022,10 @@ public class BsTradeOrderSqlProvider { sql.SET("platform_mer_no = #{platformMerNo,jdbcType=VARCHAR}"); } + if (record.getPlatformPayOrderNo() != null) { + sql.SET("platform_pay_order_no = #{platformPayOrderNo,jdbcType=VARCHAR}"); + } + if (record.getPlatformTradeNo() != null) { sql.SET("platform_trade_no = #{platformTradeNo,jdbcType=VARCHAR}"); } @@ -1130,6 +1214,30 @@ 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.getPeriodFeePaid() != null) { + sql.SET("period_fee_paid = #{periodFeePaid,jdbcType=INTEGER}"); + } + + if (record.getPeriodMerPlatformFeePaidId() != null) { + sql.SET("period_mer_platform_fee_paid_id = #{periodMerPlatformFeePaidId,jdbcType=BIGINT}"); + } + if (record.getPayTime() != null) { sql.SET("pay_time = #{payTime,jdbcType=TIMESTAMP}"); } @@ -1146,6 +1254,10 @@ public class BsTradeOrderSqlProvider { sql.SET("pay_notify_url = #{payNotifyUrl,jdbcType=VARCHAR}"); } + if (record.getPayCallbackUrl() != null) { + sql.SET("pay_callback_url = #{payCallbackUrl,jdbcType=VARCHAR}"); + } + if (record.getAttach() != null) { sql.SET("attach = #{attach,jdbcType=VARCHAR}"); } diff --git a/service/src/main/java/com/hfkj/entity/BsMer.java b/service/src/main/java/com/hfkj/entity/BsMer.java index a48b6df..6317228 100644 --- a/service/src/main/java/com/hfkj/entity/BsMer.java +++ b/service/src/main/java/com/hfkj/entity/BsMer.java @@ -18,6 +18,11 @@ public class BsMer implements Serializable { */ private Long id; + /** + * 业务类型 1:扫码 2:B2B收银台 + */ + private Integer businessType; + /** * 机构编号 */ @@ -203,6 +208,11 @@ public class BsMer implements Serializable { */ private Integer merStatus; + /** + * 开通分期状态 0:未开通 1:已开通 + */ + private Boolean periodStatus; + /** * 创建业务员id */ @@ -239,6 +249,14 @@ public class BsMer implements Serializable { this.id = id; } + public Integer getBusinessType() { + return businessType; + } + + public void setBusinessType(Integer businessType) { + this.businessType = businessType; + } + public String getOrgNo() { return orgNo; } @@ -535,6 +553,14 @@ public class BsMer implements Serializable { this.merStatus = merStatus; } + public Boolean getPeriodStatus() { + return periodStatus; + } + + public void setPeriodStatus(Boolean periodStatus) { + this.periodStatus = periodStatus; + } + public Long getCreateSalesmanId() { return createSalesmanId; } @@ -604,6 +630,7 @@ public class BsMer implements Serializable { } BsMer other = (BsMer) that; return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getBusinessType() == null ? other.getBusinessType() == null : this.getBusinessType().equals(other.getBusinessType())) && (this.getOrgNo() == null ? other.getOrgNo() == null : this.getOrgNo().equals(other.getOrgNo())) && (this.getOrgName() == null ? other.getOrgName() == null : this.getOrgName().equals(other.getOrgName())) && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId())) @@ -641,6 +668,7 @@ public class BsMer implements Serializable { && (this.getLarIdCardPeriodEnd() == null ? other.getLarIdCardPeriodEnd() == null : this.getLarIdCardPeriodEnd().equals(other.getLarIdCardPeriodEnd())) && (this.getCompleteStatus() == null ? other.getCompleteStatus() == null : this.getCompleteStatus().equals(other.getCompleteStatus())) && (this.getMerStatus() == null ? other.getMerStatus() == null : this.getMerStatus().equals(other.getMerStatus())) + && (this.getPeriodStatus() == null ? other.getPeriodStatus() == null : this.getPeriodStatus().equals(other.getPeriodStatus())) && (this.getCreateSalesmanId() == null ? other.getCreateSalesmanId() == null : this.getCreateSalesmanId().equals(other.getCreateSalesmanId())) && (this.getCreateSalesmanName() == null ? other.getCreateSalesmanName() == null : this.getCreateSalesmanName().equals(other.getCreateSalesmanName())) && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) @@ -655,6 +683,7 @@ public class BsMer implements Serializable { final int prime = 31; int result = 1; result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getBusinessType() == null) ? 0 : getBusinessType().hashCode()); result = prime * result + ((getOrgNo() == null) ? 0 : getOrgNo().hashCode()); result = prime * result + ((getOrgName() == null) ? 0 : getOrgName().hashCode()); result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode()); @@ -692,6 +721,7 @@ public class BsMer implements Serializable { result = prime * result + ((getLarIdCardPeriodEnd() == null) ? 0 : getLarIdCardPeriodEnd().hashCode()); result = prime * result + ((getCompleteStatus() == null) ? 0 : getCompleteStatus().hashCode()); result = prime * result + ((getMerStatus() == null) ? 0 : getMerStatus().hashCode()); + result = prime * result + ((getPeriodStatus() == null) ? 0 : getPeriodStatus().hashCode()); result = prime * result + ((getCreateSalesmanId() == null) ? 0 : getCreateSalesmanId().hashCode()); result = prime * result + ((getCreateSalesmanName() == null) ? 0 : getCreateSalesmanName().hashCode()); result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); @@ -709,6 +739,7 @@ public class BsMer implements Serializable { sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); + sb.append(", businessType=").append(businessType); sb.append(", orgNo=").append(orgNo); sb.append(", orgName=").append(orgName); sb.append(", companyId=").append(companyId); @@ -746,6 +777,7 @@ public class BsMer implements Serializable { sb.append(", larIdCardPeriodEnd=").append(larIdCardPeriodEnd); sb.append(", completeStatus=").append(completeStatus); sb.append(", merStatus=").append(merStatus); + sb.append(", periodStatus=").append(periodStatus); sb.append(", createSalesmanId=").append(createSalesmanId); sb.append(", createSalesmanName=").append(createSalesmanName); sb.append(", createTime=").append(createTime); diff --git a/service/src/main/java/com/hfkj/entity/BsMerExample.java b/service/src/main/java/com/hfkj/entity/BsMerExample.java index 4834734..2b07edd 100644 --- a/service/src/main/java/com/hfkj/entity/BsMerExample.java +++ b/service/src/main/java/com/hfkj/entity/BsMerExample.java @@ -185,6 +185,66 @@ public class BsMerExample { return (Criteria) this; } + public Criteria andBusinessTypeIsNull() { + addCriterion("business_type is null"); + return (Criteria) this; + } + + public Criteria andBusinessTypeIsNotNull() { + addCriterion("business_type is not null"); + return (Criteria) this; + } + + public Criteria andBusinessTypeEqualTo(Integer value) { + addCriterion("business_type =", value, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeNotEqualTo(Integer value) { + addCriterion("business_type <>", value, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeGreaterThan(Integer value) { + addCriterion("business_type >", value, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeGreaterThanOrEqualTo(Integer value) { + addCriterion("business_type >=", value, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeLessThan(Integer value) { + addCriterion("business_type <", value, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeLessThanOrEqualTo(Integer value) { + addCriterion("business_type <=", value, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeIn(List values) { + addCriterion("business_type in", values, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeNotIn(List values) { + addCriterion("business_type not in", values, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeBetween(Integer value1, Integer value2) { + addCriterion("business_type between", value1, value2, "businessType"); + return (Criteria) this; + } + + public Criteria andBusinessTypeNotBetween(Integer value1, Integer value2) { + addCriterion("business_type not between", value1, value2, "businessType"); + return (Criteria) this; + } + public Criteria andOrgNoIsNull() { addCriterion("org_no is null"); return (Criteria) this; @@ -2675,6 +2735,66 @@ public class BsMerExample { 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 andCreateSalesmanIdIsNull() { addCriterion("create_salesman_id is null"); return (Criteria) this; diff --git a/service/src/main/java/com/hfkj/entity/BsTradeOrder.java b/service/src/main/java/com/hfkj/entity/BsTradeOrder.java index 52c5624..6f97d6b 100644 --- a/service/src/main/java/com/hfkj/entity/BsTradeOrder.java +++ b/service/src/main/java/com/hfkj/entity/BsTradeOrder.java @@ -99,6 +99,11 @@ public class BsTradeOrder implements Serializable { */ private String platformMerNo; + /** + * 平台支付订单号 + */ + private String platformPayOrderNo; + /** * 平台流水号 */ @@ -338,6 +343,36 @@ public class BsTradeOrder implements Serializable { */ private Boolean profitSharingStatus; + /** + * 是否分期 0:否 1:是 + */ + private Boolean periodStatus; + + /** + * 分期银行代码 + */ + private String periodBankCode; + + /** + * 分期银行名称 + */ + private String periodBankName; + + /** + * 分期期数 + */ + private Integer periodNum; + + /** + * 贴息方式 1:商户贴息 2:用户贴息 3:商户用户各一半 + */ + private Integer periodFeePaid; + + /** + * 贴息活动id + */ + private Long periodMerPlatformFeePaidId; + /** * 支付时间 */ @@ -358,6 +393,11 @@ public class BsTradeOrder implements Serializable { */ private String payNotifyUrl; + /** + * 支付后返回的商户网页跳转地址 + */ + private String payCallbackUrl; + /** * 附加域 */ @@ -384,7 +424,7 @@ public class BsTradeOrder implements Serializable { private Integer createType; /** - * 接入方式 JSAPI,NATIVE + * 接入方式 JSAPI,NATIVE,COUNTER */ private String transType; @@ -552,6 +592,14 @@ public class BsTradeOrder implements Serializable { this.platformMerNo = platformMerNo; } + public String getPlatformPayOrderNo() { + return platformPayOrderNo; + } + + public void setPlatformPayOrderNo(String platformPayOrderNo) { + this.platformPayOrderNo = platformPayOrderNo; + } + public String getPlatformTradeNo() { return platformTradeNo; } @@ -928,6 +976,54 @@ 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 Integer getPeriodFeePaid() { + return periodFeePaid; + } + + public void setPeriodFeePaid(Integer periodFeePaid) { + this.periodFeePaid = periodFeePaid; + } + + public Long getPeriodMerPlatformFeePaidId() { + return periodMerPlatformFeePaidId; + } + + public void setPeriodMerPlatformFeePaidId(Long periodMerPlatformFeePaidId) { + this.periodMerPlatformFeePaidId = periodMerPlatformFeePaidId; + } + public Date getPayTime() { return payTime; } @@ -960,6 +1056,14 @@ public class BsTradeOrder implements Serializable { this.payNotifyUrl = payNotifyUrl; } + public String getPayCallbackUrl() { + return payCallbackUrl; + } + + public void setPayCallbackUrl(String payCallbackUrl) { + this.payCallbackUrl = payCallbackUrl; + } + public String getAttach() { return attach; } @@ -1093,6 +1197,7 @@ public class BsTradeOrder implements Serializable { && (this.getQrCodeSn() == null ? other.getQrCodeSn() == null : this.getQrCodeSn().equals(other.getQrCodeSn())) && (this.getPlatformType() == null ? other.getPlatformType() == null : this.getPlatformType().equals(other.getPlatformType())) && (this.getPlatformMerNo() == null ? other.getPlatformMerNo() == null : this.getPlatformMerNo().equals(other.getPlatformMerNo())) + && (this.getPlatformPayOrderNo() == null ? other.getPlatformPayOrderNo() == null : this.getPlatformPayOrderNo().equals(other.getPlatformPayOrderNo())) && (this.getPlatformTradeNo() == null ? other.getPlatformTradeNo() == null : this.getPlatformTradeNo().equals(other.getPlatformTradeNo())) && (this.getPlatformLogNo() == null ? other.getPlatformLogNo() == null : this.getPlatformLogNo().equals(other.getPlatformLogNo())) && (this.getPlatformAppid() == null ? other.getPlatformAppid() == null : this.getPlatformAppid().equals(other.getPlatformAppid())) @@ -1140,10 +1245,17 @@ 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.getPeriodFeePaid() == null ? other.getPeriodFeePaid() == null : this.getPeriodFeePaid().equals(other.getPeriodFeePaid())) + && (this.getPeriodMerPlatformFeePaidId() == null ? other.getPeriodMerPlatformFeePaidId() == null : this.getPeriodMerPlatformFeePaidId().equals(other.getPeriodMerPlatformFeePaidId())) && (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())) && (this.getPayNotifyUrl() == null ? other.getPayNotifyUrl() == null : this.getPayNotifyUrl().equals(other.getPayNotifyUrl())) + && (this.getPayCallbackUrl() == null ? other.getPayCallbackUrl() == null : this.getPayCallbackUrl().equals(other.getPayCallbackUrl())) && (this.getAttach() == null ? other.getAttach() == null : this.getAttach().equals(other.getAttach())) && (this.getSpecialField() == null ? other.getSpecialField() == null : this.getSpecialField().equals(other.getSpecialField())) && (this.getRefundType() == null ? other.getRefundType() == null : this.getRefundType().equals(other.getRefundType())) @@ -1180,6 +1292,7 @@ public class BsTradeOrder implements Serializable { result = prime * result + ((getQrCodeSn() == null) ? 0 : getQrCodeSn().hashCode()); result = prime * result + ((getPlatformType() == null) ? 0 : getPlatformType().hashCode()); result = prime * result + ((getPlatformMerNo() == null) ? 0 : getPlatformMerNo().hashCode()); + result = prime * result + ((getPlatformPayOrderNo() == null) ? 0 : getPlatformPayOrderNo().hashCode()); result = prime * result + ((getPlatformTradeNo() == null) ? 0 : getPlatformTradeNo().hashCode()); result = prime * result + ((getPlatformLogNo() == null) ? 0 : getPlatformLogNo().hashCode()); result = prime * result + ((getPlatformAppid() == null) ? 0 : getPlatformAppid().hashCode()); @@ -1227,10 +1340,17 @@ 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 + ((getPeriodFeePaid() == null) ? 0 : getPeriodFeePaid().hashCode()); + result = prime * result + ((getPeriodMerPlatformFeePaidId() == null) ? 0 : getPeriodMerPlatformFeePaidId().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()); result = prime * result + ((getPayNotifyUrl() == null) ? 0 : getPayNotifyUrl().hashCode()); + result = prime * result + ((getPayCallbackUrl() == null) ? 0 : getPayCallbackUrl().hashCode()); result = prime * result + ((getAttach() == null) ? 0 : getAttach().hashCode()); result = prime * result + ((getSpecialField() == null) ? 0 : getSpecialField().hashCode()); result = prime * result + ((getRefundType() == null) ? 0 : getRefundType().hashCode()); @@ -1270,6 +1390,7 @@ public class BsTradeOrder implements Serializable { sb.append(", qrCodeSn=").append(qrCodeSn); sb.append(", platformType=").append(platformType); sb.append(", platformMerNo=").append(platformMerNo); + sb.append(", platformPayOrderNo=").append(platformPayOrderNo); sb.append(", platformTradeNo=").append(platformTradeNo); sb.append(", platformLogNo=").append(platformLogNo); sb.append(", platformAppid=").append(platformAppid); @@ -1317,10 +1438,17 @@ 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(", periodFeePaid=").append(periodFeePaid); + sb.append(", periodMerPlatformFeePaidId=").append(periodMerPlatformFeePaidId); sb.append(", payTime=").append(payTime); sb.append(", timeoutExpress=").append(timeoutExpress); sb.append(", subject=").append(subject); sb.append(", payNotifyUrl=").append(payNotifyUrl); + sb.append(", payCallbackUrl=").append(payCallbackUrl); sb.append(", attach=").append(attach); sb.append(", specialField=").append(specialField); sb.append(", refundType=").append(refundType); diff --git a/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java b/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java index 640eb88..2342e7e 100644 --- a/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java +++ b/service/src/main/java/com/hfkj/entity/BsTradeOrderExample.java @@ -1253,6 +1253,76 @@ public class BsTradeOrderExample { return (Criteria) this; } + public Criteria andPlatformPayOrderNoIsNull() { + addCriterion("platform_pay_order_no is null"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoIsNotNull() { + addCriterion("platform_pay_order_no is not null"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoEqualTo(String value) { + addCriterion("platform_pay_order_no =", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoNotEqualTo(String value) { + addCriterion("platform_pay_order_no <>", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoGreaterThan(String value) { + addCriterion("platform_pay_order_no >", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoGreaterThanOrEqualTo(String value) { + addCriterion("platform_pay_order_no >=", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoLessThan(String value) { + addCriterion("platform_pay_order_no <", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoLessThanOrEqualTo(String value) { + addCriterion("platform_pay_order_no <=", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoLike(String value) { + addCriterion("platform_pay_order_no like", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoNotLike(String value) { + addCriterion("platform_pay_order_no not like", value, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoIn(List values) { + addCriterion("platform_pay_order_no in", values, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoNotIn(List values) { + addCriterion("platform_pay_order_no not in", values, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoBetween(String value1, String value2) { + addCriterion("platform_pay_order_no between", value1, value2, "platformPayOrderNo"); + return (Criteria) this; + } + + public Criteria andPlatformPayOrderNoNotBetween(String value1, String value2) { + addCriterion("platform_pay_order_no not between", value1, value2, "platformPayOrderNo"); + return (Criteria) this; + } + public Criteria andPlatformTradeNoIsNull() { addCriterion("platform_trade_no is null"); return (Criteria) this; @@ -4213,6 +4283,386 @@ 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 andPeriodFeePaidIsNull() { + addCriterion("period_fee_paid is null"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidIsNotNull() { + addCriterion("period_fee_paid is not null"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidEqualTo(Integer value) { + addCriterion("period_fee_paid =", value, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidNotEqualTo(Integer value) { + addCriterion("period_fee_paid <>", value, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidGreaterThan(Integer value) { + addCriterion("period_fee_paid >", value, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidGreaterThanOrEqualTo(Integer value) { + addCriterion("period_fee_paid >=", value, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidLessThan(Integer value) { + addCriterion("period_fee_paid <", value, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidLessThanOrEqualTo(Integer value) { + addCriterion("period_fee_paid <=", value, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidIn(List values) { + addCriterion("period_fee_paid in", values, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidNotIn(List values) { + addCriterion("period_fee_paid not in", values, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidBetween(Integer value1, Integer value2) { + addCriterion("period_fee_paid between", value1, value2, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodFeePaidNotBetween(Integer value1, Integer value2) { + addCriterion("period_fee_paid not between", value1, value2, "periodFeePaid"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdIsNull() { + addCriterion("period_mer_platform_fee_paid_id is null"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdIsNotNull() { + addCriterion("period_mer_platform_fee_paid_id is not null"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdEqualTo(Long value) { + addCriterion("period_mer_platform_fee_paid_id =", value, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdNotEqualTo(Long value) { + addCriterion("period_mer_platform_fee_paid_id <>", value, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdGreaterThan(Long value) { + addCriterion("period_mer_platform_fee_paid_id >", value, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdGreaterThanOrEqualTo(Long value) { + addCriterion("period_mer_platform_fee_paid_id >=", value, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdLessThan(Long value) { + addCriterion("period_mer_platform_fee_paid_id <", value, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdLessThanOrEqualTo(Long value) { + addCriterion("period_mer_platform_fee_paid_id <=", value, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdIn(List values) { + addCriterion("period_mer_platform_fee_paid_id in", values, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdNotIn(List values) { + addCriterion("period_mer_platform_fee_paid_id not in", values, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdBetween(Long value1, Long value2) { + addCriterion("period_mer_platform_fee_paid_id between", value1, value2, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + + public Criteria andPeriodMerPlatformFeePaidIdNotBetween(Long value1, Long value2) { + addCriterion("period_mer_platform_fee_paid_id not between", value1, value2, "periodMerPlatformFeePaidId"); + return (Criteria) this; + } + public Criteria andPayTimeIsNull() { addCriterion("pay_time is null"); return (Criteria) this; @@ -4473,6 +4923,76 @@ public class BsTradeOrderExample { return (Criteria) this; } + public Criteria andPayCallbackUrlIsNull() { + addCriterion("pay_callback_url is null"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlIsNotNull() { + addCriterion("pay_callback_url is not null"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlEqualTo(String value) { + addCriterion("pay_callback_url =", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlNotEqualTo(String value) { + addCriterion("pay_callback_url <>", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlGreaterThan(String value) { + addCriterion("pay_callback_url >", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlGreaterThanOrEqualTo(String value) { + addCriterion("pay_callback_url >=", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlLessThan(String value) { + addCriterion("pay_callback_url <", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlLessThanOrEqualTo(String value) { + addCriterion("pay_callback_url <=", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlLike(String value) { + addCriterion("pay_callback_url like", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlNotLike(String value) { + addCriterion("pay_callback_url not like", value, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlIn(List values) { + addCriterion("pay_callback_url in", values, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlNotIn(List values) { + addCriterion("pay_callback_url not in", values, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlBetween(String value1, String value2) { + addCriterion("pay_callback_url between", value1, value2, "payCallbackUrl"); + return (Criteria) this; + } + + public Criteria andPayCallbackUrlNotBetween(String value1, String value2) { + addCriterion("pay_callback_url not between", value1, value2, "payCallbackUrl"); + return (Criteria) this; + } + public Criteria andAttachIsNull() { addCriterion("attach is null"); return (Criteria) this; diff --git a/service/src/main/java/com/hfkj/openapi/v1/model/request/RequestTradeCounterModel.java b/service/src/main/java/com/hfkj/openapi/v1/model/request/RequestTradeCounterModel.java new file mode 100644 index 0000000..ce685bf --- /dev/null +++ b/service/src/main/java/com/hfkj/openapi/v1/model/request/RequestTradeCounterModel.java @@ -0,0 +1,90 @@ +package com.hfkj.openapi.v1.model.request; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.DecimalMax; +import javax.validation.constraints.DecimalMin; +import javax.validation.constraints.NotBlank; + +/** + * 请求交易收银台模型 + * @className: TradePreorderModel + * @author: HuRui + * @date: 2023/5/23 + **/ +@Data +public class RequestTradeCounterModel { + + /** + * 商户号 + */ + @NotBlank(message = "商户号必填项") + private String merchantNo; + + /** + * 商户交易单号 + */ + @NotBlank(message = "商户交易单号必填项") + @Length(min = 6, max = 50, message = "商户交易单号长度限制6至50位字符串长度") + private String outTradeNo; + + /** + * 交易金额 + */ + @DecimalMax(value = "99999999", message = "交易最大金额99999999元") + @DecimalMin(value = "0.01", message = "交易最小金额0.01元") + @NotBlank(message = "交易金额必填项") + private String totalAmount; + + /** + * 订单标题 + */ + @Length(max = 30, message = "订单标题长度限制在30字符以内") + private String subject; + + /** + * 网页跳转地址 + */ + @Length(max = 300, message = "支付成功后网页跳转地址长度限制在300字符以内") + private String callbackUrl; + + /** + * 通知地址 + */ + @Length(max = 300, message = "通知地址长度限制在300字符以内") + private String notifyUrl; + + /** + * 用户id + */ + private String userId; + + /** + * 子商户公众账号ID + */ + private String subAppid; + + /** + * 预下单有效时间 + */ + @Range(min = 1, max = 60,message = "预下单有效期可设置在1至60分钟之内") + private Integer timeoutExpress; + + /** + * 附加域 + */ + @Length(max = 128, message = "附加域限制在128位字符以内") + private String attach; + + @Length(max = 20, message = "特殊字段限制20位字符以内") + private String specialField; + + /** + * 签名参数 + */ + @NotBlank(message = "签名必填项") + private String sign; + +} diff --git a/service/src/main/java/com/hfkj/openapi/v1/service/OpenApiTradeOrderService.java b/service/src/main/java/com/hfkj/openapi/v1/service/OpenApiTradeOrderService.java index 8532618..2eeecbe 100644 --- a/service/src/main/java/com/hfkj/openapi/v1/service/OpenApiTradeOrderService.java +++ b/service/src/main/java/com/hfkj/openapi/v1/service/OpenApiTradeOrderService.java @@ -24,6 +24,12 @@ public interface OpenApiTradeOrderService { */ Map createOrder(BsTradeOrder tradeOrder) throws Exception; + /** + * 收银台订单 + * @return + */ + Map counterCreateOrder(BsTradeOrder tradeOrder) throws Exception; + /** * 根据交易流水查询订单 * @param outTradeNo diff --git a/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java b/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java index 1b6a7e0..58b49ba 100644 --- a/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java +++ b/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java @@ -92,6 +92,33 @@ public class OpenApiTradeOrderServiceImpl implements OpenApiTradeOrderService { return preorder; } + @Override + @Transactional(propagation= Propagation.REQUIRES_NEW) + public Map counterCreateOrder(BsTradeOrder tradeOrder) throws Exception { + bsTradeOrderService.editOrder(tradeOrder); + + BsMerPlatformNo platform = merPlatformNoService.getCurrentPlatform(tradeOrder.getMerId()); + if (platform == null) { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未配置支付渠道"); + } + Map counter; + if (platform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { + counter = laKaLaTradeService.counterOrderCreate(tradeOrder.getOutTradeNo()); + + } else { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未知的支付渠道"); + } + + counter.put("merchantNo", tradeOrder.getMerNo()); + counter.put("outTradeNo", tradeOrder.getOutTradeNo()); + counter.put("counterUrl", MapUtils.getString(counter, "counterUrl")); + + counter.remove("platformType"); + counter.remove("order"); + counter.put("sign", SignatureUtil.createSign(counter, merKeyService.getKeyByMerNo(tradeOrder.getMerNo()))); + return counter; + } + @Override public BsTradeOrder getOrderByOutTradeNo(String outTradeNo) { return bsTradeOrderService.getOrderByOutTradeNo(outTradeNo); diff --git a/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java b/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java index 5d1acf5..75df014 100644 --- a/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java +++ b/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java @@ -83,15 +83,15 @@ public class SignatureUtil { } public static void main(String[] args) throws Exception { - /*String paramStr = "{\n" + + String paramStr = "{\n" + " \"merchantNo\": \"2023121813322612707\",\n" + - " \"outTradeNo\": \"ZF1130202312190004\",\n" + + " \"outTradeNo\": \"ZF1130202312190012\",\n" + " \"payMode\": \"ALIPAY\",\n" + " \"totalAmount\": 1,\n" + " \"transType\": \"NATIVE\",\n" + " \"profitSharing\": 1,\n" + " \"specialField\": \"测试\"" + - "}";*/ + "}"; /* String paramStr = "{\n" + " \"merchantNo\": \"2023121813322612707\",\n" + " \"outSeparateNo\": \"1530202305190001\",\n" + @@ -112,16 +112,19 @@ public class SignatureUtil { " \"outSeparateNo\": \"1530202305190001\"" + "}";*/ - String paramStr = "{\n" + + /* String paramStr = "{\n" + " \"merchantNo\": \"2023121813322612707\",\n" + " \"outTradeNo\": \"ZF1130202312190004\",\n" + " \"refundAmount\": \"1\",\n" + " \"refundReason\": \"测试退款\",\n" + " \"refundTradeNo\": \"1170202312190001\"" + - "}"; - + "}";*/ String sign = createSign(JSONObject.parseObject(paramStr), "7ub4JCbyExtW4ragz6FO6bGkVnuV7cUp"); System.out.println(sign); + + JSONObject object = JSONObject.parseObject(paramStr); + object.put("sign", sign); + System.out.println(object); } } diff --git a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java index 6893f7c..4bbb453 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java @@ -87,9 +87,13 @@ public class BsTradeOrderRefundServiceImpl implements BsTradeOrderRefundService Map refund = new HashMap<>(); if (tradeOrderRefund.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { - refund = laKaLaTradeService.refund(tradeOrderRefund.getRefundNo(), tradeOrderRefund.getRefundAmount()); - refundStatus = true; - + if (tradeOrder.getPayMode().equals(TradeOrderPayModeEnum.QUICK.getCode())) { + refund = laKaLaTradeService.counterRefund(tradeOrderRefund.getRefundNo(), tradeOrderRefund.getRefundAmount()); + refundStatus = true; + } else { + refund = laKaLaTradeService.refund(tradeOrderRefund.getRefundNo(), tradeOrderRefund.getRefundAmount()); + refundStatus = true; + } } else if (tradeOrderRefund.getPlatformType().equals(PlatformTypeEnum.type3.getNumber())) { refund = ccbTradeService.refund(tradeOrderRefund.getRefundNo(), tradeOrderRefund.getRefundAmount()); refundStatus = true; 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..de9e30b 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java @@ -412,6 +412,9 @@ public class BsTradeOrderServiceImpl implements BsTradeOrderService { tradeOrder.setStatus(TradeOrderStatusEnum.status3.getNumber()); tradeOrder.setPayTime(new Date()); + if (StringUtils.isNotBlank(MapUtils.getString(other, "platform_pay_order_no"))) { + tradeOrder.setPlatformPayOrderNo(MapUtils.getString(other, "platform_pay_order_no")); + } if (StringUtils.isNotBlank(MapUtils.getString(other, "log_no"))) { tradeOrder.setPlatformLogNo(MapUtils.getString(other, "log_no")); } diff --git a/service/src/main/java/com/hfkj/sysenum/MerBusinessType.java b/service/src/main/java/com/hfkj/sysenum/MerBusinessType.java new file mode 100644 index 0000000..65c105d --- /dev/null +++ b/service/src/main/java/com/hfkj/sysenum/MerBusinessType.java @@ -0,0 +1,49 @@ +package com.hfkj.sysenum; + +import java.util.Objects; + +/** + * 商户业务类型 + * @author hurui + */ +public enum MerBusinessType { + type1(1, "扫码"), + type2(2, "BSB收银台"), + ; + + private Integer number; + + private String name; + + + MerBusinessType(int number, String name) { + this.number = number; + this.name = name; + } + + public static MerBusinessType getDataByNumber(Integer number) { + for (MerBusinessType ele : values()) { + if (Objects.equals(number,ele.getNumber())) { + return ele; + } + } + return null; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java b/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java index cc9065a..c15f0ce 100644 --- a/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java +++ b/service/src/main/java/com/hfkj/sysenum/TradeOrderPayModeEnum.java @@ -10,7 +10,9 @@ public enum TradeOrderPayModeEnum { WECHAT("WECHAT", "微信"), ALIPAY("ALIPAY", "支付宝"), UQRCODEPAY("UQRCODEPAY", "银联"), - DRAGON("DRAGON", "【建行】龙支付") + DRAGON("DRAGON", "【建行】龙支付"), + QUICK("QUICK", "快捷支付"), + UNKNOWN("UNKNOWN", "未知"), ; private String code; diff --git a/service/src/main/resources/dev/commonConfig.properties b/service/src/main/resources/dev/commonConfig.properties index a90b75d..3e9947e 100644 --- a/service/src/main/resources/dev/commonConfig.properties +++ b/service/src/main/resources/dev/commonConfig.properties @@ -13,10 +13,13 @@ qr_code_url=https://gratia-pay.dctpay.com/filesystem/payQrCode/ lkl_request_url=https://test.wsmsd.cn/sit lkl_org_code= -lkl_v3_appid=OP00000392 -lkl_v3_serial_no=00dfba8194c41b84cf +#lkl_v3_appid=OP00000392 +#lkl_v3_serial_no=00dfba8194c41b84cf lkl_v3_private_key=/home/project/gratia-pay/cert/lakala/v3/OP00000003_private_key.text +lkl_v3_appid=OP00000003 +lkl_v3_serial_no=00dfba8194c41b84cf + lkl_v2_appid=OP00000392 lkl_v2_serial_no=00dfba8194c41b84cf lkl_v2_private_key=/home/project/gratia-pay/cert/lakala/v2/OP00000003_private_key.text