From 8533a66b0c8e29a7a8bfa5ee699f4744d4b7f81d Mon Sep 17 00:00:00 2001 From: yuanye <418471657@qq.com> Date: Wed, 5 Mar 2025 16:16:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=94=A8=E6=88=B7=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bweb/controller/TestController.java | 3 +- .../controller/goods/GoodsTypeController.java | 3 +- .../order/controller/OrderPayController.java | 24 ++++ .../service/hlt/HltCardRefundService.java | 115 ++---------------- .../hlt/HuiLianTongUnionCardService.java | 1 + .../BsOrderAfterSalesApplyServiceImpl.java | 7 +- .../order/impl/BsOrderRefundServiceImpl.java | 2 +- .../BsUserPayPasswordController.java | 4 +- 8 files changed, 49 insertions(+), 110 deletions(-) diff --git a/bweb/src/main/java/com/bweb/controller/TestController.java b/bweb/src/main/java/com/bweb/controller/TestController.java index 94bc4f8..22f8815 100644 --- a/bweb/src/main/java/com/bweb/controller/TestController.java +++ b/bweb/src/main/java/com/bweb/controller/TestController.java @@ -473,8 +473,7 @@ public class TestController { @RequestMapping(value="/queryPkDetailByStockCode",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询券包使用情况") - public ResponseData queryPkDetailByStockCode( - @RequestParam(value = "discountPkStockCode", required = false) String discountPkStockCode) { + public ResponseData queryPkDetailByStockCode(@RequestParam(value = "discountPkStockCode", required = false) String discountPkStockCode) { try { Map map = new HashMap<>(); diff --git a/bweb/src/main/java/com/bweb/controller/goods/GoodsTypeController.java b/bweb/src/main/java/com/bweb/controller/goods/GoodsTypeController.java index b4f6b40..bc65419 100644 --- a/bweb/src/main/java/com/bweb/controller/goods/GoodsTypeController.java +++ b/bweb/src/main/java/com/bweb/controller/goods/GoodsTypeController.java @@ -84,11 +84,12 @@ public class GoodsTypeController { @RequestMapping(value="/getList",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询列表") - public ResponseData getList() { + public ResponseData getList(@RequestParam(value = "title" , required = false) String title) { try { Map map = new HashMap<>(); map.put("status" , 1); + map.put("title", title); List list = goodsTypeService.getList(map); diff --git a/order/src/main/java/com/order/controller/OrderPayController.java b/order/src/main/java/com/order/controller/OrderPayController.java index cbf93d6..9ca7ed5 100644 --- a/order/src/main/java/com/order/controller/OrderPayController.java +++ b/order/src/main/java/com/order/controller/OrderPayController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.SysCode; +import com.hfkj.common.security.AESEncodeUtil; import com.hfkj.common.security.UserCenter; import com.hfkj.common.utils.ResponseMsgUtil; import com.hfkj.config.CommonSysConst; @@ -24,6 +25,7 @@ import com.hfkj.service.pay.HuiPayService; import com.hfkj.service.pay.huift.TradeService; import com.hfkj.service.pay.huift.config.HuiftConfig; import com.hfkj.service.user.BsUserLoginLogService; +import com.hfkj.service.user.BsUserPayPasswordService; import com.hfkj.sysenum.UserCardTypeEnum; import com.hfkj.sysenum.mer.PayPlatformEnum; import com.hfkj.sysenum.order.OrderPayChannelEnum; @@ -73,6 +75,8 @@ public class OrderPayController { @Resource private GoodsVpdService goodsVpdService; + @Resource + private BsUserPayPasswordService userPayPasswordService; @Resource private JdService jdService; @@ -256,15 +260,35 @@ public class OrderPayController { } if (body == null || StringUtils.isBlank(body.getString("orderNo")) + || StringUtils.isBlank(body.getString("password")) || StringUtils.isBlank(body.getString("cardNo"))) { throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } + String password = body.getString("password"); // 查询用户与卡号的关系 BsUserCard card = userCardService.getCard(userSessionObject.getUser().getId(), body.getString("cardNo")); if (card == null) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未绑定卡号"); } + + + // 查询用户支付密码 + BsUserPayPassword userPayPassword = userPayPasswordService.getDetailByUser(userSessionObject.getUser().getId()); + if (userPayPassword == null) { + log.error("cardPay error!", "未设置支付密码"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未设置支付密码"); + } + if (StringUtils.isBlank(password)) { + log.error("cardPay error!", "未输入支付密码"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未输入支付密码"); + } + // 支付密码是否正确 + if (!AESEncodeUtil.aesEncrypt(password).equals(userPayPassword.getPassword())) { + log.error("cardPay error!", "支付密码错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "支付密码错误"); + } + // 查询订单 OrderModel order = orderService.getDetail(body.getString("orderNo")); if (!order.getOrderStatus().equals(OrderStatusEnum.status1.getCode())) { diff --git a/service/src/main/java/com/hfkj/service/hlt/HltCardRefundService.java b/service/src/main/java/com/hfkj/service/hlt/HltCardRefundService.java index 39e8d80..9e20d53 100644 --- a/service/src/main/java/com/hfkj/service/hlt/HltCardRefundService.java +++ b/service/src/main/java/com/hfkj/service/hlt/HltCardRefundService.java @@ -36,117 +36,28 @@ import java.util.stream.Collectors; **/ @Component public class HltCardRefundService { - @Resource - private BsHltCardRecordService hltCardRecordService; @Resource private BsOrderRefundService orderRefundService; - @Resource - private BsMerPayConfigService merPayConfigService; - @Resource - private BsOrderService orderService; /** * 退款 * @param orderRefund * @return */ - public boolean refund(BsOrderRefund orderRefund) { - // 查询系统订单号 - BsHltCardRecord oldCardRecord = hltCardRecordService.getNewPayOrderNo(orderRefund.getOrderNo()); - if (oldCardRecord == null) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到最新的支付订单"); - } - try { - // 订单退款 - JSONObject refundObj = HuiLianTongUnionCardService.refund(orderRefund.getRefundOrderNo(), oldCardRecord.getPayOrderNo()); - if (!refundObj.getString("respCode").equals("0000")) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, refundObj.getString("respMessage")); - } - JSONObject consumptionResult = HuiLianTongUnionCardService.resolveResponse(refundObj.getString("data")); - if (consumptionResult.getBoolean("success") != true) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "交易失败!"+consumptionResult.getString("message")); - } - oldCardRecord.setRefundTime(new Date()); - oldCardRecord.setPayStatus(HltCardRecordPayStatusEnum.status3.getCode()); - hltCardRecordService.update(oldCardRecord); - - orderRefund.setRefundSerialNo(consumptionResult.getString("orderId")); - orderRefundService.editData(orderRefund); + public boolean refund(BsOrderRefund orderRefund) throws Exception{ - // 重新支付金额 - BigDecimal newPayPrice = oldCardRecord.getPayPrice().subtract(orderRefund.getRefundPrice()); - if (newPayPrice.compareTo(new BigDecimal("0")) > 0) { - BsHltCardRecord newRecord = new BsHltCardRecord(); - try { - newRecord.setOrderNo(orderRefund.getOrderNo()); - newRecord.setCardNo(oldCardRecord.getCardNo()); - newRecord.setUserPhone(oldCardRecord.getUserPhone()); - newRecord.setPayOrderNo(DateUtil.date2String(new Date(), "yyMMddHHmmss") + RandomUtils.number(6, false)); - newRecord.setPayPrice(newPayPrice); - newRecord.setPayStatus(HltCardRecordPayStatusEnum.status1.getCode()); - newRecord.setExceptionStatus(false); - hltCardRecordService.create(newRecord); - - // 查询订单 - OrderModel order = orderService.getDetail(orderRefund.getOrderNo()); - // 查询平台 - BsMerPayConfig merPay = merPayConfigService.getMerPay(order.getOrderChildList().get(0).getMerId(), PayPlatformEnum.type2); - if (merPay == null) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户未配置支付"); - } - // 重新扣款 - String goodsDesc = ""; - String tranDesc = ""; - String businessType = "HiSen_phg_goods"; - - List childModelList = order.getOrderChildList().stream() - .filter(o -> o.getStatus().equals(OrderChildStatusEnum.status2.getCode()) - || o.getStatus().equals(OrderChildStatusEnum.status3.getCode())) - .collect(Collectors.toList()); - for (OrderChildModel orderChild :childModelList) { - if (StringUtils.isBlank(tranDesc)) { - tranDesc = tranDesc + orderChild.getProductName(); - } else { - tranDesc = tranDesc +","+ orderChild.getProductName(); - } - } - // 描述超过30字符,截取加省略号 - if (tranDesc.length()>30) { - tranDesc = tranDesc.substring(1,30) + "..."; - } - JSONObject consumption = HuiLianTongUnionCardService.consumption(newRecord.getPayOrderNo(), newRecord.getCardNo(), newRecord.getPayPrice(), businessType, merPay.getHltInstCode(), goodsDesc, tranDesc); - if (!consumption.getString("respCode").equals("0000")) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, consumption.getString("respMessage")); - } - // 响应参数 - JSONObject payConsumptionResult = HuiLianTongUnionCardService.resolveResponse(consumption.getString("data")); - if (payConsumptionResult.getBoolean("success") != true) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, payConsumptionResult.getString("message")); - } - newRecord.setPaySerialNo(consumptionResult.getString("orderId")); - newRecord.setPayTime(new Date()); - newRecord.setPayStatus(HltCardRecordPayStatusEnum.status2.getCode()); - hltCardRecordService.update(newRecord); + // 订单退款 + JSONObject refundObj = HuiLianTongUnionCardService.portionRefund(orderRefund.getRefundOrderNo(), orderRefund.getOrderNo() , orderRefund.getRefundPrice()); + if (!refundObj.getString("respCode").equals("0000")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, refundObj.getString("respMessage")); + } + JSONObject consumptionResult = HuiLianTongUnionCardService.resolveResponse(refundObj.getString("data")); + if (!consumptionResult.getBoolean("success")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "交易失败!"+consumptionResult.getString("message")); + } - } catch (BaseException e) { - newRecord.setExceptionStatus(true); - newRecord.setExceptionContent(e.getErrorMsg()); - hltCardRecordService.update(newRecord); - } catch (Exception e) { - newRecord.setExceptionStatus(true); - newRecord.setExceptionContent("未知错误"); - hltCardRecordService.update(newRecord); - } - } + orderRefund.setRefundSerialNo(consumptionResult.getString("orderId")); + orderRefundService.editData(orderRefund); - } catch (BaseException e) { - oldCardRecord.setExceptionStatus(true); - oldCardRecord.setExceptionContent(e.getErrorMsg()); - hltCardRecordService.update(oldCardRecord); - } catch (Exception e) { - oldCardRecord.setExceptionStatus(true); - oldCardRecord.setExceptionContent("未知错误"); - hltCardRecordService.update(oldCardRecord); - } - return !oldCardRecord.getExceptionStatus(); + return true; } } diff --git a/service/src/main/java/com/hfkj/service/hlt/HuiLianTongUnionCardService.java b/service/src/main/java/com/hfkj/service/hlt/HuiLianTongUnionCardService.java index 34c1fcd..dd8c497 100644 --- a/service/src/main/java/com/hfkj/service/hlt/HuiLianTongUnionCardService.java +++ b/service/src/main/java/com/hfkj/service/hlt/HuiLianTongUnionCardService.java @@ -27,6 +27,7 @@ import java.util.Map; public class HuiLianTongUnionCardService { private static Logger log = LoggerFactory.getLogger(HuiLianTongUnionCardService.class); private static final String HLT_CARD_REQUEST_URL= "http://hltgz.com:4010/api/v2/execute.json"; + // 接入码 private static final String HLT_CARD_ACCESS_CODE= "6FCAE1470CEF465988351BB65ABAA8AE"; private static final String HLT_CARD_SIGN_CODE = "F8E91A3C"; diff --git a/service/src/main/java/com/hfkj/service/order/impl/BsOrderAfterSalesApplyServiceImpl.java b/service/src/main/java/com/hfkj/service/order/impl/BsOrderAfterSalesApplyServiceImpl.java index 981c1af..a67b32b 100644 --- a/service/src/main/java/com/hfkj/service/order/impl/BsOrderAfterSalesApplyServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/order/impl/BsOrderAfterSalesApplyServiceImpl.java @@ -332,12 +332,15 @@ public class BsOrderAfterSalesApplyServiceImpl implements BsOrderAfterSalesApply phone.append("https://phg.obs.cn-southwest-2.myhuaweicloud.com/").append(s).append(","); } + Integer pickAddressTownId = pickAddress.getTownId() == null ? null : pickAddress.getTownId().intValue(); + Integer returnAddressTownId = returnAddress.getTownId() == null ? null : returnAddress.getTownId().intValue(); + VopAfsCreateAfsApplyResponse response = jdService.createAfsApply( apply.getRemarks(), phone.toString(), applyNo , apply.getJdStatus() , Long.valueOf(goodsMsg.getThirdId()) , goodsMsg.getTitle() , apply.getProductCount() , Long.valueOf(bsOrderGoods.getThirdOrderNo()) , pickAddress.getCountyName() , pickAddress.getPhone() , - pickAddress.getProvinceId().intValue() , pickAddress.getCountyId().intValue() , pickAddress.getCityId().intValue() , pickAddress.getTownId().intValue() , pickAddress.getAddress() , - returnAddress.getProvinceId().intValue() , returnAddress.getCountyId().intValue() , returnAddress.getCityId().intValue() ,returnAddress.getTownId().intValue() , returnAddress.getAddress() + pickAddress.getProvinceId().intValue() , pickAddress.getCountyId().intValue() , pickAddress.getCityId().intValue() , pickAddressTownId , pickAddress.getAddress() , + returnAddress.getProvinceId().intValue() , returnAddress.getCountyId().intValue() , returnAddress.getCityId().intValue() ,returnAddressTownId , returnAddress.getAddress() ); if (response.getOpenRpcResult().getSuccess()) { diff --git a/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java b/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java index 729ef57..71c4b33 100644 --- a/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java @@ -121,7 +121,7 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { return true; } else if (OrderPayChannelEnum.type4.getCode() == orderRefund.getRefundPayChannel()) { - // 商户退款 + // 工会卡退款 return hltCardRefundService.refund(orderRefund); } else { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!该支付方式暂不支持退款"); diff --git a/user/src/main/java/com/user/controller/BsUserPayPasswordController.java b/user/src/main/java/com/user/controller/BsUserPayPasswordController.java index e88a207..6c3f4a8 100644 --- a/user/src/main/java/com/user/controller/BsUserPayPasswordController.java +++ b/user/src/main/java/com/user/controller/BsUserPayPasswordController.java @@ -101,7 +101,7 @@ public class BsUserPayPasswordController { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "修改失败,未设置支付密码"); } - if (StringUtils.isBlank(body.getString("smsCode"))) { + if (StringUtils.isBlank(body.getString("code"))) { log.error("LoginController --> phone() error!", "请输入短信验证码"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请输入短信验证码"); } @@ -112,7 +112,7 @@ public class BsUserPayPasswordController { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误"); } - if (!body.getString("smsCode").equals(phoneCodeObject.toString())) { + if (!body.getString("code").equals(phoneCodeObject.toString())) { log.error("LoginController --> phone() error!", "短信验证码错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误"); }