设置用户支付密码

dev
袁野 2 months ago
parent 3c6b0c840e
commit 8533a66b0c
  1. 3
      bweb/src/main/java/com/bweb/controller/TestController.java
  2. 3
      bweb/src/main/java/com/bweb/controller/goods/GoodsTypeController.java
  3. 24
      order/src/main/java/com/order/controller/OrderPayController.java
  4. 115
      service/src/main/java/com/hfkj/service/hlt/HltCardRefundService.java
  5. 1
      service/src/main/java/com/hfkj/service/hlt/HuiLianTongUnionCardService.java
  6. 7
      service/src/main/java/com/hfkj/service/order/impl/BsOrderAfterSalesApplyServiceImpl.java
  7. 2
      service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java
  8. 4
      user/src/main/java/com/user/controller/BsUserPayPasswordController.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<String , Object> map = new HashMap<>();

@ -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<String , Object> map = new HashMap<>();
map.put("status" , 1);
map.put("title", title);
List<GoodsType> list = goodsTypeService.getList(map);

@ -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())) {

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

@ -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";

@ -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()) {

@ -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, "退款失败!该支付方式暂不支持退款");

@ -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, "短信验证码错误");
}

Loading…
Cancel
Save