From a81d07227a9aa1033b70dc488575dad9830d5852 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 23 Oct 2025 15:53:55 +0800
Subject: [PATCH] C2C
---
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiC2cOrderController.java | 15 +++
trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/C2cOrderController.java | 95 +++++++++++++++++++++++
trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/model/PaymentMethodAddModel.java | 3
trading-order-service/src/main/java/com/yami/trading/service/c2c/impl/C2cOrderServiceImpl.java | 88 +++++++++++----------
trading-order-common/src/main/java/com/yami/trading/common/constants/TipConstants.java | 5 +
5 files changed, 160 insertions(+), 46 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/C2cOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/C2cOrderController.java
index eb6a362..85de100 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/C2cOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/C2cOrderController.java
@@ -2,22 +2,28 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.trading.admin.controller.c2c.model.*;
+import com.yami.trading.bean.c2c.C2cAdvert;
import com.yami.trading.bean.c2c.C2cOrder;
import com.yami.trading.bean.model.C2cPaymentMethod;
+import com.yami.trading.bean.model.C2cPaymentMethodConfig;
+import com.yami.trading.bean.model.Log;
import com.yami.trading.bean.model.User;
import com.yami.trading.common.constants.Constants;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.C2cOrderLock;
+import com.yami.trading.common.util.IPHelper;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.common.util.ThreadUtils;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.service.c2c.C2cAdvertService;
import com.yami.trading.service.c2c.C2cOrderService;
+import com.yami.trading.service.c2c.C2cPaymentMethodConfigService;
import com.yami.trading.service.chat.otc.OtcOnlineChatMessageService;
import com.yami.trading.service.item.ItemService;
import com.yami.trading.service.rate.ExchangeRateService;
import com.yami.trading.service.user.UserService;
+import com.yami.trading.sys.model.SysUser;
import com.yami.trading.sys.service.SysUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -25,6 +31,7 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.text.MessageFormat;
import java.util.*;
@RestController
@@ -51,6 +58,9 @@
@Autowired
UserService userService;
+
+ @Autowired
+ C2cPaymentMethodConfigService c2cPaymentMethodConfigService;
//
// private final String action = "normal/adminC2cOrderAction!";
//
@@ -215,4 +225,89 @@
return Result.succeed(detail_map);
}
+ public String verifAdd(String orderNo, String method_config_id, String real_name, String param_value1, String login_safeword) {
+ if (StringUtils.isNullOrEmpty(orderNo)) {
+ return "请传入订单号";
+ }
+ if (StringUtils.isNullOrEmpty(method_config_id)) {
+ return "支付方式模板不正确";
+ }
+ if (StringUtils.isNullOrEmpty(real_name)) {
+ return "真实姓名必填";
+ }
+ if (StringUtils.isNullOrEmpty(param_value1)) {
+ return "参数值1必填";
+ }
+ if (StringUtils.isNullOrEmpty(login_safeword)) {
+ return "资金密码错误";
+ }
+ return "";
+ }
+
+ @PostMapping("setC2cOrderPayMethod")
+ @ApiOperation("设置C2C订单支付方式")
+ public Result setC2cOrderPayMethod(@RequestBody @Valid PaymentMethodAddModel model) {
+
+ try {
+ String error = verifAdd(model.getOrderNo(), model.getMethodConfigId(),
+ model.getRealName(), model.getParamValue1(), model.getLoginSafeword());
+ if (!StringUtils.isNullOrEmpty(error)) {
+ throw new YamiShopBindException(error);
+ }
+
+ sysUserService.checkSafeWord(model.getLoginSafeword());
+
+ C2cOrder c2cOrder = this.c2cOrderService.get(model.getOrderNo());
+ if (null == c2cOrder) {
+ throw new YamiShopBindException("订单不存在");
+ }
+
+ C2cPaymentMethodConfig method = c2cPaymentMethodConfigService.getById(model.getMethodConfigId());
+ if (null == method) {
+ throw new YamiShopBindException("支付方式模板不存在");
+ }
+ c2cOrder.setMethodType(method.getMethodType());
+ c2cOrder.setMethodName(method.getMethodName());
+ c2cOrder.setMethodImg(method.getMethodImg());
+ c2cOrder.setRealName(model.getRealName());
+ c2cOrder.setParamName1(method.getParamName1());
+ c2cOrder.setParamValue1(model.getParamValue1());
+ c2cOrder.setParamName2(method.getParamName2());
+ c2cOrder.setParamValue2(model.getParamValue2());
+ c2cOrder.setParamName3(method.getParamName3());
+ c2cOrder.setParamValue3(model.getParamValue3());
+ c2cOrder.setParamName4(method.getParamName4());
+ c2cOrder.setParamValue4(model.getParamValue4());
+ c2cOrder.setParamName5(method.getParamName5());
+ c2cOrder.setParamValue5(model.getParamValue5());
+ c2cOrder.setParamName6(method.getParamName6());
+ c2cOrder.setParamValue6(model.getParamValue6());
+ c2cOrder.setParamName7(method.getParamName7());
+ c2cOrder.setParamValue7(model.getParamValue7());
+ c2cOrder.setParamName8(method.getParamName8());
+ c2cOrder.setParamValue8(model.getParamValue8());
+ c2cOrder.setParamName9(method.getParamName9());
+ c2cOrder.setParamValue9(model.getParamValue9());
+ c2cOrder.setParamName10(method.getParamName10());
+ c2cOrder.setParamValue10(model.getParamValue10());
+ c2cOrder.setParamName11(method.getParamName11());
+ c2cOrder.setParamValue11(model.getParamValue11());
+ c2cOrder.setParamName12(method.getParamName12());
+ c2cOrder.setParamValue12(model.getParamValue12());
+ c2cOrder.setParamName13(method.getParamName13());
+ c2cOrder.setParamValue13(model.getParamValue13());
+ c2cOrder.setParamName14(method.getParamName14());
+ c2cOrder.setParamValue14(model.getParamValue14());
+ c2cOrder.setParamName15(method.getParamName15());
+ c2cOrder.setParamValue15(model.getParamValue15());
+ c2cOrder.setQrcode(model.getQrcode());
+
+ this.c2cOrderService.updateById(c2cOrder);
+ return Result.ok(null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return Result.failed("设置失败");
+ }
+
}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/model/PaymentMethodAddModel.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/model/PaymentMethodAddModel.java
index 0b62a6a..14f80b7 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/model/PaymentMethodAddModel.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/c2c/model/PaymentMethodAddModel.java
@@ -10,6 +10,9 @@
@ApiModel
public class PaymentMethodAddModel {
+ @ApiModelProperty("订单号")
+ private String orderNo;
+
@ApiModelProperty("用户UID")
private String userCode;
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiC2cOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiC2cOrderController.java
index b87c16c..0fdd53a 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiC2cOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiC2cOrderController.java
@@ -172,10 +172,13 @@
throw new YamiShopBindException("广告不存在");
}
- C2cPaymentMethod method =c2cPaymentMethodService.get(payment_method_id);
- if (null == method) {
- throw new YamiShopBindException("支付方式不存在");
+ if (C2cAdvert.DIRECTION_SELL.equals(c2cAdvert.getDirection())) {
+ C2cPaymentMethod method =c2cPaymentMethodService.get(payment_method_id);
+ if (null == method) {
+ throw new YamiShopBindException("支付方式不存在");
+ }
}
+
if (StringUtils.isEmptyString(order_type) || !Arrays.asList("by_amount", "by_num").contains(order_type)) {
throw new YamiShopBindException("订单类型不正确");
@@ -238,6 +241,7 @@
public Object pay_finish(HttpServletRequest request) {
String order_no = request.getParameter("order_no");
String safe_password = request.getParameter("safe_password");
+ String img = request.getParameter("img");
Result resultObject = new Result();
@@ -268,6 +272,10 @@
throw new BusinessException("订单不存在");
}
+ if (img == null || img.isEmpty()) {
+ throw new BusinessException("请先上传支付凭证");
+ }
+
if (partyId.equals(order.getPartyId())) {
// 用户操作
if (!"buy".equals(order.getDirection())) {
@@ -294,6 +302,7 @@
order.setState("1");
order.setPayTime(new Date());
+ order.setImg(img);
this.c2cOrderService.updateById(order);
if (Arrays.asList("0", "1").contains(order.getState())) {
diff --git a/trading-order-common/src/main/java/com/yami/trading/common/constants/TipConstants.java b/trading-order-common/src/main/java/com/yami/trading/common/constants/TipConstants.java
index 50b9fd4..ce70d38 100644
--- a/trading-order-common/src/main/java/com/yami/trading/common/constants/TipConstants.java
+++ b/trading-order-common/src/main/java/com/yami/trading/common/constants/TipConstants.java
@@ -98,6 +98,8 @@
ACTION_MAP.put(USER_SAFEWORD_APPLY, "/user-relation-reset");
ACTION_MAP.put(CONTRACT_ORDER, "/cryptos-spots-cryptos-spots-transport");
ACTION_MAP.put(OTCORDER_ONLINECHAT, "/c2c-c2c_pay_order");
+ ACTION_MAP.put(C2C_ORDER, "/c2c-c2c_pay_order");
+
ACTION_MAP.put(USER_SAFEWORD_APPLY+"-0", "/user-relation-reset");
ACTION_MAP.put(USER_SAFEWORD_APPLY+"-1", "/user-relation-reset");
@@ -126,6 +128,7 @@
MESSAGE_MAP.put(USER_SAFEWORD_APPLY+"-3", "您有{0}条新的用户取消邮箱绑定申请");
// MESSAGE_MAP.put(ONLINECHAT, "您有{0}条新的聊天消息");
MESSAGE_MAP.put(OTCORDER_ONLINECHAT, "您的C2C订单有{0}条新的聊天消息");
+ MESSAGE_MAP.put(C2C_ORDER, "您有{0}条新的C2C订单");
};
/**
@@ -142,7 +145,7 @@
MESSAGE_TYPE.put(USER_SAFEWORD_APPLY, "4");
MESSAGE_TYPE.put(BANK_CARD_ORDER, "4");
MESSAGE_TYPE.put(CONTRACT_ORDER, "5");
- MESSAGE_TYPE.put(OTCORDER_ONLINECHAT, "6");
+ MESSAGE_TYPE.put(C2C_ORDER, "6");
// MESSAGE_MAP.put(BANK_CARD_ORDER, "您有{0}条新的银行卡订单");
// MESSAGE_MAP.put(USER_SAFEWORD_APPLY, "您有{0}条新的用户资金密码修改申请");
// MESSAGE_MAP.put(ONLINECHAT, "您有{0}条新的聊天消息");
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/c2c/impl/C2cOrderServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/c2c/impl/C2cOrderServiceImpl.java
index 1dbb378..74a44ff 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/c2c/impl/C2cOrderServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/c2c/impl/C2cOrderServiceImpl.java
@@ -517,13 +517,12 @@
throw new YamiShopBindException("承兑商的用户信息不存在");
}
+
C2cPaymentMethod method = this.c2cPaymentMethodService.get(c2cOrder.getPaymentMethodId());
- if (null == method) {
- throw new YamiShopBindException("支付方式不存在");
- }
-
if (C2cAdvert.DIRECTION_SELL.equals(c2cAdvert.getDirection())) {
-
+ if (null == method) {
+ throw new YamiShopBindException("支付方式不存在");
+ }
if (!party.isWithdrawAuthority()) {
throw new YamiShopBindException( "无权限");
}
@@ -536,9 +535,9 @@
}
} else {
- if (!method.getPartyId().equals(c2cUser.getC2cUserPartyId())) {
+ /*if (!method.getPartyId().equals(c2cUser.getC2cUserPartyId())) {
throw new YamiShopBindException("支付方式不匹配该承兑商");
- }
+ }*/
}
c2cOrder.setC2cUserType(c2cUser.getC2cUserType());
@@ -554,41 +553,46 @@
c2cOrder.setPayRate(c2cAdvert.getPayRate());
c2cOrder.setSymbolValue(c2cAdvert.getSymbolValue());
c2cOrder.setExpireTime(c2cAdvert.getExpireTime());
- c2cOrder.setMethodType(method.getMethodType());
- c2cOrder.setMethodName(method.getMethodName());
- c2cOrder.setMethodImg(method.getMethodImg());
- c2cOrder.setRealName(method.getRealName());
- c2cOrder.setParamName1(method.getParamName1());
- c2cOrder.setParamValue1(method.getParamValue1());
- c2cOrder.setParamName2(method.getParamName2());
- c2cOrder.setParamValue2(method.getParamValue2());
- c2cOrder.setParamName3(method.getParamName3());
- c2cOrder.setParamValue3(method.getParamValue3());
- c2cOrder.setParamName4(method.getParamName4());
- c2cOrder.setParamValue4(method.getParamValue4());
- c2cOrder.setParamName5(method.getParamName5());
- c2cOrder.setParamValue5(method.getParamValue5());
- c2cOrder.setParamName6(method.getParamName6());
- c2cOrder.setParamValue6(method.getParamValue6());
- c2cOrder.setParamName7(method.getParamName7());
- c2cOrder.setParamValue7(method.getParamValue7());
- c2cOrder.setParamName8(method.getParamName8());
- c2cOrder.setParamValue8(method.getParamValue8());
- c2cOrder.setParamName9(method.getParamName9());
- c2cOrder.setParamValue9(method.getParamValue9());
- c2cOrder.setParamName10(method.getParamName10());
- c2cOrder.setParamValue10(method.getParamValue10());
- c2cOrder.setParamName11(method.getParamName11());
- c2cOrder.setParamValue11(method.getParamValue11());
- c2cOrder.setParamName12(method.getParamName12());
- c2cOrder.setParamValue12(method.getParamValue12());
- c2cOrder.setParamName13(method.getParamName13());
- c2cOrder.setParamValue13(method.getParamValue13());
- c2cOrder.setParamName14(method.getParamName14());
- c2cOrder.setParamValue14(method.getParamValue14());
- c2cOrder.setParamName15(method.getParamName15());
- c2cOrder.setParamValue15(method.getParamValue15());
- c2cOrder.setQrcode(method.getQrcode());
+
+
+ if (C2cAdvert.DIRECTION_SELL.equals(c2cAdvert.getDirection())) {
+ c2cOrder.setMethodType(method.getMethodType());
+ c2cOrder.setMethodName(method.getMethodName());
+ c2cOrder.setMethodImg(method.getMethodImg());
+ c2cOrder.setRealName(method.getRealName());
+ c2cOrder.setParamName1(method.getParamName1());
+ c2cOrder.setParamValue1(method.getParamValue1());
+ c2cOrder.setParamName2(method.getParamName2());
+ c2cOrder.setParamValue2(method.getParamValue2());
+ c2cOrder.setParamName3(method.getParamName3());
+ c2cOrder.setParamValue3(method.getParamValue3());
+ c2cOrder.setParamName4(method.getParamName4());
+ c2cOrder.setParamValue4(method.getParamValue4());
+ c2cOrder.setParamName5(method.getParamName5());
+ c2cOrder.setParamValue5(method.getParamValue5());
+ c2cOrder.setParamName6(method.getParamName6());
+ c2cOrder.setParamValue6(method.getParamValue6());
+ c2cOrder.setParamName7(method.getParamName7());
+ c2cOrder.setParamValue7(method.getParamValue7());
+ c2cOrder.setParamName8(method.getParamName8());
+ c2cOrder.setParamValue8(method.getParamValue8());
+ c2cOrder.setParamName9(method.getParamName9());
+ c2cOrder.setParamValue9(method.getParamValue9());
+ c2cOrder.setParamName10(method.getParamName10());
+ c2cOrder.setParamValue10(method.getParamValue10());
+ c2cOrder.setParamName11(method.getParamName11());
+ c2cOrder.setParamValue11(method.getParamValue11());
+ c2cOrder.setParamName12(method.getParamName12());
+ c2cOrder.setParamValue12(method.getParamValue12());
+ c2cOrder.setParamName13(method.getParamName13());
+ c2cOrder.setParamValue13(method.getParamValue13());
+ c2cOrder.setParamName14(method.getParamName14());
+ c2cOrder.setParamValue14(method.getParamValue14());
+ c2cOrder.setParamName15(method.getParamName15());
+ c2cOrder.setParamValue15(method.getParamValue15());
+ c2cOrder.setQrcode(method.getQrcode());
+ }
+
c2cOrder.setCreateTime(new Date());
c2cOrder.setHandleTime(null);
c2cOrder.setCloseTime(DateUtils.addMinute(c2cOrder.getCreateTime(), c2cOrder.getExpireTime()));
--
Gitblit v1.9.3