|
@@ -1,31 +1,28 @@
|
|
|
package cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl;
|
|
|
|
|
|
-import cn.hutool.core.io.IoUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
-import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelCreateReqVO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelExportReqVO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelPageReqVO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelUpdateReqVO;
|
|
|
import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert;
|
|
|
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper;
|
|
|
import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
|
|
|
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
-import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
|
|
import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.AlipayPayClientConfig;
|
|
|
import cn.iocoder.yudao.framework.pay.core.client.impl.wx.WXPayClientConfig;
|
|
|
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.Assert;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.validation.ConstraintViolation;
|
|
|
import javax.validation.Validation;
|
|
|
import javax.validation.Validator;
|
|
|
import javax.validation.ValidatorFactory;
|
|
|
-import java.io.IOException;
|
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
import java.util.Set;
|
|
@@ -49,16 +46,16 @@ public class PayChannelServiceImpl implements PayChannelService {
|
|
|
|
|
|
@Override
|
|
|
public Long createChannel(PayChannelCreateReqVO reqVO) {
|
|
|
-
|
|
|
+ // TODO @aquan:感觉获得那一条比较合适。因为是有唯一性的。注释有错别字哈。
|
|
|
// 判断是否有重复的有责无法新增
|
|
|
Integer channelCount = this.getChannelCountByConditions(reqVO.getMerchantId(), reqVO.getAppId(), reqVO.getCode());
|
|
|
if (channelCount > 0) {
|
|
|
throw exception(CHANNEL_EXIST_SAME_CHANNEL_ERROR);
|
|
|
}
|
|
|
|
|
|
+ // 新增渠道
|
|
|
PayChannelDO channel = PayChannelConvert.INSTANCE.convert(reqVO);
|
|
|
settingConfigAndCheckParam(channel, reqVO.getConfig());
|
|
|
-
|
|
|
channelMapper.insert(channel);
|
|
|
return channel.getId();
|
|
|
}
|
|
@@ -170,16 +167,17 @@ public class PayChannelServiceImpl implements PayChannelService {
|
|
|
* @param configStr 配置
|
|
|
*/
|
|
|
private void settingConfigAndCheckParam(PayChannelDO channel, String configStr) {
|
|
|
-
|
|
|
// 得到这个渠道是微信的还是支付宝的
|
|
|
String channelType = PayChannelEnum.verifyWechatOrAliPay(channel.getCode());
|
|
|
Assert.notNull(channelType, CHANNEL_NOT_EXISTS.getMsg());
|
|
|
|
|
|
// 进行验证
|
|
|
+ // TODO @阿全:Spring 可以注入 Validator 哈
|
|
|
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
|
|
|
Validator validator = validatorFactory.getValidator();
|
|
|
|
|
|
// 微信的验证
|
|
|
+ // TODO @aquan:这么实现,可扩性不好。@AssertTrue 注解。
|
|
|
if (PayChannelEnum.WECHAT.equals(channelType)) {
|
|
|
|
|
|
WXPayClientConfig config = JSON.parseObject(configStr, WXPayClientConfig.class);
|