Kaynağa Gözat

1、退费信息管理迁移完成

2、调整车辆绑定表名
master
huminghao 2 ay önce
ebeveyn
işleme
9ee9b03c81

gly-base-core/src/main/java/cn/com/taiji/core/entity/comm/IawVehicleBind.java → gly-base-core/src/main/java/cn/com/taiji/core/entity/comm/UserVehicleBind.java Dosyayı Görüntüle

@@ -1,6 +1,7 @@
package cn.com.taiji.core.entity.comm;

import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity;
import cn.com.taiji.core.entity.dict.basic.CardType;

import javax.persistence.Column;
import javax.persistence.Entity;
@@ -17,7 +18,7 @@ import java.time.LocalDateTime;

@Entity
@Table(name = "USER_VEHICLE_BIND")
public class IawVehicleBind extends AbstractStringPropertyUUIDEntity {
public class UserVehicleBind extends AbstractStringPropertyUUIDEntity {

/** 车牌号+颜色 */
private String vehicleId;
@@ -28,7 +29,7 @@ public class IawVehicleBind extends AbstractStringPropertyUUIDEntity {
/** etc卡号 */
private String cardId;
/** 卡类型1-记账卡 2-储值卡 3-预存卡 */
private Integer cardType;
private CardType cardType;
/** 用户账号openId,关联USER_ACCOUNT_INFO表 */
private String openId;
/** 绑定状态,默认1-绑定 2-解除 */
@@ -80,11 +81,11 @@ public class IawVehicleBind extends AbstractStringPropertyUUIDEntity {
}

@Column(name = "CARD_TYPE")
public Integer getCardType() {
public CardType getCardType() {
return cardType;
}

public void setCardType(Integer cardType) {
public void setCardType(CardType cardType) {
this.cardType = cardType;
}


+ 0
- 14
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/comm/IawVehicleBindRepo.java Dosyayı Görüntüle

@@ -1,14 +0,0 @@
package cn.com.taiji.core.repo.jpa.comm;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.comm.IawVehicleBind;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface IawVehicleBindRepo extends AbstractJpaRepo<IawVehicleBind,String> {

@Query(" from IawVehicleBind where openId = ?1 order by bindTime desc")
List<IawVehicleBind> queryVehicleBind(String openId);

}

+ 13
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/comm/RefundReceiveInfoRepo.java Dosyayı Görüntüle

@@ -0,0 +1,13 @@
package cn.com.taiji.core.repo.jpa.comm;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.comm.RefundReceiveInfo;
import org.springframework.data.jpa.repository.Query;

public interface RefundReceiveInfoRepo extends AbstractJpaRepo<RefundReceiveInfo,String> {


@Query(" from RefundReceiveInfo where bankIdCode = ?1 and openId = ?2 and delFlag = 0")
RefundReceiveInfo findByBankAndBankIdCodeAndOpenId(String bankIdCode, String openId);

}

+ 14
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/comm/UserVehicleBindRepo.java Dosyayı Görüntüle

@@ -0,0 +1,14 @@
package cn.com.taiji.core.repo.jpa.comm;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.comm.UserVehicleBind;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface UserVehicleBindRepo extends AbstractJpaRepo<UserVehicleBind,String> {

@Query(" from UserVehicleBind where openId = ?1 order by bindTime desc")
List<UserVehicleBind> queryVehicleBind(String openId);

}

+ 41
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/api/comm/RefundReceiveInfoController.java Dosyayı Görüntüle

@@ -0,0 +1,41 @@
package cn.com.taiji.iaw.api.comm;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.common.web.ApiResponse;
import cn.com.taiji.iaw.api.MyValidController;
import cn.com.taiji.iaw.dto.ass.RefundInfoDTO;
import cn.com.taiji.iaw.manager.comm.RefundReceiveInfoManager;
import cn.com.taiji.iaw.repo.jpa.request.ass.RefundInfoPageRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

@Api(tags = {"退费相关-退费信息相关"})
@RestController
@RequestMapping("/api/refundInfo/")
@RequiredArgsConstructor
public class RefundReceiveInfoController extends MyValidController {

private final RefundReceiveInfoManager refundReceiveInfoManager;

@ApiOperation("分页查询退费信息")
@PostMapping("/page")
public ApiResponse<Pagination> page(@RequestBody @Validated RefundInfoPageRequest request) throws ManagerException {
return ApiResponse.of(refundReceiveInfoManager.page(request));
}

@ApiOperation("/保存或者修改退费信息")
@PostMapping("/addOrUpdate")
public ApiResponse<String> addOrUpdate(@RequestBody @Validated RefundInfoDTO dto) throws ManagerException {
return ApiResponse.of(refundReceiveInfoManager.addOrUpdate(dto));
}

@ApiOperation("/退费信息失效")
@GetMapping("/loseEfficacy/{id}")
public ApiResponse<String> loseEfficacy(@PathVariable("id") String id) throws ManagerException {
return ApiResponse.of(refundReceiveInfoManager.loseEfficacy(id));
}
}

+ 67
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/ass/RefundInfoDTO.java Dosyayı Görüntüle

@@ -0,0 +1,67 @@
package cn.com.taiji.iaw.dto.ass;

import cn.com.taiji.common.model.BaseModel;
import cn.com.taiji.core.entity.dict.issue.ProvinceType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

@ApiModel(description = "通行费退费-退费信息上传-新增")
@Getter
@Setter
public class RefundInfoDTO extends BaseModel {

@ApiModelProperty("编号")
private String id;

@ApiModelProperty(name = "用户编号")
@NotEmpty(message = "用户编号不能为空")
private String openId ;

@ApiModelProperty(name = "开户行名称")
@NotNull(message = "开户行名称不能为空")
// todo 开户行名称是否有固定值 Bank
private String bankName ;

@ApiModelProperty(name = "开户行省份")
@NotNull(message = "开户行省份不能为空")
private ProvinceType bankProvince ;

@ApiModelProperty(name = "开户行支行名称")
@NotEmpty(message = "开户行支行名称不能为空")
private String bankBranchName ;

@ApiModelProperty(name = "银行卡号")
@NotEmpty(message = "银行卡号不能为空")
private String bankIdCode ;

@ApiModelProperty(name = "持卡人姓名")
@NotEmpty(message = "持卡人姓名不能为空")
private String userName ;

@ApiModelProperty(name = "持卡人手机号")
@NotEmpty(message = "持卡人手机号不能为空")
private String userMobile ;

@ApiModelProperty(name = "授权书地址")
private String proxyUrl ;

@ApiModelProperty(name = "身份证正面地址")
private String userPosUrl ;

@ApiModelProperty(name = "身份证反面地址")
private String userNegUrl ;

@ApiModelProperty(name = "行驶证正面地址")
private String vehiclePosUrl ;

@ApiModelProperty(name = "行驶证反面地址")
private String vehicleNegUrl ;

@ApiModelProperty(name = "信息失效标记")
private Integer delFlag ;
}

+ 66
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/ass/RefundInfoVO.java Dosyayı Görüntüle

@@ -0,0 +1,66 @@
package cn.com.taiji.iaw.dto.ass;

import cn.com.taiji.common.model.BaseModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@Getter
@Setter
@ApiModel(description = "通行费退费-退费信息上传-分页")
public class RefundInfoVO extends BaseModel {

@ApiModelProperty("编号")
private String id;

@ApiModelProperty(name = "录入时间")
@JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss")
private LocalDateTime insertTime ;

@ApiModelProperty(name = "修改时间")
@JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime ;

@ApiModelProperty(name = "用户编号")
private String openId ;

@ApiModelProperty(name = "开户行名称")
private String bankName ;

@ApiModelProperty(name = "开户行省份")
private String bankProvince ;

@ApiModelProperty(name = "开户行支行名称")
private String bankBranchName ;

@ApiModelProperty(name = "银行卡号")
private String bankIdCode ;

@ApiModelProperty(name = "持卡人姓名")
private String userName ;

@ApiModelProperty(name = "持卡人手机号")
private String userMobile ;

@ApiModelProperty(name = "授权书地址")
private String proxyUrl ;

@ApiModelProperty(name = "身份证正面地址")
private String userPosUrl ;

@ApiModelProperty(name = "身份证反面地址")
private String userNegUrl ;

@ApiModelProperty(name = "行驶证正面地址")
private String vehiclePosUrl ;

@ApiModelProperty(name = "行驶证反面地址")
private String vehicleNegUrl ;

@ApiModelProperty(name = "信息失效标记")
private Integer delFlag ;
}

+ 5
- 5
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/comm/IawVehicleBindManagerImpl.java Dosyayı Görüntüle

@@ -5,9 +5,9 @@ import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.common.pub.BeanTools;
import cn.com.taiji.common.pub.CollectionTools;
import cn.com.taiji.core.entity.basic.QtkCardInfo;
import cn.com.taiji.core.entity.comm.IawVehicleBind;
import cn.com.taiji.core.entity.comm.UserVehicleBind;
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo;
import cn.com.taiji.core.repo.jpa.comm.IawVehicleBindRepo;
import cn.com.taiji.core.repo.jpa.comm.UserVehicleBindRepo;
import cn.com.taiji.iaw.dto.comm.*;
import cn.com.taiji.iaw.repo.jpa.request.comm.VehicleBindPageRequest;
import cn.com.taiji.iaw.tools.WxLoginUserUtil;
@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
public class IawVehicleBindManagerImpl implements IawVehicleBindManager {

@Autowired
private IawVehicleBindRepo repo;
private UserVehicleBindRepo repo;
@Autowired
private WxLoginUserUtil wxLoginUserUtil;
@Autowired
@@ -52,7 +52,7 @@ public class IawVehicleBindManagerImpl implements IawVehicleBindManager {
if (!cardInfos.stream().map(QtkCardInfo::getCardId).collect(Collectors.toList()).contains(dto.getCardId())){
throw new ManagerException("该车辆的ETC卡号校验失败,无法绑定!");
}
IawVehicleBind vehicleBind = new IawVehicleBind();
UserVehicleBind vehicleBind = new UserVehicleBind();
BeanTools.copyProperties(dto, vehicleBind,"id");
vehicleBind.setVehicleId(dto.getVehiclePlate() + "_" + dto.getVehiclePlateColor());
vehicleBind.setBindStatus(1);//默认1,1-绑定 2-解除
@@ -66,7 +66,7 @@ public class IawVehicleBindManagerImpl implements IawVehicleBindManager {

@Override
public VehicleUnBindResponseDTO unBind(VehicleUnBindRequestDTO dto) throws ManagerException {
IawVehicleBind vehicleBind = repo.findById(dto.getId()).orElse(null);
UserVehicleBind vehicleBind = repo.findById(dto.getId()).orElse(null);
if (vehicleBind == null){
throw new ManagerException("未查询到车辆信息,请刷新重试!");
}

+ 14
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/comm/RefundReceiveInfoManager.java Dosyayı Görüntüle

@@ -0,0 +1,14 @@
package cn.com.taiji.iaw.manager.comm;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.iaw.dto.ass.RefundInfoDTO;
import cn.com.taiji.iaw.repo.jpa.request.ass.RefundInfoPageRequest;

public interface RefundReceiveInfoManager {
Pagination page(RefundInfoPageRequest request) throws ManagerException;

String addOrUpdate(RefundInfoDTO dto) throws ManagerException;

String loseEfficacy(String id) throws ManagerException;
}

+ 102
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/comm/RefundReceiveInfoManagerImpl.java Dosyayı Görüntüle

@@ -0,0 +1,102 @@
package cn.com.taiji.iaw.manager.comm;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.common.pub.BeanTools;
import cn.com.taiji.core.entity.comm.RefundReceiveInfo;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.repo.jpa.comm.RefundReceiveInfoRepo;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
import cn.com.taiji.iaw.dto.ass.RefundInfoDTO;
import cn.com.taiji.iaw.dto.ass.RefundInfoVO;
import cn.com.taiji.iaw.repo.jpa.request.ass.RefundInfoPageRequest;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

@Service
@RequiredArgsConstructor
public class RefundReceiveInfoManagerImpl extends AbstractManager implements RefundReceiveInfoManager {

private final RefundReceiveInfoRepo refundReceiveInfoRepo;
private final AccountInfoRepo accountInfoRepo;

@Override
public Pagination page(RefundInfoPageRequest request) throws ManagerException {
validOpenId(request.getOpenId());
Pagination pagination = refundReceiveInfoRepo.page(request);
List<RefundInfoVO> list = pagination.getResult(RefundReceiveInfo.class).stream()
.map(this::convertRefundInfoVO).collect(Collectors.toList());
pagination.setResult(list);
return pagination;
}

@Override
public String addOrUpdate(RefundInfoDTO dto) throws ManagerException {
validOpenId(dto.getOpenId());
RefundReceiveInfo exitRefundInfo = refundReceiveInfoRepo.findByBankAndBankIdCodeAndOpenId(dto.getBankIdCode(), dto.getOpenId());
LocalDateTime now = LocalDateTime.now();

String id = dto.getId();
if (StringUtils.isNotBlank(id)) {
// 修改
RefundReceiveInfo entity = refundReceiveInfoRepo.findById(id).orElse(null);
if (entity == null) {
throw new ManagerException("该退费信息不存在");
}
if (exitRefundInfo != null && !dto.getOpenId().equals(exitRefundInfo.getOpenId())) {
throw new ManagerException("退费信息中该银行卡信息已存在");
}
BeanTools.copyProperties(dto, entity, "id", "insertTime", "delFlag");
entity.setUpdateTime(now);
refundReceiveInfoRepo.save(entity);
return "修改退费信息成功";
}else {
// 保存
if (exitRefundInfo != null){
throw new ManagerException("退费信息中该银行卡信息已存在");
}
RefundReceiveInfo RefundReceiveInfo = new RefundReceiveInfo();
BeanTools.copyProperties(dto, RefundReceiveInfo);
RefundReceiveInfo.setId(UUID.randomUUID().toString().replace("-", ""));
RefundReceiveInfo.setInsertTime(now);
RefundReceiveInfo.setUpdateTime(now);
RefundReceiveInfo.setDelFlag(0);
refundReceiveInfoRepo.persist(RefundReceiveInfo);
return "保存退费信息成功";
}
}

@Override
public String loseEfficacy(String id) throws ManagerException {
RefundReceiveInfo entity = refundReceiveInfoRepo.findById(id).orElse(null);
if (entity == null) {
throw new ManagerException("该退费信息不存在");
}
entity.setDelFlag(1);
entity.setUpdateTime(LocalDateTime.now());
refundReceiveInfoRepo.save(entity);
return "退费信息以失效";
}

private RefundInfoVO convertRefundInfoVO(RefundReceiveInfo RefundReceiveInfo) {
RefundInfoVO refundInfoVO = new RefundInfoVO();
BeanTools.copyProperties(RefundReceiveInfo, refundInfoVO);
refundInfoVO.setBankProvince(RefundReceiveInfo.getBankProvince().getShortName());
refundInfoVO.setBankName(RefundReceiveInfo.getBankName());
return refundInfoVO;
}

private void validOpenId(String openId) throws ManagerException {
AccountInfo accountInfo = accountInfoRepo.findByOpenId(openId);
if (accountInfo == null){
throw new ManagerException("身份信息错误");
}
}
}

+ 29
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/repo/jpa/request/ass/RefundInfoPageRequest.java Dosyayı Görüntüle

@@ -0,0 +1,29 @@
package cn.com.taiji.iaw.repo.jpa.request.ass;

import cn.com.taiji.common.pub.dao.HqlBuilder;
import cn.com.taiji.common.repo.request.jpa.JpaPageableDataRequest;
import cn.com.taiji.core.entity.comm.UserVehicleBind;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;

@Getter
@Setter
public class RefundInfoPageRequest extends JpaPageableDataRequest<UserVehicleBind> {

@NotEmpty(message = "openId不能为空")
private String openId;

public RefundInfoPageRequest() {
super.orderBy = "updateTime";
super.desc = true;
}
@Override
public HqlBuilder toSelectHql() {
HqlBuilder hql = new HqlBuilder("from AssRefundInfo where 1=1");
hql.append(" and openId = :openId", openId);
hql.append(" and delFlag = 0");
return hql;
}
}

+ 3
- 3
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/repo/jpa/request/comm/VehicleBindPageRequest.java Dosyayı Görüntüle

@@ -2,7 +2,7 @@ package cn.com.taiji.iaw.repo.jpa.request.comm;

import cn.com.taiji.common.pub.dao.HqlBuilder;
import cn.com.taiji.common.repo.request.jpa.JpaPageableDataRequest;
import cn.com.taiji.core.entity.comm.IawVehicleBind;
import cn.com.taiji.core.entity.comm.UserVehicleBind;
import io.swagger.annotations.ApiModel;
import lombok.Getter;
import lombok.Setter;
@@ -19,7 +19,7 @@ import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
public class VehicleBindPageRequest extends JpaPageableDataRequest<IawVehicleBind> {
public class VehicleBindPageRequest extends JpaPageableDataRequest<UserVehicleBind> {

/** 绑定状态 */
private Integer bindStatus = 1;
@@ -32,7 +32,7 @@ public class VehicleBindPageRequest extends JpaPageableDataRequest<IawVehicleBin

@Override
public HqlBuilder toSelectHql() {
HqlBuilder hql = new HqlBuilder("from " + IawVehicleBind.class.getName() + " where 1=1 ");
HqlBuilder hql = new HqlBuilder("from " + UserVehicleBind.class.getName() + " where 1=1 ");
hql.append(" and bindStatus = :bindStatus ", bindStatus);
hql.append(" and openId = :openId ", openId);
hql.append(" and vehiclePlate = :vehiclePlate ", vehiclePlate);

Loading…
İptal
Kaydet