@Size(max = 255) | @Size(max = 255) | ||||
@Column(name = "SOLUTION") | @Column(name = "SOLUTION") | ||||
private String solution;//处理方案 | private String solution;//处理方案 | ||||
@NotBlank | |||||
@NotNull | |||||
@Column(name = "SOURCE_IN") | @Column(name = "SOURCE_IN") | ||||
// @Enumerated(EnumType.STRING) | |||||
@Enumerated(EnumType.STRING) | |||||
private SourceType sourceIn;//下黑来源 | private SourceType sourceIn;//下黑来源 | ||||
} | } |
package cn.com.taiji.core.entity.basic; | package cn.com.taiji.core.entity.basic; | ||||
import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity; | import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity; | ||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | |||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | import cn.com.taiji.core.entity.dict.basic.SourceType; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
import lombok.Setter; | import lombok.Setter; | ||||
@NotNull | @NotNull | ||||
@Column(name = "TYPE") | @Column(name = "TYPE") | ||||
@Enumerated(EnumType.STRING) | @Enumerated(EnumType.STRING) | ||||
private CardBlackType type;//黑名单类型 | |||||
private ObuBlackType type;//黑名单类型 | |||||
@NotNull | @NotNull | ||||
@Column(name = "STATUS") | @Column(name = "STATUS") | ||||
private Integer status;//状态 | private Integer status;//状态 |
import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity; | import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity; | ||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | import cn.com.taiji.core.entity.dict.basic.CardBlackType; | ||||
import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | |||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | import cn.com.taiji.core.entity.dict.basic.SourceType; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
import lombok.Setter; | import lombok.Setter; | ||||
@NotNull | @NotNull | ||||
@Column(name = "TYPE") | @Column(name = "TYPE") | ||||
@Enumerated(EnumType.STRING) | @Enumerated(EnumType.STRING) | ||||
private CardBlackType type;//类型 | |||||
private ObuBlackType type;//类型 | |||||
@NotBlank | @NotBlank | ||||
@Size(max = 32) | @Size(max = 32) | ||||
@Column(name = "OBU_ID") | @Column(name = "OBU_ID") |
import java.time.format.DateTimeFormatter; | import java.time.format.DateTimeFormatter; | ||||
@Getter | @Getter | ||||
@Setter | @Setter | ||||
public abstract class AbstractBlsResponse extends AbstractSignTypeResponse { | |||||
public class AbstractBlsResponse extends AbstractSignTypeResponse { | |||||
private Integer uploadStatus;// 0-失败 1-成功 | private Integer uploadStatus;// 0-失败 1-成功 | ||||
private String info = "成功."; | private String info = "成功."; |
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | ||||
import cn.com.taiji.core.entity.basic.QtkBlackCard; | import cn.com.taiji.core.entity.basic.QtkBlackCard; | ||||
import org.springframework.data.jpa.repository.Modifying; | |||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | |||||
import org.springframework.data.jpa.repository.Query; | import org.springframework.data.jpa.repository.Query; | ||||
import org.springframework.transaction.annotation.Transactional; | |||||
import java.util.Calendar; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | |||||
public interface QtkBlackCardRepo extends AbstractJpaRepo<QtkBlackCard, String> { | public interface QtkBlackCardRepo extends AbstractJpaRepo<QtkBlackCard, String> { | ||||
@Query("from QtkBlackCard where cardId=?1 and status=?2") | @Query("from QtkBlackCard where cardId=?1 and status=?2") | ||||
public List<QtkBlackCard> listCardBlackByStatus(String cardId, int status); | public List<QtkBlackCard> listCardBlackByStatus(String cardId, int status); | ||||
@Query("from QtkBlackCard where cardId=?1 and type = ?2 order by creationTime desc") | |||||
List<QtkBlackCard> queryByCardIdAndType(String cardId, CardBlackType type); | |||||
} | } |
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | ||||
import cn.com.taiji.core.entity.basic.QtkBlackObu; | import cn.com.taiji.core.entity.basic.QtkBlackObu; | ||||
import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | |||||
import org.springframework.data.jpa.repository.Query; | import org.springframework.data.jpa.repository.Query; | ||||
import java.util.List; | import java.util.List; | ||||
public interface QtkBlackObuRepo extends AbstractJpaRepo<QtkBlackObu, String>{ | public interface QtkBlackObuRepo extends AbstractJpaRepo<QtkBlackObu, String>{ | ||||
@Query("from QtkBlackObu where obuId=?1 and status = ?2") | |||||
@Query(" from QtkBlackObu where obuId=?1 and status = ?2") | |||||
public List<QtkBlackObu> listObuBlackByStatus(String obuId, Integer status); | public List<QtkBlackObu> listObuBlackByStatus(String obuId, Integer status); | ||||
@Query(" from QtkBlackObu where obuId = ?1 and type = ?2 order by creationTime desc") | |||||
List<QtkBlackObu> queryByObuIdAndType(String obuId, ObuBlackType type); | |||||
} | } |
@Query("from QtkCardInfo as c where c.customerId =?1 and c.vehicleId = ?2 order by c.insertTime desc") | @Query("from QtkCardInfo as c where c.customerId =?1 and c.vehicleId = ?2 order by c.insertTime desc") | ||||
List<QtkCardInfo> listByCustomerIdAndVehicleId(String customerId, String vehicleId); | List<QtkCardInfo> listByCustomerIdAndVehicleId(String customerId, String vehicleId); | ||||
@Query("select cardId from QtkCardInfo where vehicleId = ?1") | |||||
List<String> queryByVehicleId(String vehicleId); | |||||
} | } |
@Query("from QtkObuInfo where vehicleId = ?1 and obuStatus in obuStatus ") | @Query("from QtkObuInfo where vehicleId = ?1 and obuStatus in obuStatus ") | ||||
public List<QtkObuInfo> listObuByVehicleIdInUse(String vehicleId, ObuStatus[] obuStatus); | public List<QtkObuInfo> listObuByVehicleIdInUse(String vehicleId, ObuStatus[] obuStatus); | ||||
@Query("select obuId from QtkObuInfo where vehicleId = ?1 ") | |||||
List<String> queryByVehicleId(String vehicleId); | |||||
} | } |
package cn.com.taiji.core.repo.request.bls; | |||||
import cn.com.taiji.common.pub.dao.HqlBuilder; | |||||
import cn.com.taiji.common.repo.request.jpa.JpaDateTimePageableDataRequest; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackCardHis; | |||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
@Getter | |||||
@Setter | |||||
public class BlackCardHisPageRequest extends JpaDateTimePageableDataRequest<QtkBlackCardHis>{ | |||||
private CardBlackType type;// 类型 | |||||
private String cardId;// 卡号 | |||||
private List<String> cardIds; | |||||
private List<String> cardIdList; | |||||
private Integer status;// 1-在黑 2-已返白 | |||||
private LocalDateTime startTime;//开始时间 | |||||
private LocalDateTime endTime;//结束时间 | |||||
public BlackCardHisPageRequest() { | |||||
this.orderBy="creationTime"; | |||||
this.desc=true; | |||||
} | |||||
@Override | |||||
public HqlBuilder toSelectHql(){ | |||||
HqlBuilder hql = new HqlBuilder("from QtkBlackCardHis where 1=1 "); | |||||
hql.append(" and type = :type",type); | |||||
hql.append(" and cardId = :cardId",cardId); | |||||
hql.append(" and cardId in :cardIds",cardIds); | |||||
hql.append(" and cardId in :cardIdList",cardIdList); | |||||
hql.append(" and status=:status",status); | |||||
hql.append(" creationTime >= startTime",startTime); | |||||
hql.append(" creationTime <= endTime",endTime); | |||||
return hql; | |||||
} | |||||
} |
package cn.com.taiji.core.repo.request.bls; | |||||
import cn.com.taiji.common.pub.dao.HqlBuilder; | |||||
import cn.com.taiji.common.repo.request.jpa.JpaDateTimePageableDataRequest; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackCard; | |||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | |||||
import cn.com.taiji.core.entity.dict.invw.InvDeviceStatus; | |||||
import cn.com.taiji.core.entity.invw.InvwCardDetails; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
@Getter | |||||
@Setter | |||||
public class BlackCardPageRequest extends JpaDateTimePageableDataRequest<QtkBlackCard>{ | |||||
private CardBlackType type;// 类型 | |||||
private String cardId;// 卡号 | |||||
private List<String> cardIds; | |||||
private List<String> cardIdList; | |||||
private Integer status;// 1-在黑 2-已返白 | |||||
private LocalDateTime startTime;//开始时间 | |||||
private LocalDateTime endTime;//结束时间 | |||||
public BlackCardPageRequest() { | |||||
this.orderBy="creationTime"; | |||||
this.desc=true; | |||||
} | |||||
@Override | |||||
public HqlBuilder toSelectHql(){ | |||||
HqlBuilder hql = new HqlBuilder("from QtkBlackCard where 1=1 "); | |||||
hql.append(" and type = :type",type); | |||||
hql.append(" and cardId = :cardId",cardId); | |||||
hql.append(" and cardId in :cardIds",cardIds); | |||||
hql.append(" and cardId in :cardIdList",cardIdList); | |||||
hql.append(" and status=:status",status); | |||||
hql.append(" creationTime >= startTime",startTime); | |||||
hql.append(" creationTime <= endTime",endTime); | |||||
return hql; | |||||
} | |||||
} |
package cn.com.taiji.core.repo.request.bls; | |||||
import cn.com.taiji.common.pub.dao.HqlBuilder; | |||||
import cn.com.taiji.common.repo.request.jpa.JpaDateTimePageableDataRequest; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackObuHis; | |||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
@Getter | |||||
@Setter | |||||
public class BlackObuHisPageRequest extends JpaDateTimePageableDataRequest<QtkBlackObuHis>{ | |||||
private ObuBlackType type;// 类型 | |||||
private String obuId;// 卡号 | |||||
private List<String> obuIds; | |||||
private List<String> obuIdList; | |||||
private Integer status;// 1-在黑 2-已返白 | |||||
private LocalDateTime startTime;//开始时间 | |||||
private LocalDateTime endTime;//结束时间 | |||||
public BlackObuHisPageRequest() { | |||||
this.orderBy="creationTime"; | |||||
this.desc=true; | |||||
} | |||||
@Override | |||||
public HqlBuilder toSelectHql(){ | |||||
HqlBuilder hql = new HqlBuilder("from QtkBlackObuHis where 1=1 "); | |||||
hql.append(" and type = :type",type); | |||||
hql.append(" and obuId = :obuId",obuId); | |||||
hql.append(" and obuId in :obuIds",obuIds); | |||||
hql.append(" and obuId in :obuIdList",obuIdList); | |||||
hql.append(" and status=:status",status); | |||||
hql.append(" creationTime >= startTime",startTime); | |||||
hql.append(" creationTime <= endTime",endTime); | |||||
return hql; | |||||
} | |||||
} |
package cn.com.taiji.core.repo.request.bls; | |||||
import cn.com.taiji.common.pub.dao.HqlBuilder; | |||||
import cn.com.taiji.common.repo.request.jpa.JpaDateTimePageableDataRequest; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackObu; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
@Getter | |||||
@Setter | |||||
public class BlackObuPageRequest extends JpaDateTimePageableDataRequest<QtkBlackObu>{ | |||||
private ObuBlackType type;// 类型 | |||||
private String obuId;// 卡号 | |||||
private List<String> obuIds; | |||||
private List<String> obuIdList; | |||||
private Integer status;// 1-在黑 2-已返白 | |||||
private LocalDateTime startTime;//开始时间 | |||||
private LocalDateTime endTime;//结束时间 | |||||
public BlackObuPageRequest() { | |||||
this.orderBy="creationTime"; | |||||
this.desc=true; | |||||
} | |||||
@Override | |||||
public HqlBuilder toSelectHql(){ | |||||
HqlBuilder hql = new HqlBuilder("from QtkBlackObu where 1=1 "); | |||||
hql.append(" and type = :type",type); | |||||
hql.append(" and obuId = :obuId",obuId); | |||||
hql.append(" and obuId in :obuIds",obuIds); | |||||
hql.append(" and obuId in :obuIdList",obuIdList); | |||||
hql.append(" and status = :status",status); | |||||
hql.append(" creationTime >= startTime",startTime); | |||||
hql.append(" creationTime <= endTime",endTime); | |||||
return hql; | |||||
} | |||||
} |
GlobalConfig globalConfig = configBuilder.build(); | GlobalConfig globalConfig = configBuilder.build(); | ||||
/* 给字段映射枚举类型、实体(manyToOne),如果是字符串,自动生成枚举 */ | /* 给字段映射枚举类型、实体(manyToOne),如果是字符串,自动生成枚举 */ | ||||
HashMap<String, Object> typeNameMap = new HashMap<>(); | HashMap<String, Object> typeNameMap = new HashMap<>(); | ||||
typeNameMap.put("STATUS", EnableFlag.class); | |||||
// typeNameMap.put("STATUS", EnableFlag.class); | |||||
// typeNameMap.put("CHARGE_METHOD", ChargeMethod.class); | // typeNameMap.put("CHARGE_METHOD", ChargeMethod.class); | ||||
// typeNameMap.put("CARD_TYPE", CardType.class); | // typeNameMap.put("CARD_TYPE", CardType.class); | ||||
// typeNameMap.put("OBU_TYPE", ObuType.class); | // typeNameMap.put("OBU_TYPE", ObuType.class); |
import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiServiceExtension; | import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiServiceExtension; | ||||
import com.wechat.pay.java.service.partnerpayments.jsapi.model.*; | import com.wechat.pay.java.service.partnerpayments.jsapi.model.*; | ||||
import com.wechat.pay.java.service.partnerpayments.nativepay.NativePayService; | import com.wechat.pay.java.service.partnerpayments.nativepay.NativePayService; | ||||
import org.apache.commons.compress.utils.Lists; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.ArrayList; | |||||
/** | /** | ||||
* @Author:ChenChao | * @Author:ChenChao |
//ORACLE+库编码问题 | //ORACLE+库编码问题 | ||||
runtimeOnly 'com.oracle.database.jdbc:ojdbc8:19.10.0.0' | runtimeOnly 'com.oracle.database.jdbc:ojdbc8:19.10.0.0' | ||||
runtimeOnly 'cn.easyproject:orai18n:12.1.0.2.0' | runtimeOnly 'cn.easyproject:orai18n:12.1.0.2.0' | ||||
// 添加 MapStruct 核心库依赖 | |||||
implementation 'org.mapstruct:mapstruct:1.5.5.Final' | |||||
// 添加 MapStruct 注解处理器依赖 | |||||
annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final' | |||||
} | } | ||||
bootJar { | bootJar { |
package cn.com.taiji.bls.manager.blk; | package cn.com.taiji.bls.manager.blk; | ||||
import cn.com.taiji.bls.tools.SourceTargetMapper; | |||||
import cn.com.taiji.common.manager.AbstractManager; | import cn.com.taiji.common.manager.AbstractManager; | ||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | import cn.com.taiji.common.manager.net.http.ServiceHandleException; | ||||
import cn.com.taiji.common.pub.CollectionTools; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackCard; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackCardHis; | |||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | |||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | import cn.com.taiji.core.model.comm.protocol.bls.*; | ||||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | |||||
import cn.com.taiji.core.repo.jpa.basic.*; | |||||
import cn.com.taiji.core.repo.request.bls.BlackCardHisPageRequest; | |||||
import cn.com.taiji.core.repo.request.bls.BlackCardPageRequest; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import org.springframework.transaction.annotation.Transactional; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
@Service | @Service | ||||
public class BlackCardManagerImpl extends AbstractManager implements BlackCardManager { | public class BlackCardManagerImpl extends AbstractManager implements BlackCardManager { | ||||
@Autowired | |||||
private QtkBlackCardRepo blackCardRepo; | |||||
@Autowired | |||||
private QtkBlackCardHisRepo blackCardHisRepo; | |||||
@Autowired | |||||
private QtkCardInfoRepo cardInfoRepo; | |||||
@Override | @Override | ||||
@Transactional(rollbackFor = Exception.class) | |||||
public AbstractBlsResponse cardIn(CardInRequest req) throws ServiceHandleException { | public AbstractBlsResponse cardIn(CardInRequest req) throws ServiceHandleException { | ||||
return null; | |||||
//发送 todo 这里调部中心接口处先不处理 | |||||
// CardBlackUploadRequest request = new CardBlackUploadRequest(); | |||||
// request.setStatus(1);//1-下黑 | |||||
// request.setCreationTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(new Date())); | |||||
// request.setCardId(req.getCardId()); | |||||
// request.setType(req.getType()); | |||||
// CardBlackUploadResponse cardBlackUploadResponse = blackUpload(request, 1);//1-下黑 | |||||
//下黑 | |||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
// if(cardBlackUploadResponse...){ } | |||||
QtkBlackCard blackCard = copyProperties(req, new QtkBlackCard()); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
blackCard.setIssuerId("520101");//固定的 | |||||
blackCard.setStatus(1); | |||||
blackCard.setCreateTime(now); | |||||
blackCard.setCreationTime(now); | |||||
blackCard.setType(CardBlackType.fromCode(req.getType())); | |||||
blackCard.setSourceIn(SourceType.findByCode(req.getSourceIn())); | |||||
blackCard.setAgencyId(req.getOrgCode());//AbstractSignTypeRequest类里加了个orgCode,中台接口转发到接口系统会自动带上值,值实际为agentId | |||||
blackCardRepo.save(blackCard); | |||||
//返回 | |||||
//todo 判断后返回 成功-失败 | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | |||||
blsResponse.setUploadStatus(1); | |||||
return blsResponse; | |||||
} | } | ||||
@Override | @Override | ||||
@Transactional(rollbackFor = Exception.class) | |||||
public AbstractBlsResponse cardOut(CardOutRequest req) throws ServiceHandleException { | public AbstractBlsResponse cardOut(CardOutRequest req) throws ServiceHandleException { | ||||
return null; | |||||
List<QtkBlackCard> blackCardList = blackCardRepo.queryByCardIdAndType(req.getCardId(), CardBlackType.fromCode(req.getType())); | |||||
if (CollectionTools.isEmpty(blackCardList)){ | |||||
throw GlyServiceError.NO_DATA_ERR.toHandleException("未查询到该类型卡号黑名单!"); | |||||
} | |||||
//发送 todo 这里调部中心接口处先不处理 | |||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
QtkBlackCard blackCard = blackCardList.get(0); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
QtkBlackCardHis blackCardHis = copyProperties(blackCard, new QtkBlackCardHis(), "id","createTime"); | |||||
blackCardHis.setStatus(2);//2-反白 | |||||
blackCardHis.setCreateTime(now); | |||||
blackCardHis.setReleaseTime(now); | |||||
blackCardHis.setReasonIn(blackCard.getReason()); | |||||
blackCardHis.setReasonOut(req.getReason()); | |||||
blackCardHis.setStaffIdIn(blackCard.getStaffId()); | |||||
blackCardHis.setStaffIdOut(req.getStaffId()); | |||||
blackCardHis.setReasonOut(req.getStaffId()); | |||||
blackCardHis.setSourceIn(blackCard.getSourceIn()); | |||||
blackCardHis.setSourceOut(SourceType.findByCode(req.getSourceIn())); | |||||
blackCardHisRepo.save(blackCardHis); | |||||
//删除下黑数据 | |||||
blackCardRepo.deleteAll(blackCardList); | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | |||||
blsResponse.setUploadStatus(1); | |||||
return blsResponse; | |||||
} | } | ||||
@Override | @Override | ||||
public CardQueryResponse cardQuery(CardQueryRequest req) throws ServiceHandleException { | public CardQueryResponse cardQuery(CardQueryRequest req) throws ServiceHandleException { | ||||
return null; | |||||
BlackCardPageRequest blackCardPageRequest = copyProperties(req, new BlackCardPageRequest()); | |||||
BlackCardHisPageRequest blackCardHisPageRequest = copyProperties(req, new BlackCardHisPageRequest()); | |||||
if (!StringUtils.isEmpty(req.getVehicleId())){ | |||||
List<String> cardIdList = cardInfoRepo.queryByVehicleId(req.getVehicleId()); | |||||
if (CollectionTools.isEmpty(cardIdList)){ | |||||
blackCardPageRequest.setCardIdList(cardIdList); | |||||
blackCardHisPageRequest.setCardIdList(cardIdList); | |||||
} | |||||
} | |||||
List<QtkBlackCard> cardBlackList = blackCardRepo.list(blackCardPageRequest); | |||||
List<QtkBlackCardHis> cardblackHisList = blackCardHisRepo.list(blackCardHisPageRequest); | |||||
List<CardQueryModel> modelList = addModelList(cardBlackList, cardblackHisList); | |||||
CardQueryResponse response = new CardQueryResponse(); | |||||
response.setResults(modelList); | |||||
return response; | |||||
} | |||||
// private AbstractBlsResponse blackUpload(CardBlackUploadRequest request, Integer status) throws ServiceHandleException { | |||||
//// CardBlackUploadResponse response = ygzUploader.syncDoCardBlackUpload(request, DataSourceEnum.DSI_INTERFACE); | |||||
// return response; | |||||
// } | |||||
private List<CardQueryModel> addModelList(List<QtkBlackCard> cardBlackList, List<QtkBlackCardHis> cardblackHisList){ | |||||
List<CardQueryModel> modelList = null; | |||||
if (!CollectionTools.isEmpty(cardblackHisList)){ | |||||
modelList = SourceTargetMapper.INSTANCE.toCardModelList(cardblackHisList);//进行复制 | |||||
} | |||||
if (!CollectionTools.isEmpty(cardBlackList)){ | |||||
for (QtkBlackCard blackCard : cardBlackList) { | |||||
CardQueryModel model = new CardQueryModel(); | |||||
model.setType(blackCard.getType()); | |||||
model.setCardId(blackCard.getCardId()); | |||||
model.setStatus(blackCard.getStatus()); | |||||
model.setCreateTime(blackCard.getCreationTime()); | |||||
model.setReasonIn(blackCard.getReason()); | |||||
model.setStaffIdIn(blackCard.getStaffId()); | |||||
model.setSolution(blackCard.getSolution()); | |||||
model.setSourceIn(blackCard.getSourceIn()); | |||||
model.setAgencyId(blackCard.getAgencyId()); | |||||
modelList.add(model); | |||||
} | |||||
} | |||||
return modelList; | |||||
} | } | ||||
} | } |
package cn.com.taiji.bls.manager.blk; | package cn.com.taiji.bls.manager.blk; | ||||
import cn.com.taiji.bls.tools.SourceTargetMapper; | |||||
import cn.com.taiji.common.manager.AbstractManager; | import cn.com.taiji.common.manager.AbstractManager; | ||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | import cn.com.taiji.common.manager.net.http.ServiceHandleException; | ||||
import cn.com.taiji.common.pub.CollectionTools; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackObu; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackObuHis; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | |||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | import cn.com.taiji.core.model.comm.protocol.bls.*; | ||||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | |||||
import cn.com.taiji.core.repo.jpa.basic.*; | |||||
import cn.com.taiji.core.repo.request.bls.BlackObuHisPageRequest; | |||||
import cn.com.taiji.core.repo.request.bls.BlackObuPageRequest; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import org.springframework.transaction.annotation.Transactional; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
@Service("blackObuManager") | @Service("blackObuManager") | ||||
public class BlackObuManagerImpl extends AbstractManager implements BlackObuManager { | public class BlackObuManagerImpl extends AbstractManager implements BlackObuManager { | ||||
@Autowired | |||||
private QtkBlackObuRepo blackObuRepo; | |||||
@Autowired | |||||
private QtkBlackObuHisRepo blackObuHisRepo; | |||||
@Autowired | |||||
private QtkObuInfoRepo obuInfoRepo; | |||||
@Override | @Override | ||||
@Transactional(rollbackFor = Exception.class) | |||||
public AbstractBlsResponse obuIn(ObuInRequest req) throws ServiceHandleException { | public AbstractBlsResponse obuIn(ObuInRequest req) throws ServiceHandleException { | ||||
return null; | |||||
//发送 todo 这里调部中心接口处先不处理 | |||||
//下黑 | |||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
QtkBlackObu blackObu = copyProperties(req, new QtkBlackObu()); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
blackObu.setIssuerId("520101");//固定的 | |||||
blackObu.setType(ObuBlackType.fromCode(req.getType())); | |||||
blackObu.setStatus(1); | |||||
blackObu.setCreateTime(now); | |||||
blackObu.setCreationTime(now); | |||||
blackObu.setType(ObuBlackType.fromCode(req.getType())); | |||||
blackObu.setSourceIn(SourceType.findByCode(req.getSourceIn())); | |||||
blackObu.setAgencyId(req.getOrgCode());//AbstractSignTypeRequest类里加了个orgCode,中台接口转发到接口系统会自动带上值,值实际为agentId | |||||
blackObuRepo.save(blackObu); | |||||
//返回 | |||||
//todo 判断后返回 成功-失败 | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | |||||
blsResponse.setUploadStatus(1); | |||||
return blsResponse; | |||||
} | } | ||||
@Override | @Override | ||||
@Transactional(rollbackFor = Exception.class) | |||||
public AbstractBlsResponse obuOut(ObuOutRequest req) throws ServiceHandleException { | public AbstractBlsResponse obuOut(ObuOutRequest req) throws ServiceHandleException { | ||||
return null; | |||||
List<QtkBlackObu> blackObuList = blackObuRepo.queryByObuIdAndType(req.getObuId(), ObuBlackType.fromCode(req.getType())); | |||||
if (CollectionTools.isEmpty(blackObuList)){ | |||||
throw GlyServiceError.NO_DATA_ERR.toHandleException("未查询到该类型签号黑名单!"); | |||||
} | |||||
//发送 todo 这里调部中心接口处先不处理 | |||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
QtkBlackObu blackObu = blackObuList.get(0); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
QtkBlackObuHis blackObuHis = copyProperties(blackObu, new QtkBlackObuHis(), "id","createTime"); | |||||
blackObuHis.setStatus(2);//2-反白 | |||||
blackObuHis.setCreateTime(now); | |||||
blackObuHis.setReleaseTime(now); | |||||
blackObuHis.setReasonIn(blackObu.getReason()); | |||||
blackObuHis.setReasonOut(req.getReason()); | |||||
blackObuHis.setStaffIdIn(blackObu.getStaffId()); | |||||
blackObuHis.setStaffIdOut(req.getStaffId()); | |||||
blackObuHis.setReasonOut(req.getStaffId()); | |||||
blackObuHis.setSourceIn(blackObu.getSourceIn()); | |||||
blackObuHis.setSourceOut(SourceType.findByCode(req.getSourceIn())); | |||||
blackObuHisRepo.save(blackObuHis); | |||||
//删除下黑数据 | |||||
blackObuRepo.deleteAll(blackObuList); | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | |||||
blsResponse.setUploadStatus(1); | |||||
return blsResponse; | |||||
} | } | ||||
@Override | @Override | ||||
public ObuQueryResponse obuQuery(ObuQueryRequest req) throws ServiceHandleException { | public ObuQueryResponse obuQuery(ObuQueryRequest req) throws ServiceHandleException { | ||||
return null; | |||||
BlackObuPageRequest blackObuPageRequest = copyProperties(req, new BlackObuPageRequest()); | |||||
BlackObuHisPageRequest blackObuHisPageRequest = copyProperties(req, new BlackObuHisPageRequest()); | |||||
if (!StringUtils.isEmpty(req.getVehicleId())){ | |||||
List<String> obuIdList = obuInfoRepo.queryByVehicleId(req.getVehicleId()); | |||||
if (CollectionTools.isEmpty(obuIdList)){ | |||||
blackObuPageRequest.setObuIdList(obuIdList); | |||||
blackObuHisPageRequest.setObuIdList(obuIdList); | |||||
} | |||||
} | |||||
List<QtkBlackObu> obuBlackList = blackObuRepo.list(blackObuPageRequest); | |||||
List<QtkBlackObuHis> obublackHisList = blackObuHisRepo.list(blackObuHisPageRequest); | |||||
List<ObuQueryModel> modelList = addModelList(obuBlackList, obublackHisList); | |||||
ObuQueryResponse response = new ObuQueryResponse(); | |||||
response.setResults(modelList); | |||||
return response; | |||||
} | |||||
private List<ObuQueryModel> addModelList(List<QtkBlackObu> obuBlackList, List<QtkBlackObuHis> obublackHisList){ | |||||
List<ObuQueryModel> modelList = null; | |||||
if (!CollectionTools.isEmpty(obublackHisList)){ | |||||
modelList = SourceTargetMapper.INSTANCE.toObuModelList(obublackHisList);//进行复制 | |||||
} | |||||
if (!CollectionTools.isEmpty(obuBlackList)){ | |||||
for (QtkBlackObu blackObu : obuBlackList) { | |||||
ObuQueryModel model = new ObuQueryModel(); | |||||
model.setType(blackObu.getType()); | |||||
model.setObuId(blackObu.getObuId()); | |||||
model.setStatus(blackObu.getStatus()); | |||||
model.setCreateTime(blackObu.getCreationTime()); | |||||
model.setReasonIn(blackObu.getReason()); | |||||
model.setStaffIdIn(blackObu.getStaffId()); | |||||
model.setSolution(blackObu.getSolution()); | |||||
model.setSourceIn(blackObu.getSourceIn()); | |||||
model.setAgencyId(blackObu.getAgencyId()); | |||||
modelList.add(model); | |||||
} | |||||
} | |||||
return modelList; | |||||
} | } | ||||
} | } |
package cn.com.taiji.bls.tools; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackCardHis; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackObuHis; | |||||
import cn.com.taiji.core.model.comm.protocol.bls.CardQueryModel; | |||||
import cn.com.taiji.core.model.comm.protocol.bls.ObuQueryModel; | |||||
import org.mapstruct.Mapper; | |||||
import org.mapstruct.Mapping; | |||||
import org.mapstruct.ReportingPolicy; | |||||
import org.mapstruct.factory.Mappers; | |||||
import java.util.List; | |||||
import java.util.stream.Collectors; | |||||
@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE) | |||||
public interface SourceTargetMapper { | |||||
/** 通行流水 字段数量类型相同,数量少:仅能让多的转换成少的,故没有toEntity*/ | |||||
SourceTargetMapper INSTANCE = Mappers.getMapper(SourceTargetMapper.class); | |||||
@Mapping(source = "creationTime", target = "createTime") | |||||
CardQueryModel toCardModel(QtkBlackCardHis source); | |||||
default List<CardQueryModel> toCardModelList(List<QtkBlackCardHis> sources){ | |||||
return sources.stream().map(this::toCardModel).collect(Collectors.toList()); | |||||
} | |||||
@Mapping(source = "creationTime", target = "createTime") | |||||
ObuQueryModel toObuModel(QtkBlackObuHis source); | |||||
default List<ObuQueryModel> toObuModelList(List<QtkBlackObuHis> sources){ | |||||
return sources.stream().map(this::toObuModel).collect(Collectors.toList()); | |||||
} | |||||
} |
package cn.com.taiji.oqs.client; | |||||
import cn.com.taiji.bls.config.JsonConfig; | |||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; | |||||
import org.springframework.boot.SpringApplication; | |||||
import org.springframework.boot.autoconfigure.SpringBootApplication; | |||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | |||||
import org.springframework.context.annotation.Import; | |||||
@SpringBootApplication(scanBasePackages = "cn.com.taiji.core.manager.comm.client.feign", | |||||
exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class}) | |||||
@Import({JsonConfig.class}) | |||||
public class FeignClientApplication { | |||||
public static void main(String[] args) { | |||||
System.out.println("开始启动FeignClientApplication......"); | |||||
SpringApplication.run(FeignClientApplication.class, args); | |||||
} | |||||
} | |||||
//package cn.com.taiji.oqs.client; | |||||
// | |||||
//import cn.com.taiji.bls.config.JsonConfig; | |||||
//import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; | |||||
//import org.springframework.boot.SpringApplication; | |||||
//import org.springframework.boot.autoconfigure.SpringBootApplication; | |||||
//import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | |||||
//import org.springframework.context.annotation.Import; | |||||
// | |||||
//@SpringBootApplication(scanBasePackages = "cn.com.taiji.core.manager.comm.client.feign", | |||||
// exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class}) | |||||
//@Import({JsonConfig.class}) | |||||
//public class FeignClientApplication { | |||||
// public static void main(String[] args) { | |||||
// System.out.println("开始启动FeignClientApplication......"); | |||||
// SpringApplication.run(FeignClientApplication.class, args); | |||||
// } | |||||
//} |
package cn.com.taiji.oqs.client.bls; | |||||
import cn.com.taiji.bls.Application; | |||||
import cn.com.taiji.bls.manager.AbstractCommManager; | |||||
import cn.com.taiji.bls.manager.blk.BlackCardManager; | |||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | |||||
import org.junit.jupiter.api.Test; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.boot.test.context.SpringBootTest; | |||||
/** | |||||
* @Auther: humh | |||||
* @Description: | |||||
* @Date: 2025/5/28 20:30 | |||||
* @email: huminghao@mail.taiji.com.cn | |||||
* @version: 1.0 | |||||
*/ | |||||
@SpringBootTest(classes = Application.class) | |||||
public class TestBlackCardManager extends AbstractCommManager { | |||||
@Autowired | |||||
private BlackCardManager blackCardManager; | |||||
@Test | |||||
public void cardInTest() { | |||||
CardInRequest cardInRequest = new CardInRequest(); | |||||
cardInRequest.setType(1); | |||||
cardInRequest.setCardId("52012223230230868393"); | |||||
cardInRequest.setReason("测试"); | |||||
cardInRequest.setSolution("测试"); | |||||
cardInRequest.setSourceIn("431bfdc8b9c645e0b293b85d6ce1925b"); | |||||
cardInRequest.setStaffId("52010106004");//11位手机号 | |||||
cardInRequest.setOrgCode("52010106004"); | |||||
try { | |||||
AbstractBlsResponse blsResponse = blackCardManager.cardIn(cardInRequest); | |||||
} catch (ServiceHandleException e) { | |||||
logger.error(e.getMessage(), e); | |||||
} | |||||
logger.info("结束。。。"); | |||||
} | |||||
@Test | |||||
public void cardOutTest(){ | |||||
CardOutRequest cardOutRequest = new CardOutRequest(); | |||||
cardOutRequest.setType(1); | |||||
cardOutRequest.setCardId("52012223230230868393"); | |||||
cardOutRequest.setReason("反白测试2"); | |||||
cardOutRequest.setSourceIn("431bfdc8b9c645e0b293b85d6ce1925b"); | |||||
cardOutRequest.setStaffId("52010106004"); | |||||
try { | |||||
blackCardManager.cardOut(cardOutRequest); | |||||
} catch (ServiceHandleException e) { | |||||
logger.info(e.getMessage(), e); | |||||
} | |||||
logger.info("结束。。"); | |||||
} | |||||
@Test | |||||
public void cardQuery(){ | |||||
CardQueryRequest cardQueryRequest = new CardQueryRequest(); | |||||
try { | |||||
CardQueryResponse response = blackCardManager.cardQuery(cardQueryRequest); | |||||
} catch (ServiceHandleException e) { | |||||
logger.error(e.getMessage(), e); | |||||
} | |||||
logger.info("结束。。。"); | |||||
} | |||||
} |
package cn.com.taiji.oqs.client.bls; | |||||
import cn.com.taiji.bls.Application; | |||||
import cn.com.taiji.bls.manager.AbstractCommManager; | |||||
import cn.com.taiji.bls.manager.blk.BlackCardManager; | |||||
import cn.com.taiji.bls.manager.blk.BlackObuManager; | |||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | |||||
import org.junit.jupiter.api.Test; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.boot.test.context.SpringBootTest; | |||||
/** | |||||
* @Auther: humh | |||||
* @Description: | |||||
* @Date: 2025/5/28 20:30 | |||||
* @email: huminghao@mail.taiji.com.cn | |||||
* @version: 1.0 | |||||
*/ | |||||
@SpringBootTest(classes = Application.class) | |||||
public class TestBlackObuManager extends AbstractCommManager { | |||||
@Autowired | |||||
private BlackObuManager blackObuManager; | |||||
@Test | |||||
public void cardInTest() { | |||||
ObuInRequest obuInRequest = new ObuInRequest(); | |||||
obuInRequest.setType(1); | |||||
obuInRequest.setObuId("5202254500000014"); | |||||
obuInRequest.setReason("下黑测试"); | |||||
obuInRequest.setSolution("下黑测试"); | |||||
obuInRequest.setSourceIn("431bfdc8b9c645e0b293b85d6ce1925b"); | |||||
obuInRequest.setStaffId("52010106004");//11位手机号 | |||||
obuInRequest.setOrgCode("52010106004"); | |||||
try { | |||||
AbstractBlsResponse blsResponse = blackObuManager.obuIn(obuInRequest); | |||||
} catch (ServiceHandleException e) { | |||||
logger.error(e.getMessage(), e); | |||||
} | |||||
logger.info("结束。。。"); | |||||
} | |||||
@Test | |||||
public void ObuOutTest(){ | |||||
ObuOutRequest obuOutRequest = new ObuOutRequest(); | |||||
obuOutRequest.setType(1); | |||||
obuOutRequest.setObuId("5202254500000014"); | |||||
obuOutRequest.setReason("反白测试2"); | |||||
obuOutRequest.setSourceIn("431bfdc8b9c645e0b293b85d6ce1925b"); | |||||
obuOutRequest.setStaffId("52010106004"); | |||||
try { | |||||
blackObuManager.obuOut(obuOutRequest); | |||||
} catch (ServiceHandleException e) { | |||||
logger.info(e.getMessage(), e); | |||||
} | |||||
logger.info("结束。。"); | |||||
} | |||||
@Test | |||||
public void ObuQuery(){ | |||||
ObuQueryRequest obuQueryRequest = new ObuQueryRequest(); | |||||
try { | |||||
ObuQueryResponse response = blackObuManager.obuQuery(obuQueryRequest); | |||||
} catch (ServiceHandleException e) { | |||||
logger.error(e.getMessage(), e); | |||||
} | |||||
logger.info("结束。。。"); | |||||
} | |||||
} |
package cn.com.taiji.oqs.client.demo; | |||||
import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException; | |||||
import cn.com.taiji.core.model.comm.protocol.sample.TypeSampleRequest; | |||||
import cn.com.taiji.core.model.comm.protocol.sample.TypeSampleResponse; | |||||
import cn.com.taiji.oqs.client.FeignClientApplication; | |||||
import cn.com.taiji.bls.manager.AbstractCommManager; | |||||
import org.junit.jupiter.api.Test; | |||||
import org.springframework.boot.test.context.SpringBootTest; | |||||
import java.util.Random; | |||||
@SpringBootTest(classes = FeignClientApplication.class) | |||||
public class TestFeignClientRequest extends AbstractCommManager { | |||||
@Test | |||||
public void testSampleRequest() { | |||||
TypeSampleRequest req = new TypeSampleRequest(); | |||||
try { | |||||
logger.info("格式校验异常 req:" + req.toJson(true)); | |||||
jsonPostRepeat(req, 3); | |||||
} catch (ApiRequestException e) { | |||||
logger.error("", e); | |||||
} | |||||
req = new TypeSampleRequest(); | |||||
req.setCardId("cardId" + new Random().nextInt(1000000)); | |||||
req.setReqStr("hello"); | |||||
req.setValid(true); | |||||
try { | |||||
logger.info("业务校验异常 req:" + req.toJson(true)); | |||||
jsonPostRepeat(req, 3); | |||||
} catch (ApiRequestException e) { | |||||
logger.error("", e); | |||||
} | |||||
req = new TypeSampleRequest(); | |||||
req.setCardId("cardId" + new Random().nextInt(1000000)); | |||||
req.setReqStr("hello"); | |||||
req.setValid(false); | |||||
logger.info("成功 req:" + req.toJson(true)); | |||||
TypeSampleResponse res = jsonPostRepeat(req, 1); | |||||
logger.info("res:" + res.toJson(true)); | |||||
} | |||||
} | |||||
//package cn.com.taiji.oqs.client.demo; | |||||
// | |||||
//import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException; | |||||
//import cn.com.taiji.core.model.comm.protocol.sample.TypeSampleRequest; | |||||
//import cn.com.taiji.core.model.comm.protocol.sample.TypeSampleResponse; | |||||
//import cn.com.taiji.oqs.client.FeignClientApplication; | |||||
//import cn.com.taiji.bls.manager.AbstractCommManager; | |||||
//import org.junit.jupiter.api.Test; | |||||
//import org.springframework.boot.test.context.SpringBootTest; | |||||
// | |||||
//import java.util.Random; | |||||
// | |||||
//@SpringBootTest(classes = FeignClientApplication.class) | |||||
//public class TestFeignClientRequest extends AbstractCommManager { | |||||
// | |||||
// @Test | |||||
// public void testSampleRequest() { | |||||
// TypeSampleRequest req = new TypeSampleRequest(); | |||||
// try { | |||||
// logger.info("格式校验异常 req:" + req.toJson(true)); | |||||
// jsonPostRepeat(req, 3); | |||||
// } catch (ApiRequestException e) { | |||||
// logger.error("", e); | |||||
// } | |||||
// req = new TypeSampleRequest(); | |||||
// req.setCardId("cardId" + new Random().nextInt(1000000)); | |||||
// req.setReqStr("hello"); | |||||
// req.setValid(true); | |||||
// try { | |||||
// logger.info("业务校验异常 req:" + req.toJson(true)); | |||||
// jsonPostRepeat(req, 3); | |||||
// } catch (ApiRequestException e) { | |||||
// logger.error("", e); | |||||
// } | |||||
// req = new TypeSampleRequest(); | |||||
// req.setCardId("cardId" + new Random().nextInt(1000000)); | |||||
// req.setReqStr("hello"); | |||||
// req.setValid(false); | |||||
// logger.info("成功 req:" + req.toJson(true)); | |||||
// TypeSampleResponse res = jsonPostRepeat(req, 1); | |||||
// logger.info("res:" + res.toJson(true)); | |||||
// | |||||
// } | |||||
//} |