|
|
@@ -1,5 +1,6 @@
|
|
|
package com.zhongshu.card.server.core.service.paySetting;
|
|
|
|
|
|
+import com.github.microservice.components.data.base.util.PageEntityUtil;
|
|
|
import com.github.microservice.net.ResultContent;
|
|
|
import com.github.microservice.net.ResultMessage;
|
|
|
import com.github.microservice.pay.client.model.AccountModel;
|
|
|
@@ -9,9 +10,13 @@ import com.github.microservice.pay.client.service.PayProductAccountService;
|
|
|
import com.github.microservice.pay.client.type.PayProductChannelType;
|
|
|
import com.github.microservice.types.payment.PayFieldType;
|
|
|
import com.github.microservice.types.payment.PaymentType;
|
|
|
+import com.zhongshu.card.client.model.org.BelongOigParam;
|
|
|
import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfig;
|
|
|
import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfigParam;
|
|
|
import com.zhongshu.card.client.model.paySetting.paySetting.*;
|
|
|
+import com.zhongshu.card.client.model.payment.PaymentTypeParam;
|
|
|
+import com.zhongshu.card.client.model.projectAbout.PayChannelConfigAllPayModel;
|
|
|
+import com.zhongshu.card.client.model.projectAbout.PayChannelConfigSearch;
|
|
|
import com.zhongshu.card.client.type.DataState;
|
|
|
import com.zhongshu.card.server.core.dao.org.OrganizationDao;
|
|
|
import com.zhongshu.card.server.core.dao.projectAbout.PayChannelConfigDao;
|
|
|
@@ -19,8 +24,8 @@ import com.zhongshu.card.server.core.dao.projectAbout.ProjectPaySettingDao;
|
|
|
import com.zhongshu.card.server.core.dao.projectAbout.ProjectPaySettingInfoDao;
|
|
|
import com.zhongshu.card.server.core.domain.org.Organization;
|
|
|
import com.zhongshu.card.server.core.domain.paySetting.PayChannelConfig;
|
|
|
+import com.zhongshu.card.server.core.domain.paySetting.ProjectOrgPaySettingInfo;
|
|
|
import com.zhongshu.card.server.core.domain.paySetting.ProjectPaySetting;
|
|
|
-import com.zhongshu.card.server.core.domain.paySetting.ProjectPaySettingInfo;
|
|
|
import com.zhongshu.card.server.core.service.base.SuperService;
|
|
|
import com.zhongshu.card.server.core.util.AesUtils;
|
|
|
import com.zhongshu.card.server.core.util.BeanUtils;
|
|
|
@@ -28,6 +33,8 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.data.mongodb.gridfs.GridFsTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
@@ -70,119 +77,29 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
@Autowired
|
|
|
private OrgPayAccountService orgPayAccountService;
|
|
|
|
|
|
- /**
|
|
|
- * 关联支付渠道
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public ResultContent savePayChannel(ProjectPaySettingParam param) {
|
|
|
- String projectOid = param.getProjectOid();
|
|
|
- if (StringUtils.isEmpty(projectOid)) {
|
|
|
- return ResultContent.buildFail("projectOid不能为空");
|
|
|
- }
|
|
|
- Organization project = organizationDao.findTopByOid(projectOid);
|
|
|
- if (ObjectUtils.isEmpty(project)) {
|
|
|
- return ResultContent.buildFail("项目不存在");
|
|
|
- }
|
|
|
- PayChannelConfig payChannelConfig = payChannelConfigDao.findTopById(param.getId());
|
|
|
- if (ObjectUtils.isEmpty(payChannelConfig)) {
|
|
|
- return ResultContent.buildFail("支付产品不存在");
|
|
|
- }
|
|
|
- PaymentType paymentType = payChannelConfig.getPaymentType();
|
|
|
-
|
|
|
- ProjectPaySetting projectPaySetting = projectPaySettingDao.findTopByProjectOidAndChannelType(projectOid, paymentType);
|
|
|
- if (ObjectUtils.isNotEmpty(projectPaySetting)) {
|
|
|
- return ResultContent.buildFail(String.format("%s已存在", paymentType.name()));
|
|
|
- }
|
|
|
- projectPaySetting = new ProjectPaySetting();
|
|
|
- initEntityNoCheckOid(projectPaySetting);
|
|
|
- projectPaySetting.setProjectOid(projectOid);
|
|
|
- projectPaySetting.setProjectInfo(project);
|
|
|
- projectPaySetting.setProjectCode(project.getCode());
|
|
|
- projectPaySetting.setProjectName(project.getName());
|
|
|
- projectPaySetting.setChannelType(paymentType);
|
|
|
- projectPaySetting.setPaymentChannelType(payChannelConfig.getPaymentChannelType());
|
|
|
-
|
|
|
- projectPaySetting.setState(DataState.Disable);
|
|
|
- projectPaySettingDao.save(projectPaySetting);
|
|
|
- return ResultContent.buildSuccess();
|
|
|
- }
|
|
|
+ //-----------------------------通用配置方法 start----------------------------
|
|
|
|
|
|
/**
|
|
|
- * 项目得到所有的支付渠道配置
|
|
|
+ * 机构配置分页查询
|
|
|
*
|
|
|
- * @param projectOid
|
|
|
+ * @param param
|
|
|
+ * @param pageable
|
|
|
* @return
|
|
|
*/
|
|
|
- public ResultContent<List<ProjectPaySettingModel>> getAllProjectPaySetting(String projectOid) {
|
|
|
- List<ProjectPaySetting> list = projectPaySettingDao.findByProjectOid(projectOid);
|
|
|
- List<ProjectPaySettingModel> models = new ArrayList<>(list.size());
|
|
|
- if (ObjectUtils.isNotEmpty(list)) {
|
|
|
- models = list.stream().map(this::toModel).collect(Collectors.toUnmodifiableList());
|
|
|
- }
|
|
|
- return ResultContent.buildSuccess(models);
|
|
|
- }
|
|
|
-
|
|
|
- public ResultContent deleteInfo(String id) {
|
|
|
- ProjectPaySetting paySetting = projectPaySettingDao.findTopById(id);
|
|
|
- if (ObjectUtils.isEmpty(paySetting)) {
|
|
|
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
|
|
|
- }
|
|
|
- // 判断是否可以删除
|
|
|
- int count = projectPaySettingInfoDao.countByProjectOidAndChannelType(paySetting.getProjectOid(), paySetting.getChannelType());
|
|
|
- if (count > 0) {
|
|
|
- return ResultContent.buildFail(String.format("%s有账户信息,不能删除", paySetting.getChannelType().getRemark()));
|
|
|
- }
|
|
|
- projectPaySettingDao.delete(paySetting);
|
|
|
- return ResultContent.buildSuccess();
|
|
|
- }
|
|
|
-
|
|
|
- public ResultContent changeState(String id, DataState state) {
|
|
|
- ProjectPaySetting paySetting = projectPaySettingDao.findTopById(id);
|
|
|
- if (ObjectUtils.isEmpty(paySetting)) {
|
|
|
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
|
|
|
- }
|
|
|
- //TODO 检查是否可以启用
|
|
|
- if (state != null && state == DataState.Enable) {
|
|
|
- List<ProjectPaySettingInfo> list = projectPaySettingInfoDao.findByProjectOidAndChannelType(paySetting.getProjectOid(), paySetting.getChannelType());
|
|
|
- if (ObjectUtils.isEmpty(list)) {
|
|
|
- return ResultContent.buildFail(String.format("没有账户信息,不能启用"));
|
|
|
- }
|
|
|
- boolean hasDefault = false;
|
|
|
- for (ProjectPaySettingInfo entity : list) {
|
|
|
- if (entity.getIsDefault() != null && entity.getIsDefault()) {
|
|
|
- hasDefault = true;
|
|
|
- if (entity.getPayConfig() == null) {
|
|
|
- return ResultContent.buildFail(String.format("默认账户参数信息未配置"));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (!hasDefault) {
|
|
|
- return ResultContent.buildFail("没有默认账户信息,不能启用");
|
|
|
- }
|
|
|
- }
|
|
|
- paySetting.setState(state);
|
|
|
- projectPaySettingDao.save(paySetting);
|
|
|
-
|
|
|
- upsertPayAccount(paySetting.getProjectOid(), paySetting.getChannelType());
|
|
|
- return ResultContent.buildSuccess();
|
|
|
+ public ResultContent<Page<ProjectPaySettingInfoModel>> page(ProjectPaySettingInfoSearch param, Pageable pageable) {
|
|
|
+ Page<ProjectOrgPaySettingInfo> page = projectPaySettingInfoDao.page(pageable, param);
|
|
|
+ return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toModel));
|
|
|
}
|
|
|
|
|
|
- //-----------------------------通用配置方法 start----------------------------
|
|
|
-
|
|
|
/**
|
|
|
- * 得到项目的支付产品的 账户配置
|
|
|
+ * 得到项目的支付产品的所有 账户配置
|
|
|
*
|
|
|
- * @param id
|
|
|
+ * @param param
|
|
|
* @return
|
|
|
*/
|
|
|
- public ResultContent<List<ProjectPaySettingInfoModel>> getProjectPaySettingInfo(String id) {
|
|
|
+ public ResultContent<List<ProjectPaySettingInfoModel>> getOrgPaySettingInfo(BelongOigParam param) {
|
|
|
List<ProjectPaySettingInfoModel> models = new ArrayList<>();
|
|
|
- ProjectPaySetting projectPaySetting = projectPaySettingDao.findTopById(id);
|
|
|
- if (ObjectUtils.isEmpty(projectPaySetting)) {
|
|
|
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
|
|
|
- }
|
|
|
- List<ProjectPaySettingInfo> list = projectPaySettingInfoDao.findByProjectOidAndChannelType(projectPaySetting.getProjectOid(), projectPaySetting.getChannelType());
|
|
|
+ List<ProjectOrgPaySettingInfo> list = projectPaySettingInfoDao.findByBelongOigAndProjectOid(param.getBelongOig(), param.getProjectOid());
|
|
|
if (ObjectUtils.isNotEmpty(list)) {
|
|
|
models = list.parallelStream().map(this::toModel).collect(Collectors.toUnmodifiableList());
|
|
|
}
|
|
|
@@ -196,12 +113,12 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent deletePaySettingInfo(String id) {
|
|
|
- ProjectPaySettingInfo entity = projectPaySettingInfoDao.findTopById(id);
|
|
|
+ ProjectOrgPaySettingInfo entity = projectPaySettingInfoDao.findTopById(id);
|
|
|
if (ObjectUtils.isEmpty(entity)) {
|
|
|
return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
|
|
|
}
|
|
|
projectPaySettingInfoDao.delete(entity);
|
|
|
- initChangeDefault(null, entity.getProjectOid(), entity.getChannelType());
|
|
|
+ initChangeDefault(null, entity.getBelongOig(), entity.getProjectOid(), entity.getChannelType());
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
@@ -212,7 +129,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent getPaySettingInfo(String id) {
|
|
|
- ProjectPaySettingInfo entity = projectPaySettingInfoDao.findTopById(id);
|
|
|
+ ProjectOrgPaySettingInfo entity = projectPaySettingInfoDao.findTopById(id);
|
|
|
if (ObjectUtils.isEmpty(entity)) {
|
|
|
return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
|
|
|
}
|
|
|
@@ -228,13 +145,14 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent saveWxPayConfig(WxPayConfigParam param) {
|
|
|
- //TODO 检查微信支付参数等
|
|
|
- ResultContent<ProjectPaySettingInfo> content = initProjectPayInfo(param);
|
|
|
+ // 机构初始支付产品对应的数据
|
|
|
+ ResultContent<ProjectOrgPaySettingInfo> content = initProjectPayInfo(param);
|
|
|
if (content.isFailed()) {
|
|
|
return ResultContent.buildFail(content.getMsg());
|
|
|
}
|
|
|
- ProjectPaySettingInfo settingInfo = content.getContent();
|
|
|
+ ProjectOrgPaySettingInfo settingInfo = content.getContent();
|
|
|
|
|
|
+ //TODO 检查微信支付参数等
|
|
|
WxPayConfigModel configModel = null;
|
|
|
if (settingInfo.getPayConfig() != null) {
|
|
|
configModel = (WxPayConfigModel) settingInfo.getPayConfig();
|
|
|
@@ -256,8 +174,9 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
}
|
|
|
settingInfo.setPayConfig(configModel);
|
|
|
projectPaySettingInfoDao.save(settingInfo);
|
|
|
+
|
|
|
// 如果当前设置为默认,把其他的取消默认
|
|
|
- initChangeDefault(settingInfo.getId(), settingInfo.getProjectOid(), settingInfo.getChannelType());
|
|
|
+ initChangeDefault(settingInfo.getId(), settingInfo.getBelongOig(), settingInfo.getProjectOid(), settingInfo.getChannelType());
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
@@ -268,7 +187,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent<WxPayConfigModel> getProjectWxConfig(String projectOid) {
|
|
|
- ResultContent<ProjectPaySettingInfo> content = getProjectConfig(projectOid, PaymentType.WeChat);
|
|
|
+ ResultContent<ProjectOrgPaySettingInfo> content = getProjectConfig(projectOid, PaymentType.WeChat);
|
|
|
if (content.isFailed()) {
|
|
|
return ResultContent.buildFail(content.getMsg());
|
|
|
}
|
|
|
@@ -285,11 +204,11 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent saveLaKaLaConfig(LaKaLaCollectionConfigParam param) {
|
|
|
- ResultContent<ProjectPaySettingInfo> content = initProjectPayInfo(param);
|
|
|
+ ResultContent<ProjectOrgPaySettingInfo> content = initProjectPayInfo(param);
|
|
|
if (content.isFailed()) {
|
|
|
return ResultContent.buildFail(content.getMsg());
|
|
|
}
|
|
|
- ProjectPaySettingInfo settingInfo = content.getContent();
|
|
|
+ ProjectOrgPaySettingInfo settingInfo = content.getContent();
|
|
|
|
|
|
//TODO 检查支付参数等
|
|
|
LaKaLaCollectionConfig laKaLaCollectionConfig = (LaKaLaCollectionConfig) settingInfo.getPayConfig();
|
|
|
@@ -310,53 +229,84 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
settingInfo.setPayConfig(laKaLaCollectionConfig);
|
|
|
projectPaySettingInfoDao.save(settingInfo);
|
|
|
// 如果当前设置为默认,把其他的取消默认
|
|
|
- initChangeDefault(settingInfo.getId(), settingInfo.getProjectOid(), settingInfo.getChannelType());
|
|
|
+ initChangeDefault(settingInfo.getId(), settingInfo.getBelongOig(), settingInfo.getProjectOid(), settingInfo.getChannelType());
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
- public ResultContent<ProjectPaySettingInfo> initProjectPayInfo(PayConfigParam param) {
|
|
|
+ /**
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ResultContent<ProjectOrgPaySettingInfo> initProjectPayInfo(PayConfigParam param) {
|
|
|
+ // 所属项目
|
|
|
Organization project = organizationDao.findTopByOid(param.getProjectOid());
|
|
|
if (ObjectUtils.isEmpty(project)) {
|
|
|
return ResultContent.buildFail("projectOid不存在");
|
|
|
}
|
|
|
- ProjectPaySettingInfo projectPaySettingInfo = null;
|
|
|
+ // 所属机构
|
|
|
+ Organization orgInfo = organizationDao.findTopByOid(param.getBelongOig());
|
|
|
+ if (ObjectUtils.isEmpty(orgInfo)) {
|
|
|
+ return ResultContent.buildFail(String.format("belongOig不存在"));
|
|
|
+ }
|
|
|
+
|
|
|
+ ProjectOrgPaySettingInfo temp = projectPaySettingInfoDao.findTopByBelongOigAndProjectOidAndChannelType(param.getBelongOig(), param.getProjectOid(), param.getChannelType());
|
|
|
+ ProjectOrgPaySettingInfo projectPaySettingInfo = null;
|
|
|
if (StringUtils.isNotEmpty(param.getId())) {
|
|
|
+ // 编辑
|
|
|
projectPaySettingInfo = projectPaySettingInfoDao.findTopById(param.getId());
|
|
|
if (ObjectUtils.isEmpty(projectPaySettingInfo)) {
|
|
|
return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
|
|
|
}
|
|
|
+ // 支付渠道是否已存在
|
|
|
+ if (ObjectUtils.isNotEmpty(temp) && temp.getId().equals(projectPaySettingInfo.getId())) {
|
|
|
+ return ResultContent.buildFail(String.format("支付渠道已存在:%s", param.getChannelType().getRemark()));
|
|
|
+ }
|
|
|
+
|
|
|
initUpdateEntity(projectPaySettingInfo);
|
|
|
} else {
|
|
|
- if (StringUtils.isEmpty(param.getProjectPaySettingId())) {
|
|
|
- return ResultContent.buildFail("projectPaySettingId不能为空");
|
|
|
+ // 新增
|
|
|
+ PayChannelConfig channelConfig = payChannelConfigDao.findTopByPaymentType(param.getChannelType());
|
|
|
+ if (ObjectUtils.isEmpty(channelConfig)) {
|
|
|
+ return ResultContent.buildFail(String.format("支付渠道产品不存在:%s", param.getChannelType().getRemark()));
|
|
|
}
|
|
|
- ProjectPaySetting paySetting = projectPaySettingDao.findTopById(param.getProjectPaySettingId());
|
|
|
- if (ObjectUtils.isEmpty(paySetting)) {
|
|
|
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getProjectPaySettingId()));
|
|
|
+ if (ObjectUtils.isNotEmpty(temp)) {
|
|
|
+ return ResultContent.buildFail(String.format("支付渠道已存在:%s", param.getChannelType().getRemark()));
|
|
|
}
|
|
|
- projectPaySettingInfo = new ProjectPaySettingInfo();
|
|
|
- projectPaySettingInfo.setProjectPaySetting(paySetting);
|
|
|
- projectPaySettingInfo.setChannelType(paySetting.getChannelType());
|
|
|
- projectPaySettingInfo.setPaymentChannelType(paySetting.getPaymentChannelType());
|
|
|
- projectPaySettingInfo.setState(DataState.Enable);
|
|
|
+
|
|
|
+ projectPaySettingInfo = new ProjectOrgPaySettingInfo();
|
|
|
+ projectPaySettingInfo.setChannelType(channelConfig.getPaymentType());
|
|
|
+ projectPaySettingInfo.setPaymentChannelType(channelConfig.getPaymentChannelType());
|
|
|
+
|
|
|
+ // 项目信息
|
|
|
projectPaySettingInfo.setProjectOid(project.getOid());
|
|
|
- projectPaySettingInfo.setProjectName(project.getName());
|
|
|
projectPaySettingInfo.setProjectCode(project.getCode());
|
|
|
- projectPaySettingInfo.setOid(project.getOid());
|
|
|
- int total = projectPaySettingInfoDao.countByProjectOidAndChannelType(project.getOid(), paySetting.getChannelType());
|
|
|
+
|
|
|
+ // 机构信息
|
|
|
+ projectPaySettingInfo.setBelongOig(orgInfo.getOid());
|
|
|
+ projectPaySettingInfo.setOid(orgInfo.getOid());
|
|
|
+ int total = projectPaySettingInfoDao.countByBelongOigAndProjectOidAndChannelType(orgInfo.getOid(), project.getOid(), param.getChannelType());
|
|
|
if (total <= 0) {
|
|
|
param.setIsDefault(Boolean.TRUE);
|
|
|
}
|
|
|
}
|
|
|
+ projectPaySettingInfo.setProjectName(project.getName());
|
|
|
+ projectPaySettingInfo.setBelongOrgName(orgInfo.getName());
|
|
|
+
|
|
|
projectPaySettingInfo.setName(param.getName());
|
|
|
projectPaySettingInfo.setIsDefault(param.getIsDefault());
|
|
|
+ projectPaySettingInfo.setMchId(param.getMchId());
|
|
|
+ projectPaySettingInfo.setBankAccountNumber(param.getBankAccountNumber());
|
|
|
+ projectPaySettingInfo.setBankName(param.getBankName());
|
|
|
+ projectPaySettingInfo.setBankSubName(param.getBankSubName());
|
|
|
+ projectPaySettingInfo.setState(param.getState());
|
|
|
+
|
|
|
return ResultContent.buildSuccess(projectPaySettingInfo);
|
|
|
}
|
|
|
|
|
|
- public ResultContent initChangeDefault(String id, String projectOid, PaymentType paymentType) {
|
|
|
- List<ProjectPaySettingInfo> list = projectPaySettingInfoDao.findByProjectOidAndChannelType(projectOid, paymentType);
|
|
|
+ public ResultContent initChangeDefault(String id, String belongOig, String projectOid, PaymentType paymentType) {
|
|
|
+ List<ProjectOrgPaySettingInfo> list = projectPaySettingInfoDao.findByBelongOigAndProjectOidAndChannelType(belongOig, projectOid, paymentType);
|
|
|
if (ObjectUtils.isNotEmpty(list)) {
|
|
|
- List<ProjectPaySettingInfo> _tempList = list.stream().filter(it -> it.getIsDefault() != null && it.getIsDefault()).collect(Collectors.toList());
|
|
|
+ List<ProjectOrgPaySettingInfo> _tempList = list.stream().filter(it -> it.getIsDefault() != null && it.getIsDefault()).collect(Collectors.toList());
|
|
|
if (ObjectUtils.isNotEmpty(_tempList)) {
|
|
|
if (_tempList.size() > 1 && StringUtils.isNotEmpty(id)) {
|
|
|
// 其他的设置为 非默认
|
|
|
@@ -368,7 +318,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
|
- ProjectPaySettingInfo first = list.get(0);
|
|
|
+ ProjectOrgPaySettingInfo first = list.get(0);
|
|
|
first.setIsDefault(Boolean.TRUE);
|
|
|
projectPaySettingInfoDao.save(first);
|
|
|
}
|
|
|
@@ -377,39 +327,31 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
- public ProjectPaySettingModel toModel(ProjectPaySetting entity) {
|
|
|
- ProjectPaySettingModel model = null;
|
|
|
- if (ObjectUtils.isNotEmpty(entity)) {
|
|
|
- model = new ProjectPaySettingModel();
|
|
|
- BeanUtils.copyProperties(entity, model);
|
|
|
- // 关联的支付产品信息
|
|
|
- model.setPayChannelConfigModel(projectChannelConfigService.getProjectPayChannelModel(entity.getChannelType()));
|
|
|
- // 判断是否完成配置
|
|
|
- ProjectPaySettingInfo settingInfo = projectPaySettingInfoDao.findTopByProjectOidAndChannelTypeAndIsDefault(entity.getProjectOid(), entity.getChannelType(), Boolean.TRUE);
|
|
|
- if (ObjectUtils.isNotEmpty(settingInfo)) {
|
|
|
- model.setIsConfig(Boolean.TRUE);
|
|
|
- }
|
|
|
- }
|
|
|
- return model;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 得到字段
|
|
|
*
|
|
|
- * @param configId
|
|
|
+ * @param
|
|
|
* @return
|
|
|
*/
|
|
|
- public ResultContent<PayConfigFieldModel> getFieldByConfigId(String configId) {
|
|
|
- ProjectPaySetting paySetting = projectPaySettingDao.findTopById(configId);
|
|
|
- if (ObjectUtils.isEmpty(paySetting)) {
|
|
|
- return ResultContent.buildFail("数据不存在");
|
|
|
+ public ResultContent<PayConfigFieldModel> getFieldByConfigId(PaymentTypeParam param) {
|
|
|
+ // 支付产品
|
|
|
+ PayChannelConfig payChannelConfig = payChannelConfigDao.findTopByPaymentType(param.getPaymentType());
|
|
|
+ if (ObjectUtils.isEmpty(payChannelConfig)) {
|
|
|
+ return ResultContent.buildFail("支付产品数据不存在");
|
|
|
}
|
|
|
- return getField(paySetting.getChannelType());
|
|
|
+ return getField(param.getPaymentType());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 得到支付渠道 动态参数
|
|
|
+ *
|
|
|
+ * @param paymentType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public ResultContent<PayConfigFieldModel> getField(PaymentType paymentType) {
|
|
|
PayConfigFieldModel model = new PayConfigFieldModel();
|
|
|
if (paymentType == PaymentType.WeChat) {
|
|
|
+ // 微信小程序支付
|
|
|
model.setApiName("saveWxPayConfig");
|
|
|
model.setFields(getWxConfig());
|
|
|
}
|
|
|
@@ -432,13 +374,16 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
return fields;
|
|
|
}
|
|
|
|
|
|
- public ProjectPaySettingInfoModel toModel(ProjectPaySettingInfo entity) {
|
|
|
+ public ProjectPaySettingInfoModel toModel(ProjectOrgPaySettingInfo entity) {
|
|
|
ProjectPaySettingInfoModel model = null;
|
|
|
if (ObjectUtils.isNotEmpty(entity)) {
|
|
|
model = new ProjectPaySettingInfoModel();
|
|
|
BeanUtils.copyProperties(entity, model);
|
|
|
- if (entity.getProjectPaySetting() != null) {
|
|
|
- model.setProjectPaySettingId(entity.getProjectPaySetting().getId());
|
|
|
+
|
|
|
+ // 支付产品logo
|
|
|
+ PayChannelConfig payChannelConfig = payChannelConfigDao.findTopByPaymentType(entity.getChannelType());
|
|
|
+ if (ObjectUtils.isNotEmpty(payChannelConfig)) {
|
|
|
+ model.setPayLogo(payChannelConfig.getLogo());
|
|
|
}
|
|
|
}
|
|
|
return model;
|
|
|
@@ -451,7 +396,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
* @param paymentType
|
|
|
* @return
|
|
|
*/
|
|
|
- public ResultContent<ProjectPaySettingInfo> getProjectConfig(String projectOid, PaymentType paymentType) {
|
|
|
+ public ResultContent<ProjectOrgPaySettingInfo> getProjectConfig(String projectOid, PaymentType paymentType) {
|
|
|
if (paymentType == null) {
|
|
|
return ResultContent.buildFail("PaymentType未指定");
|
|
|
}
|
|
|
@@ -465,17 +410,8 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
return ResultContent.buildFail(String.format("平台%s未启用", payName));
|
|
|
}
|
|
|
|
|
|
- // 项目的
|
|
|
- ProjectPaySetting paySetting = projectPaySettingDao.findTopByProjectOidAndChannelType(projectOid, paymentType);
|
|
|
- if (ObjectUtils.isEmpty(paySetting)) {
|
|
|
- return ResultContent.buildFail(String.format("项目未配置%s", payName));
|
|
|
- }
|
|
|
- if (paySetting.getState() == null || paySetting.getState() != DataState.Enable) {
|
|
|
- return ResultContent.buildFail(String.format("项目 %s未启动", payName));
|
|
|
- }
|
|
|
-
|
|
|
// 参数的配置 (默认状态的)
|
|
|
- ProjectPaySettingInfo paySettingInfo = projectPaySettingInfoDao.findTopByProjectOidAndChannelTypeAndIsDefault(projectOid, paymentType, Boolean.TRUE);
|
|
|
+ ProjectOrgPaySettingInfo paySettingInfo = projectPaySettingInfoDao.findTopByProjectOidAndChannelTypeAndIsDefault(projectOid, paymentType, Boolean.TRUE);
|
|
|
if (ObjectUtils.isEmpty(paySettingInfo)) {
|
|
|
return ResultContent.buildFail(String.format("%s没有默认的支付配置", payName));
|
|
|
}
|
|
|
@@ -483,8 +419,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
}
|
|
|
|
|
|
public ResultContent<PaymentType> getProjectPayment(String projectOid) {
|
|
|
- ProjectPaySetting paySetting = projectPaySettingDao.findTopByProjectOidAndState(
|
|
|
- projectOid, DataState.Enable);
|
|
|
+ ProjectPaySetting paySetting = projectPaySettingDao.findTopByProjectOidAndState(projectOid, DataState.Enable);
|
|
|
if (ObjectUtils.isEmpty(paySetting)) {
|
|
|
return ResultContent.buildFail(String.format("项目未设置可用的支付产品"));
|
|
|
}
|
|
|
@@ -503,8 +438,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
* @return
|
|
|
*/
|
|
|
public ResultContent upsertPayAccount(String projectOid, PaymentType paymentType) {
|
|
|
- ProjectPaySettingInfo entity = projectPaySettingInfoDao.findTopByProjectOidAndChannelTypeAndIsDefault(
|
|
|
- projectOid, paymentType, Boolean.TRUE);
|
|
|
+ ProjectOrgPaySettingInfo entity = projectPaySettingInfoDao.findTopByProjectOidAndChannelTypeAndIsDefault(projectOid, paymentType, Boolean.TRUE);
|
|
|
|
|
|
String payAccountName = orgPayAccountService.buildPayAccountName(projectOid, paymentType);
|
|
|
AccountModel accountModel = new AccountModel();
|
|
|
@@ -523,19 +457,15 @@ public class ProjectPaySettingServiceImpl extends SuperService {
|
|
|
appConf.setNotifyUrl(model.getNotifyUrl());
|
|
|
accountModel.setConf(appConf);
|
|
|
}
|
|
|
- ProjectPaySetting paySetting = projectPaySettingDao.findTopByProjectOidAndChannelType(projectOid, paymentType);
|
|
|
- if (ObjectUtils.isNotEmpty(paySetting)
|
|
|
- && paySetting.getState() != null && paySetting.getState() == DataState.Enable) {
|
|
|
- ProjectPaySetting projectPaySetting = entity.getProjectPaySetting();
|
|
|
- if (ObjectUtils.isNotEmpty(projectPaySetting) && projectPaySetting.getState() != null && projectPaySetting.getState() == DataState.Enable) {
|
|
|
- // 可用
|
|
|
+ // 支付产品
|
|
|
+ PayChannelConfig channelConfig = payChannelConfigDao.findTopByPaymentType(paymentType);
|
|
|
+ if (ObjectUtils.isNotEmpty(channelConfig)) {
|
|
|
+ if (channelConfig.getState() == null || channelConfig.getState() != DataState.Enable) {
|
|
|
disable = Boolean.FALSE;
|
|
|
} else {
|
|
|
- // 不可用
|
|
|
disable = Boolean.TRUE;
|
|
|
}
|
|
|
} else {
|
|
|
- // 不可用
|
|
|
disable = Boolean.TRUE;
|
|
|
}
|
|
|
} else {
|