@@ -0,0 +1,117 @@ | |||
package com.qtzl.alterSales.dao.entity.second; | |||
import com.txffp.api.core.dao.entity.AbstractInsertTimeEntity; | |||
import javax.persistence.Column; | |||
import javax.persistence.Entity; | |||
import javax.persistence.Table; | |||
/** | |||
* ETC挂失/解挂管理; | |||
* @author : zhangxin | |||
* @date : 2024-6-12 | |||
*/ | |||
@Entity | |||
@Table(name="AFL_OFF_OPEN_INFO") | |||
public class AflOffOpenInfo extends AbstractInsertTimeEntity { | |||
/** 用户编号 */ | |||
private String openId ; | |||
/** 账户编号 */ | |||
private String accountId ; | |||
/** 车辆编号 */ | |||
private String vehicleId ; | |||
/** 接口凭证 */ | |||
private String accessToken ; | |||
/** 车牌号 */ | |||
private String plateNum ; | |||
/** 车牌颜色 */ | |||
private Integer plateColor ; | |||
/** 身份证正面照 */ | |||
private String userIdImageUrl ; | |||
/** 操作类型(0-挂失;1-解挂) */ | |||
private Integer operationType ; | |||
/** 创建人 */ | |||
private String creator ; | |||
/** 用户编号 */ | |||
@Column(name ="OPEN_ID") | |||
public String getOpenId(){ | |||
return this.openId; | |||
} | |||
/** 用户编号 */ | |||
public void setOpenId(String openId){ | |||
this.openId=openId; | |||
} | |||
/** 账户编号 */ | |||
@Column(name ="ACCOUNT_ID") | |||
public String getAccountId(){ | |||
return this.accountId; | |||
} | |||
/** 账户编号 */ | |||
public void setAccountId(String accountId){ | |||
this.accountId=accountId; | |||
} | |||
/** 车辆编号 */ | |||
@Column(name ="VEHICLE_ID") | |||
public String getVehicleId(){ | |||
return this.vehicleId; | |||
} | |||
/** 车辆编号 */ | |||
public void setVehicleId(String vehicleId){ | |||
this.vehicleId=vehicleId; | |||
} | |||
/** 接口凭证 */ | |||
@Column(name ="ACCESS_TOKEN") | |||
public String getAccessToken(){ | |||
return this.accessToken; | |||
} | |||
/** 接口凭证 */ | |||
public void setAccessToken(String accessToken){ | |||
this.accessToken=accessToken; | |||
} | |||
/** 车牌号 */ | |||
@Column(name ="PLATE_NUM") | |||
public String getPlateNum(){ | |||
return this.plateNum; | |||
} | |||
/** 车牌号 */ | |||
public void setPlateNum(String plateNum){ | |||
this.plateNum=plateNum; | |||
} | |||
/** 车牌颜色 */ | |||
@Column(name ="PLATE_COLOR") | |||
public Integer getPlateColor(){ | |||
return this.plateColor; | |||
} | |||
/** 车牌颜色 */ | |||
public void setPlateColor(Integer plateColor){ | |||
this.plateColor=plateColor; | |||
} | |||
/** 身份证正面照 */ | |||
@Column(name ="USER_ID_IMAGE_URL") | |||
public String getUserIdImageUrl(){ | |||
return this.userIdImageUrl; | |||
} | |||
/** 身份证正面照 */ | |||
public void setUserIdImageUrl(String userIdImageUrl){ | |||
this.userIdImageUrl=userIdImageUrl; | |||
} | |||
/** 操作类型(0-挂失;1-解挂) */ | |||
@Column(name ="OPERATION_TYPE") | |||
public Integer getOperationType(){ | |||
return this.operationType; | |||
} | |||
/** 操作类型(0-挂失;1-解挂) */ | |||
public void setOperationType(Integer operationType){ | |||
this.operationType=operationType; | |||
} | |||
/** 创建人 */ | |||
@Column(name ="CREATOR") | |||
public String getCreator(){ | |||
return this.creator; | |||
} | |||
/** 创建人 */ | |||
public void setCreator(String creator){ | |||
this.creator=creator; | |||
} | |||
} |
@@ -0,0 +1,11 @@ | |||
package com.qtzl.alterSales.dao.repo.jpa.second; | |||
import com.qtzl.alterSales.dao.entity.second.AflOffOpenInfo; | |||
import org.springframework.data.jpa.repository.JpaRepository; | |||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; | |||
public interface AflOffOpenInfoRepo extends JpaRepository<AflOffOpenInfo, String>, JpaSpecificationExecutor<AflOffOpenInfo> { | |||
} |
@@ -0,0 +1,97 @@ | |||
package com.qtzl.alterSales.manager.handler; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import com.google.common.collect.Lists; | |||
import com.qtzl.alterSales.dao.entity.second.AflOffOpenInfo; | |||
import com.qtzl.alterSales.dao.repo.jpa.second.AflOffOpenInfoRepo; | |||
import com.qtzl.alterSales.manager.abstracts.AbstractAfterSalesManager; | |||
import com.qtzl.alterSales.manager.model.protocol.UcServiceError; | |||
import com.qtzl.alterSales.manager.model.protocol.sales.AflOffOpenInfoPageRequest; | |||
import com.qtzl.alterSales.manager.model.protocol.sales.AflOffOpenInfoPageResponse; | |||
import com.qtzl.alterSales.manager.service.AfterSalesCmd; | |||
import com.txffp.api.core.manager.comm.annotation.ApiHandler; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.springframework.data.domain.Page; | |||
import org.springframework.data.domain.PageRequest; | |||
import org.springframework.data.domain.Sort; | |||
import org.springframework.stereotype.Service; | |||
import javax.annotation.Resource; | |||
import javax.persistence.criteria.Predicate; | |||
import java.time.LocalDateTime; | |||
import java.util.List; | |||
import java.util.stream.Collectors; | |||
/** | |||
* ETC挂失/解挂管理分页查询; | |||
* @author : zhangxin | |||
* @date : 2024-6-12 | |||
*/ | |||
@Service | |||
@ApiHandler | |||
public class AflOffOpenInfoFindPageHandler extends AbstractAfterSalesManager<AflOffOpenInfoPageRequest> { | |||
@Resource | |||
AflOffOpenInfoRepo aflOffOpenInfoRepo; | |||
public AflOffOpenInfoFindPageHandler() { | |||
super(AfterSalesCmd.FINDPAGEOFFOPENINFO, AflOffOpenInfoPageRequest.class); | |||
} | |||
@Override | |||
public String handleInternal(String filename, AflOffOpenInfoPageRequest request) throws ServiceHandleException { | |||
try { | |||
Page<AflOffOpenInfo> page = select(request); | |||
return toResponse(page, request).toJson(); | |||
} catch (Exception e) { | |||
if (e instanceof ServiceHandleException) { | |||
throw e; | |||
} | |||
logger.error("选装-查询接入渠道管理失败:{}", e.getMessage()); | |||
throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("查询接入渠道管理失败"); | |||
} | |||
} | |||
private AflOffOpenInfoPageResponse toResponse(Page<AflOffOpenInfo> page, AflOffOpenInfoPageRequest request) { | |||
final AflOffOpenInfoPageResponse response = new AflOffOpenInfoPageResponse(); | |||
response.setCurrentPage(request.getPageNo()); | |||
response.setPageSize(request.getPageSize()); | |||
response.setPageCount(page.getTotalPages()); | |||
response.setTotalCount(page.getTotalElements()); | |||
if (isEmpty(page.getContent())) { | |||
response.setData(Lists.newArrayList()); | |||
return response; | |||
} | |||
List<AflOffOpenInfo> formVoList = page.getContent().stream().collect(Collectors.toList()); | |||
response.setData(formVoList); | |||
return response; | |||
} | |||
private Page<AflOffOpenInfo> select(AflOffOpenInfoPageRequest request) throws ServiceHandleException { | |||
if (request.getPageSize() > 100) { | |||
throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("请求每页数量过大 " + request.getPageSize()); | |||
} | |||
return aflOffOpenInfoRepo.findAll(((root, query, cb) -> { | |||
List<Predicate> list = Lists.newArrayList(); | |||
if (!StringUtils.isEmpty(request.getAccountId())) { | |||
list.add(cb.equal(root.<String>get("accountId"), request.getAccountId())); | |||
} | |||
if (!StringUtils.isEmpty(request.getPlateNum())) { | |||
list.add(cb.equal(root.get("plateNum"), request.getPlateNum())); | |||
} | |||
if (request.getPlateColor()!=null) { | |||
list.add(cb.equal(root.<Integer>get("plateColor"), request.getPlateColor())); | |||
} | |||
if (request.getInsertTimeEnd()!=null) { | |||
list.add(cb.lessThanOrEqualTo(root.<LocalDateTime>get("insertTime"), request.getInsertTimeEnd())); | |||
} | |||
if (request.getInsertTimeStart()!=null) { | |||
list.add(cb.greaterThanOrEqualTo(root.<LocalDateTime>get("insertTime"), request.getInsertTimeStart())); | |||
} | |||
Predicate[] p = new Predicate[list.size()]; | |||
return cb.and(list.toArray(p)); | |||
}), PageRequest.of(request.getPageNo() - 1, request.getPageSize(), | |||
Sort.by(Sort.Direction.DESC, "insertTime"))); | |||
} | |||
} |
@@ -0,0 +1,68 @@ | |||
package com.qtzl.alterSales.manager.model.protocol.sales; | |||
import com.qtzl.alterSales.manager.model.protocol.AbstractAfterSalesPageRequest; | |||
import com.qtzl.alterSales.manager.service.AfterSalesCmd; | |||
import com.txffp.api.core.manager.comm.annotation.Api; | |||
import java.time.LocalDateTime; | |||
/*** | |||
* <p> | |||
* | |||
* </p> | |||
**/ | |||
@Api(cmdClazz = AfterSalesCmd.class, cmd = "") | |||
public class AflOffOpenInfoPageRequest extends AbstractAfterSalesPageRequest<AflOffOpenInfoPageResponse> { | |||
/*** 账户编号*/ | |||
private String accountId; | |||
/*** 车牌号 */ | |||
private String plateNum; | |||
/*** 车牌颜色 */ | |||
private Integer plateColor; | |||
/** 创建时间开始时间 */ | |||
private LocalDateTime insertTimeStart; | |||
/** 创建时间结束时间 */ | |||
private LocalDateTime insertTimeEnd; | |||
public String getAccountId() { | |||
return accountId; | |||
} | |||
public void setAccountId(String accountId) { | |||
this.accountId = accountId; | |||
} | |||
public LocalDateTime getInsertTimeStart() { | |||
return insertTimeStart; | |||
} | |||
public void setInsertTimeStart(LocalDateTime insertTimeStart) { | |||
this.insertTimeStart = insertTimeStart; | |||
} | |||
public LocalDateTime getInsertTimeEnd() { | |||
return insertTimeEnd; | |||
} | |||
public void setInsertTimeEnd(LocalDateTime insertTimeEnd) { | |||
this.insertTimeEnd = insertTimeEnd; | |||
} | |||
public String getPlateNum() { | |||
return plateNum; | |||
} | |||
public void setPlateNum(String plateNum) { | |||
this.plateNum = plateNum; | |||
} | |||
public Integer getPlateColor() { | |||
return plateColor; | |||
} | |||
public void setPlateColor(Integer plateColor) { | |||
this.plateColor = plateColor; | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
package com.qtzl.alterSales.manager.model.protocol.sales; | |||
import com.qtzl.alterSales.dao.entity.second.AflOffOpenInfo; | |||
import com.qtzl.alterSales.manager.model.protocol.AbstractAfterSalesPageResponse; | |||
/*** | |||
* <p> | |||
* | |||
* </p> | |||
**/ | |||
public class AflOffOpenInfoPageResponse extends AbstractAfterSalesPageResponse<AflOffOpenInfo> { | |||
} |