Commit 26f29bcd authored by Administrator's avatar Administrator

创建项目

parent 0d9cd283
...@@ -13,7 +13,7 @@ import java.util.Map; ...@@ -13,7 +13,7 @@ import java.util.Map;
/** /**
* Created by Administrator on 2021/8/22 0022. * Created by Administrator on 2021/8/22 0022.
*/ */
public class AcquirerConfigurer { public class AcquirerPropertiesBuilder {
private Table<Class, Object, Object> bigTable = Tables.newCustomTable(Maps.newHashMap(), new Supplier() { private Table<Class, Object, Object> bigTable = Tables.newCustomTable(Maps.newHashMap(), new Supplier() {
public Map<Object, Object> get() { public Map<Object, Object> get() {
...@@ -21,11 +21,10 @@ public class AcquirerConfigurer { ...@@ -21,11 +21,10 @@ public class AcquirerConfigurer {
} }
}); });
public AcquirerPropertiesSource build(Collection<MchChannelEntity> entities){
public AcquirerConfiguration configure(Collection<MchChannelEntity> entities){ AcquirerPropertiesSource configuration = new AcquirerPropertiesSource();
AcquirerConfiguration configuration = new AcquirerConfiguration();
for (MchChannelEntity entity : entities) { for (MchChannelEntity entity : entities) {
AcquirerProperties profile = configure(entity); AcquirerProperties profile = build(entity);
configuration.add(profile); configuration.add(profile);
} }
return configuration; return configuration;
...@@ -35,7 +34,7 @@ public class AcquirerConfigurer { ...@@ -35,7 +34,7 @@ public class AcquirerConfigurer {
bigTable.clear(); bigTable.clear();
} }
public AcquirerProperties configure(MchChannelEntity entity) { public AcquirerProperties build(MchChannelEntity entity) {
AcquirerProperties profile = new AcquirerProperties(); AcquirerProperties profile = new AcquirerProperties();
profile.setMchChanId(entity.getId()); profile.setMchChanId(entity.getId());
...@@ -80,11 +79,11 @@ public class AcquirerConfigurer { ...@@ -80,11 +79,11 @@ public class AcquirerConfigurer {
} }
public class PayApp { public class PayApp {
public AcquirerConfigurer apps(Collection<PayAppEntity> entities) { public AcquirerPropertiesBuilder apps(Collection<PayAppEntity> entities) {
for (PayAppEntity entity : entities) { for (PayAppEntity entity : entities) {
bigTable.put(entity.getClass(), entity.getPayAppId(), entity); bigTable.put(entity.getClass(), entity.getPayAppId(), entity);
} }
return AcquirerConfigurer.this; return AcquirerPropertiesBuilder.this;
} }
} }
} }
...@@ -15,7 +15,7 @@ import java.util.Map; ...@@ -15,7 +15,7 @@ import java.util.Map;
/** /**
* Created by Administrator on 2021/8/22 0022. * Created by Administrator on 2021/8/22 0022.
*/ */
public class AcquirerConfiguration { public class AcquirerPropertiesSource {
private Table<String, String, Collection<AcquirerProperties>> bigTable = Tables.newCustomTable(Maps.newHashMap() private Table<String, String, Collection<AcquirerProperties>> bigTable = Tables.newCustomTable(Maps.newHashMap()
, new Supplier() { , new Supplier() {
......
package cn.quant.baa.pay.service; package cn.quant.baa.pay.component;
import cn.quant.baa.pay.acquirer.AcquirerProperties; import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.config.DictionaryViewer; import cn.quant.baa.pay.config.DictionaryViewer;
...@@ -9,6 +9,7 @@ import cn.quant.baa.pay.model.web.MerchantChannelResponseData; ...@@ -9,6 +9,7 @@ import cn.quant.baa.pay.model.web.MerchantChannelResponseData;
import cn.quant.spring.NotSupportedException; import cn.quant.spring.NotSupportedException;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collection; import java.util.Collection;
...@@ -19,7 +20,7 @@ import java.util.Map; ...@@ -19,7 +20,7 @@ import java.util.Map;
/** /**
* Created by Administrator on 2021/8/23 0023. * Created by Administrator on 2021/8/23 0023.
*/ */
@Service @Component
public class ModelBuilder { public class ModelBuilder {
@Autowired @Autowired
......
package cn.quant.baa.pay.config;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesBuilder;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.MerchantAcquirer;
import cn.quant.baa.pay.acquirer.alipay.AlipayMerchantAcquirer;
import cn.quant.baa.pay.acquirer.weixin.WeiXinMerchantAcquirer;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.jpa.repository.*;
import cn.quant.baa.pay.model.DictionaryItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Collection;
import java.util.List;
/**
* Created by Administrator on 2021/8/22 0022.
*/
@Configuration
public class AcquirerConfiguration {
@Autowired
private PayAccountRepository payAccountRepository;
@Autowired
private PayAppRepository payAppRepository;
@Autowired
private PayFeatureRepository payFeatureRepository;
@Autowired
private MchChannelRepository mchChannelRepository;
public AcquirerPropertiesBuilder getBuilder() {
List<PayAccountEntity> accounts = payAccountRepository.findAll();
List<PayFeatureEntity> features = payFeatureRepository.findAll();
List<PayAppEntity> apps = payAppRepository.findAll();
AcquirerPropertiesBuilder builder = new AcquirerPropertiesBuilder();
builder.accounts(accounts)
.features(features)
.apps(apps);
accounts.clear();
features.clear();
apps.clear();
return builder;
}
@Bean
public AcquirerPropertiesSource acquirerPropertiesSource() {
AcquirerPropertiesBuilder builder = getBuilder();
List<MchChannelEntity> entities = mchChannelRepository.findAll();
AcquirerPropertiesSource source = builder.build(entities);
builder.release();
entities.clear();
return source;
}
@Bean
public MerchantAcquirer acquirer(AcquirerPropertiesSource acquirerPropertiesSource) throws Exception {
MerchantAcquirer merchantAcquirer = MerchantAcquirer.getInstance();
Collection<AcquirerProperties> properties = acquirerPropertiesSource.getAll();
for (AcquirerProperties property : properties) {
if("WXP".equals(property.getPayChanCode())){
WeiXinMerchantAcquirer acquirer = new WeiXinMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
} else if ("ALIP".equals(property.getPayChanCode())) {
AlipayMerchantAcquirer acquirer = new AlipayMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
}
}
return merchantAcquirer;
}
}
package cn.quant.baa.pay.config; package cn.quant.baa.pay.config;
import cn.quant.baa.pay.dict.DictType;
import cn.quant.baa.pay.model.DictionaryItem; import cn.quant.baa.pay.model.DictionaryItem;
import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
......
package cn.quant.baa.pay.config; package cn.quant.baa.pay.config;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration; import cn.quant.baa.pay.jpa.entity.DictionaryEntity;
import cn.quant.baa.pay.acquirer.AcquirerConfigurer; import cn.quant.baa.pay.jpa.repository.DictionaryRepository;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.MerchantAcquirer;
import cn.quant.baa.pay.acquirer.alipay.AlipayMerchantAcquirer;
import cn.quant.baa.pay.acquirer.weixin.WeiXinMerchantAcquirer;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.jpa.repository.*;
import cn.quant.baa.pay.model.DictionaryItem; import cn.quant.baa.pay.model.DictionaryItem;
import cn.quant.spring.data.jpa.PersistentEntityInvoker;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.repository.support.Repositories;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
* Created by Administrator on 2021/8/22 0022. * Created by Administrator on 2021/9/18 0018.
*/ */
@Configuration @Configuration
public class ServerConfiguration { public class ServerConfiguration {
@Autowired
private PayAccountRepository payAccountRepository;
@Autowired
private PayAppRepository payAppRepository;
@Autowired
private PayFeatureRepository payFeatureRepository;
@Autowired
private MchChannelRepository mchChannelRepository;
@Autowired @Autowired
private DictionaryRepository dictionaryRepository; private DictionaryRepository dictionaryRepository;
public AcquirerConfigurer configurer() { @Autowired
List<PayAccountEntity> accounts = payAccountRepository.findAll(); private ApplicationContext applicationContext;
List<PayFeatureEntity> features = payFeatureRepository.findAll();
List<PayAppEntity> apps = payAppRepository.findAll();
AcquirerConfigurer configurer = new AcquirerConfigurer();
configurer.accounts(accounts)
.features(features)
.apps(apps);
accounts.clear();
features.clear();
apps.clear();
return configurer;
}
@Bean @Bean
public DictionaryViewer dictionaryViewer() { public DictionaryViewer dictionaryViewer() {
...@@ -69,30 +40,10 @@ public class ServerConfiguration { ...@@ -69,30 +40,10 @@ public class ServerConfiguration {
} }
@Bean @Bean
public AcquirerConfiguration acquirerConfiguration() { public PersistentEntityInvoker persistentEntityInvoker() {
AcquirerConfigurer configurer = configurer(); Repositories repositories = new Repositories(applicationContext);
List<MchChannelEntity> entities = mchChannelRepository.findAll(); PersistentEntityInvoker invoker = new PersistentEntityInvoker(repositories);
AcquirerConfiguration configuration = configurer.configure(entities); return invoker;
configurer.release();
entities.clear();
return configuration;
}
@Bean
public MerchantAcquirer acquirer(AcquirerConfiguration acquirerConfiguration) throws Exception {
MerchantAcquirer merchantAcquirer = MerchantAcquirer.getInstance();
Collection<AcquirerProperties> properties = acquirerConfiguration.getAll();
for (AcquirerProperties property : properties) {
if("WXP".equals(property.getPayChanCode())){
WeiXinMerchantAcquirer acquirer = new WeiXinMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
} else if ("ALIP".equals(property.getPayChanCode())) {
AlipayMerchantAcquirer acquirer = new AlipayMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
}
}
return merchantAcquirer;
} }
} }
package cn.quant.baa.pay.jpa.entity; package cn.quant.baa.pay.jpa;
import cn.quant.baa.pay.acquirer.AcquirerProperties; import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.context.TransactionSession; import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.dict.*; import cn.quant.baa.pay.dict.*;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.model.web.GoodsDetail; import cn.quant.baa.pay.model.web.GoodsDetail;
import cn.quant.baa.pay.model.web.PayRequestData; import cn.quant.baa.pay.model.web.PayRequestData;
import cn.quant.spring.util.DateUtils; import cn.quant.spring.util.DateUtils;
......
package cn.quant.baa.pay.jpa.entity; package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds; import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import javax.persistence.Column; import javax.persistence.Column;
...@@ -12,7 +12,7 @@ import java.util.Objects; ...@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/25 0025. * Created by Administrator on 2021/8/25 0025.
*/ */
@Embeddable @Embeddable
public class AccountIds extends EntityPrimaryIds implements Serializable { public class AccountIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = -3364378648694932295L; private static final long serialVersionUID = -3364378648694932295L;
private final static String CLASS_NAME = AccountEntity.class.getSimpleName(); private final static String CLASS_NAME = AccountEntity.class.getSimpleName();
......
...@@ -19,6 +19,7 @@ import java.util.Objects; ...@@ -19,6 +19,7 @@ import java.util.Objects;
public class CustomerEntity extends DescribablePartitionEntity implements Serializable { public class CustomerEntity extends DescribablePartitionEntity implements Serializable {
private final static String CLASS_NAME = CustomerEntity.class.getSimpleName(); private final static String CLASS_NAME = CustomerEntity.class.getSimpleName();
private static final long serialVersionUID = 2591866260454689833L;
@Id @Id
@Column(name = "CUSTOMER_ID", nullable = false) @Column(name = "CUSTOMER_ID", nullable = false)
......
...@@ -17,6 +17,7 @@ import java.util.Objects; ...@@ -17,6 +17,7 @@ import java.util.Objects;
@Table(name = "dictionary") @Table(name = "dictionary")
public class DictionaryEntity extends OptimisticEntity implements Serializable { public class DictionaryEntity extends OptimisticEntity implements Serializable {
private static final long serialVersionUID = -4339755594508649928L;
@EmbeddedId @EmbeddedId
private DictionaryIds ids; private DictionaryIds ids;
......
package cn.quant.baa.pay.jpa.entity; package cn.quant.baa.pay.jpa.entity;
import cn.quant.baa.pay.dict.DictType; import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Embeddable; import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects; import java.util.Objects;
...@@ -15,7 +12,7 @@ import java.util.Objects; ...@@ -15,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/23 0023. * Created by Administrator on 2021/8/23 0023.
*/ */
@Embeddable @Embeddable
public class DictionaryIds extends EntityPrimaryIds implements Serializable { public class DictionaryIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = 7804804141804874320L; private static final long serialVersionUID = 7804804141804874320L;
......
package cn.quant.baa.pay.jpa.entity; package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds; import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import javax.persistence.Column; import javax.persistence.Column;
...@@ -12,7 +12,7 @@ import java.util.Objects; ...@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/22 0022. * Created by Administrator on 2021/8/22 0022.
*/ */
@Embeddable @Embeddable
public class PayAccountIds extends EntityPrimaryIds implements Serializable { public class PayAccountIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = 5987381896875415656L; private static final long serialVersionUID = 5987381896875415656L;
......
package cn.quant.baa.pay.jpa.entity; package cn.quant.baa.pay.jpa.entity;
import cn.quant.baa.pay.dict.AccessCode; import cn.quant.baa.pay.dict.AccessCode;
import cn.quant.baa.pay.dict.AccessType; import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import javax.persistence.Column; import javax.persistence.Column;
...@@ -16,7 +15,7 @@ import java.util.Objects; ...@@ -16,7 +15,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/22 0022. * Created by Administrator on 2021/8/22 0022.
*/ */
@Embeddable @Embeddable
public class PayFeatureIds extends EntityPrimaryIds implements Serializable { public class PayFeatureIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = -8852766242045564647L; private static final long serialVersionUID = -8852766242045564647L;
......
package cn.quant.baa.pay.jpa.entity; package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds; import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import javax.persistence.Column; import javax.persistence.Column;
...@@ -12,7 +12,7 @@ import java.util.Objects; ...@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/26 0026. * Created by Administrator on 2021/8/26 0026.
*/ */
@Embeddable @Embeddable
public class PayHistoryIds extends EntityPrimaryIds implements Serializable { public class PayHistoryIds extends PrimaryIds implements Serializable {
public final static String CLASS_NAME = PayHistoryEntity.class.getSimpleName(); public final static String CLASS_NAME = PayHistoryEntity.class.getSimpleName();
@Column(name = "INSTITUTION_ID", nullable = false, updatable = false, length = 4) @Column(name = "INSTITUTION_ID", nullable = false, updatable = false, length = 4)
......
...@@ -3,7 +3,10 @@ package cn.quant.baa.pay.jpa.entity; ...@@ -3,7 +3,10 @@ package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.DescriptionEntity; import cn.quant.spring.data.jpa.entity.DescriptionEntity;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -11,7 +14,9 @@ import java.util.Objects; ...@@ -11,7 +14,9 @@ import java.util.Objects;
*/ */
@Entity @Entity
@Table(name = "status_code") @Table(name = "status_code")
public class StatusCodeEntity extends DescriptionEntity{ public class StatusCodeEntity extends DescriptionEntity {
private static final long serialVersionUID = -247953772558454731L;
@EmbeddedId @EmbeddedId
private StatusCodeIds ids; private StatusCodeIds ids;
...@@ -113,6 +118,18 @@ public class StatusCodeEntity extends DescriptionEntity{ ...@@ -113,6 +118,18 @@ public class StatusCodeEntity extends DescriptionEntity{
this.messageCode = messageCode; this.messageCode = messageCode;
} }
public String getInstitutionId(){
return this.ids.getInstitutionId();
}
public String getEntity(){
return this.ids.getEntity();
}
public String getCode(){
return this.ids.getCode();
}
@Override @Override
public String getPersistentKey() { public String getPersistentKey() {
return ids.getPersistentKey(); return ids.getPersistentKey();
......
package cn.quant.baa.pay.jpa.entity; package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds; import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import javax.persistence.Column; import javax.persistence.Column;
...@@ -12,7 +12,7 @@ import java.util.Objects; ...@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/9/13 0013. * Created by Administrator on 2021/9/13 0013.
*/ */
@Embeddable @Embeddable
public class StatusCodeIds extends EntityPrimaryIds implements Serializable { public class StatusCodeIds extends PrimaryIds implements Serializable {
public final static String CLASS_NAME = StatusCodeEntity.class.getSimpleName(); public final static String CLASS_NAME = StatusCodeEntity.class.getSimpleName();
private static final long serialVersionUID = 6497603433019425612L; private static final long serialVersionUID = 6497603433019425612L;
......
package cn.quant.baa.pay.model; package cn.quant.baa.pay.model;
import cn.quant.spring.data.jpa.PersistentObject;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Created by Administrator on 2021/9/13 0013. * Created by Administrator on 2021/9/13 0013.
*/ */
public class StatusCodeDTO implements Serializable{ public class StatusCode implements PersistentObject, Serializable {
private static final long serialVersionUID = 952357481570545998L; private static final long serialVersionUID = 952357481570545998L;
private String institutionId; private String institutionId;
private String entity; private String entity;
...@@ -109,7 +111,7 @@ public class StatusCodeDTO implements Serializable{ ...@@ -109,7 +111,7 @@ public class StatusCodeDTO implements Serializable{
@Override @Override
public String toString() { public String toString() {
final StringBuilder sb = new StringBuilder("StatusCodeDTO{"); final StringBuilder sb = new StringBuilder("StatusCode{");
sb.append("institutionId='").append(institutionId).append('\''); sb.append("institutionId='").append(institutionId).append('\'');
sb.append(", entity='").append(entity).append('\''); sb.append(", entity='").append(entity).append('\'');
sb.append(", code='").append(code).append('\''); sb.append(", code='").append(code).append('\'');
......
package cn.quant.baa.pay.model.web; package cn.quant.baa.pay.model.web;
import cn.quant.spring.data.jpa.repository.PersistentKey; import cn.quant.spring.data.jpa.PersistentKey;
import cn.quant.spring.util.StringUtils; import cn.quant.spring.util.StringUtils;
import java.io.Serializable; import java.io.Serializable;
......
...@@ -3,7 +3,7 @@ package cn.quant.baa.pay.service; ...@@ -3,7 +3,7 @@ package cn.quant.baa.pay.service;
import cn.quant.baa.pay.context.TransactionSession; import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.jpa.entity.AccountEntity; import cn.quant.baa.pay.jpa.entity.AccountEntity;
import cn.quant.baa.pay.jpa.entity.AccountIds; import cn.quant.baa.pay.jpa.entity.AccountIds;
import cn.quant.baa.pay.jpa.entity.EntityBuilder; import cn.quant.baa.pay.jpa.EntityBuilder;
import cn.quant.spring.IllegalParameterException; import cn.quant.spring.IllegalParameterException;
import cn.quant.spring.NullException; import cn.quant.spring.NullException;
import cn.quant.spring.context.ContextLoader; import cn.quant.spring.context.ContextLoader;
......
package cn.quant.baa.pay.service; package cn.quant.baa.pay.service;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import cn.quant.baa.pay.acquirer.AcquirerProperties; import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.component.ModelBuilder;
import cn.quant.baa.pay.config.LocalCacheConfiguration; import cn.quant.baa.pay.config.LocalCacheConfiguration;
import cn.quant.baa.pay.model.web.MerchantAcquirerProperties; import cn.quant.baa.pay.model.web.MerchantAcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantChannelRequestData; import cn.quant.baa.pay.model.web.MerchantChannelRequestData;
...@@ -21,7 +22,7 @@ import java.util.Map; ...@@ -21,7 +22,7 @@ import java.util.Map;
@Service @Service
public class MerchantStorageService { public class MerchantStorageService {
@Autowired @Autowired
private AcquirerConfiguration acquirerConfiguration; private AcquirerPropertiesSource acquirerPropertiesSource;
@Autowired @Autowired
private ModelBuilder modelBuilder; private ModelBuilder modelBuilder;
...@@ -29,19 +30,18 @@ public class MerchantStorageService { ...@@ -29,19 +30,18 @@ public class MerchantStorageService {
@Autowired @Autowired
private CacheManager cacheManager; private CacheManager cacheManager;
@Cacheable(cacheManager = LocalCacheConfiguration.LOCAL_CACHE_MANAGER @Cacheable(cacheManager = LocalCacheConfiguration.LOCAL_CACHE_MANAGER
, cacheNames = LocalCacheConfiguration.LOCAL_CACHE_ACQUIRER , cacheNames = LocalCacheConfiguration.LOCAL_CACHE_ACQUIRER
, key = "'MerchantChannel$'+#requestData.getPersistentKey()") , key = "'MerchantChannel$'+#requestData.persistentKey")
public Map<String, MerchantChannelResponseData> getChannels(MerchantChannelRequestData requestData) { public Map<String, MerchantChannelResponseData> getChannels(MerchantChannelRequestData requestData) {
String mchId = requestData.getMchId(); String mchId = requestData.getMchId();
String channel = requestData.getChannel(); String channel = requestData.getChannel();
Map<String, Collection<AcquirerProperties>> profiles; Map<String, Collection<AcquirerProperties>> profiles;
if (StringUtils.isEmpty(channel)) { if (StringUtils.isEmpty(channel)) {
profiles = acquirerConfiguration.get(mchId); profiles = acquirerPropertiesSource.get(mchId);
} else { } else {
profiles = acquirerConfiguration.get(mchId, channel); profiles = acquirerPropertiesSource.get(mchId, channel);
} }
Map<String, MerchantChannelResponseData> response = modelBuilder.toModel(profiles, requestData.getAccess()); Map<String, MerchantChannelResponseData> response = modelBuilder.toModel(profiles, requestData.getAccess());
...@@ -52,7 +52,7 @@ public class MerchantStorageService { ...@@ -52,7 +52,7 @@ public class MerchantStorageService {
, cacheNames = LocalCacheConfiguration.LOCAL_CACHE_ACQUIRER , cacheNames = LocalCacheConfiguration.LOCAL_CACHE_ACQUIRER
, key = "'MerchantChannel$'+#id") , key = "'MerchantChannel$'+#id")
public MerchantAcquirerProperties getChannel(Long id) { public MerchantAcquirerProperties getChannel(Long id) {
AcquirerProperties profile = acquirerConfiguration.get(id); AcquirerProperties profile = acquirerPropertiesSource.get(id);
return modelBuilder.toModel(profile); return modelBuilder.toModel(profile);
} }
} }
package cn.quant.baa.pay.service;
import cn.quant.baa.pay.config.LocalCacheConfiguration;
import cn.quant.baa.pay.jpa.entity.StatusCodeEntity;
import cn.quant.baa.pay.jpa.entity.StatusCodeIds;
import cn.quant.baa.pay.model.StatusCode;
import cn.quant.spring.data.jpa.PersistentEntityInvoker;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
/**
* Created by Administrator on 2021/9/18 0018.
*/
@Service
public class ProfileStorageService {
@Autowired
private PersistentEntityInvoker persistentEntityInvoker;
@Cacheable(cacheManager = LocalCacheConfiguration.LOCAL_CACHE_MANAGER
, cacheNames = LocalCacheConfiguration.LOCAL_CACHE_PROFILE
, key = "#ids.persistentKey")
public StatusCode getStatusCode(StatusCodeIds ids) throws Exception {
StatusCode code = persistentEntityInvoker.Invoke(ids, StatusCodeEntity.class, StatusCode.class);
return code;
}
}
...@@ -20,8 +20,8 @@ import java.time.format.DateTimeFormatter; ...@@ -20,8 +20,8 @@ import java.time.format.DateTimeFormatter;
/** /**
* <p><b>Application VM Option:</b><br/> * <p><b>Application VM Option:</b><br/>
* <code>--spring.config.file=${project.configure.directory}/target/config/application-dev.properties </code><br/> * <code>--spring.config.file=${project.build.directory}/target/config/application-dev.properties </code><br/>
* <code>-Dlogging.config=${project.configure.directory}/target/config/logback-spring.xml</code></p> * <code>-Dlogging.config=${project.build.directory}/target/config/logback-spring.xml</code></p>
* <p><b>Enable Dubbo Annotation: </b><br/> * <p><b>Enable Dubbo Annotation: </b><br/>
* <code>@org.springframework.context.annotation.ImportResource(locations = {"classpath:application-dubbo.xml"})</code></p> * <code>@org.springframework.context.annotation.ImportResource(locations = {"classpath:application-dubbo.xml"})</code></p>
*/ */
......
package cn.quant.baa.pay.rest; package cn.quant.baa.pay.rest;
import cn.quant.baa.pay.jpa.entity.StatusCodeIds;
import cn.quant.baa.pay.model.StatusCode;
import cn.quant.baa.pay.model.web.MerchantAcquirerProperties; import cn.quant.baa.pay.model.web.MerchantAcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantChannelResponseData; import cn.quant.baa.pay.model.web.MerchantChannelResponseData;
import cn.quant.baa.pay.model.web.MerchantChannelRequestData; import cn.quant.baa.pay.model.web.MerchantChannelRequestData;
import cn.quant.baa.pay.annotation.BusinessMapping; import cn.quant.baa.pay.annotation.BusinessMapping;
import cn.quant.baa.pay.context.TransactionSession; import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.service.ProfileStorageService;
import cn.quant.baa.pay.util.AssertUtils; import cn.quant.baa.pay.util.AssertUtils;
import cn.quant.baa.pay.model.BusinessRequest; import cn.quant.baa.pay.model.BusinessRequest;
import cn.quant.baa.pay.service.MerchantStorageService; import cn.quant.baa.pay.service.MerchantStorageService;
...@@ -44,7 +47,6 @@ public class MerchantController extends AbstractController { ...@@ -44,7 +47,6 @@ public class MerchantController extends AbstractController {
AssertUtils.throwMessage(EMPTY_REQ_DATA); AssertUtils.throwMessage(EMPTY_REQ_DATA);
} }
Map<String, MerchantChannelResponseData> channels = merchantStorageService.getChannels(data); Map<String, MerchantChannelResponseData> channels = merchantStorageService.getChannels(data);
ResponseEntity<HttpResponseData> entity = succeed(requestId, channels); ResponseEntity<HttpResponseData> entity = succeed(requestId, channels);
return entity; return entity;
...@@ -53,7 +55,8 @@ public class MerchantController extends AbstractController { ...@@ -53,7 +55,8 @@ public class MerchantController extends AbstractController {
@ResponseBody @ResponseBody
@BusinessMapping(session = 1) @BusinessMapping(session = 1)
@PostMapping("/one") @PostMapping("/one")
public ResponseEntity one(@RequestBody BusinessRequest<MerchantChannelRequestData> request) { public ResponseEntity one(@RequestBody BusinessRequest<MerchantChannelRequestData> request) throws Exception {
TransactionSession session = TransactionSession.session(); TransactionSession session = TransactionSession.session();
String requestId = session.getRequestId(); String requestId = session.getRequestId();
......
package cn.quant.baa.pay.service; package cn.quant.baa.pay.service;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration; import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.acquirer.AcquirerProperties; import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.MerchantAcquirer; import cn.quant.baa.pay.acquirer.MerchantAcquirer;
import cn.quant.baa.pay.context.TransactionSession; import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.jpa.EntityBuilder;
import cn.quant.baa.pay.jpa.entity.*; import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.model.web.*; import cn.quant.baa.pay.model.web.*;
import cn.quant.baa.pay.util.AssertUtils; import cn.quant.baa.pay.util.AssertUtils;
...@@ -29,7 +30,7 @@ public class TransactionService extends BusinessService { ...@@ -29,7 +30,7 @@ public class TransactionService extends BusinessService {
private static final Logger logger = LoggerFactory.getLogger(TransactionService.class); private static final Logger logger = LoggerFactory.getLogger(TransactionService.class);
@Autowired @Autowired
private AcquirerConfiguration acquirerConfiguration; private AcquirerPropertiesSource acquirerPropertiesSource;
@Autowired @Autowired
private MerchantAcquirer acquirer; private MerchantAcquirer acquirer;
...@@ -42,14 +43,13 @@ public class TransactionService extends BusinessService { ...@@ -42,14 +43,13 @@ public class TransactionService extends BusinessService {
} }
} }
@Transactional @Transactional
public TransactionSession payHistory(PayRequestData data) { public TransactionSession payHistory(PayRequestData data) {
validate(data); validate(data);
String chanId = data.getChanId(); String chanId = data.getChanId();
AcquirerProperties profile = acquirerConfiguration.get(Long.valueOf(chanId)); AcquirerProperties profile = acquirerPropertiesSource.get(Long.valueOf(chanId));
if (profile == null) { if (profile == null) {
AssertUtils.throwMessage(ACQUIRER_NOSUCH, chanId); AssertUtils.throwMessage(ACQUIRER_NOSUCH, chanId);
} }
......
...@@ -16,7 +16,7 @@ import java.nio.charset.Charset; ...@@ -16,7 +16,7 @@ import java.nio.charset.Charset;
/** /**
* <p><b>JUnit VM Option:</b><br/> * <p><b>JUnit VM Option:</b><br/>
* <code>-Dspring.config.file=${project.configure.directory}/target/config/application-dev.properties </code><br/> * <code>-Dspring.config.file=${project.build.directory}/target/config/application-dev.properties </code><br/>
* </p> * </p>
*/ */
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment