qiubh 4 days ago
parent
commit
f3c0d41497

+ 34
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssOrderAuditRequest.java View File

@@ -0,0 +1,34 @@
package cn.com.taiji.core.model.comm.protocol.ias.ass;

import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

@Getter
@Setter
@Accessors(chain = true)
public class AssOrderAuditRequest extends AbstractSignTypeRequest<AssOrderAuditResponse> {

public AssOrderAuditRequest() {
super(AssServiceCmd.ORDERAUDIT);
}

@NotBlank
private String orderNo;
@NotNull
private Boolean auditStatus;
private String reason;
@NotBlank
private String staffId;
public void relatedValid(ErrorMsgBuilder builder) {
if (auditStatus!=null && !auditStatus) {
builder.validFieldNotBlank("reason", reason);
}
}

}

+ 11
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssOrderAuditResponse.java View File

@@ -0,0 +1,11 @@
package cn.com.taiji.core.model.comm.protocol.ias.ass;

import cn.com.taiji.core.model.comm.protocol.ias.order.AbstractIssueResponse;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class AssOrderAuditResponse extends AbstractIssueResponse {

}

+ 1
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssServiceCmd.java View File

@@ -9,6 +9,7 @@ import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehicleIn
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehiclePlateChangeRequest;

public enum AssServiceCmd implements SignServiceCommand {
ORDERAUDIT("订单审核", AssOrderAuditRequest.class){},
LOSS("挂失/解除挂失", DeviceLossRequest.class){},
VEHICLECHANGE("车辆信息更改", VehicleChangeRequest.class),
VEHICLEINFOCHANGE("车辆信息更改", VehicleInfoChangeRequest.class),

+ 1
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/dict/DataType.java View File

@@ -39,7 +39,7 @@ public enum DataType {
RELEASE_PLATE_REVIEW("releasePlateReview", IasServiceType.ASS, AssServiceCmd.RELEASEPLATEREVIEW),
RELEASE_PLATE_VIEW("releasePlateView", IasServiceType.ASS, AssServiceCmd.RELEASEPLATEVIEW),

ASSORDER_AUDIT("AassOrderAudit", IasServiceType.ASS, AssServiceCmd.ORDERAUDIT),
;
private final String value;
private final SignServiceType serviceType;

+ 17
- 4
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/AbstractAssManager.java View File

@@ -1,35 +1,48 @@
package cn.com.taiji.ias.manager.ass;


import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.ass.AssOrderinfo;
import cn.com.taiji.core.entity.basic.*;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.vaild.VehiclePlateCheckRequest;
import cn.com.taiji.core.model.comm.protocol.ias.vaild.VehiclePlateCheckResponse;
import cn.com.taiji.core.model.comm.protocol.ods.oqs.issue.*;
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo;
import cn.com.taiji.core.repo.jpa.user.StaffRepo;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.manager.AbstractHandleManager;
import cn.com.taiji.ias.manager.GlobalTransactionManager;
import cn.com.taiji.ias.manager.valid.VehiclePlateCheckManager;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

public abstract class AbstractAssManager<T extends AbstractSignTypeRequest<?>> extends AbstractHandleManager<T> {

public static final String STAFF = "staff";
public static final String ORDER = "order";

public AbstractAssManager(DataType dataType) {
super(dataType);
}

@Autowired
protected AssOrderinfoRepo assOrderinfoRepo;

protected AssOrderinfoRepo orderInfoRepo;
@Autowired
private VehiclePlateCheckManager vehiclePlateCheckManager;

@Autowired
protected GlobalTransactionManager transactionManager;
@Autowired
protected StaffRepo staffRepo;

protected AssOrderinfo checkOrder(String orderNo) throws ServiceHandleException {
AssOrderinfo order = orderInfoRepo.findByOrderNo(orderNo);
if (order == null) {
throw newBusinessException("订单不存在");
}
return order;
}


protected VehiclePlateCheckResponse checkVehiclePlate(String vehiclePlate, Integer vehiclePlateColor) throws ServiceHandleException {

+ 99
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/AssOrderAuditManager.java View File

@@ -0,0 +1,99 @@
package cn.com.taiji.ias.manager.ass;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.ass.AssOrderinfo;
import cn.com.taiji.core.entity.dict.ass.AssOrderStatus;
import cn.com.taiji.core.entity.dict.ass.AssOrderStep;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderAuditRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderAuditResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.model.ServiceLogEvent;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.Map;

@Service
public class AssOrderAuditManager extends AbstractAssManager<AssOrderAuditRequest> {

public AssOrderAuditManager() {
super(DataType.ASSORDER_AUDIT);
}
@Override
protected String getDataId(AssOrderAuditRequest req) {
return "";
}

@Override
protected void formatValidateInternal(ErrorMsgBuilder builder, AssOrderAuditRequest request,
ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
request.relatedValid(builder);
}

@Override
protected void businessValidateInternal(ErrorMsgBuilder builder, AssOrderAuditRequest request,
ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
Staff staff = staffRepo.findByStaffId(request.getStaffId());
if (staff == null) {
throw GlyServiceError.FORMAT_VALIDATE_ERR.toHandleException("员工不存在");
}
dataStream.put(STAFF, staff);
AssOrderinfo order = checkOrder(request.getOrderNo());
if (!AssOrderStatus.NORMAL.equals(order.getOrderStatus())) {
throw newBusinessException("当前订单不能审核,订单状态:" + order.getOrderStatus().getStatus());
}
if (!AssOrderStep.WAITING_AUDIT.equals(order.getOrderStep())) {
throw newBusinessException("当前订单步骤不能审核,订单步骤:" + order.getOrderStep().getStep());
}
dataStream.put(ORDER, order);
}

@Override
protected void persistInternal(AssOrderAuditRequest request, ServiceLogEvent event,
Map<String, Object> dataStream) throws ServiceHandleException {
AssOrderinfo order = (AssOrderinfo) dataStream.get(ORDER);
Staff staff = (Staff) dataStream.get(STAFF);
if (request.getAuditStatus()) {
//审核通过
switch (order.getOrderType()) {
case USER_UPDATE:
//TODO
default:
throw GlyServiceError.FORMAT_VALIDATE_ERR.toHandleException("订单类型未定义");
}
} else {
order.setOrderStatus(AssOrderStatus.CLOSE);
order.setOrderStep(AssOrderStep.AUDIT_FAIL);
}
order.setAuditOpenId(staff.getOpenId());
order.setAuditTime(LocalDateTime.now());
order.setArtificialStatus(1);
orderInfoRepo.merge(order);
}

@Override
protected void onSuccessInternal(AssOrderAuditRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
// AssOrderinfo order = (AssOrderinfo) dataStream.get(ORDER);
// 通知渠道
// if (SourceType.CHANNEL.equals(order.getOrderSource())) {
// executor.execute(() -> {
// //需要支付通知已支付,不需要支付通知已签约
// //审核时,既然可以走到待激活,那么肯定需要支付
// if (CardType.CHARGE_CARD != order.getCardType() && IssueOrderStep.WAITING_ACTIVE.equals(order.getOrderStep())){
// order.setOrderStep(IssueOrderStep.ORDER_SIGNED);////储值卡不需要支付且审核通过,通知已签约,其实库里状态是待激活
// }
// qdCallUtil.callBackQd(order, req.getReason());
// });
// }
}

@Override
protected AssOrderAuditResponse getRes(AssOrderAuditRequest req, ServiceLogEvent event,
Map<String, Object> dataStream) throws ServiceHandleException {
AssOrderAuditResponse res = new AssOrderAuditResponse();
return res;
}
}

+ 17
- 12
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/handler/AssServiceHandler.java View File

@@ -1,31 +1,32 @@
package cn.com.taiji.ias.manager.handler;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.model.file.FileProtocolSystemError;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.SignJsonRequest;
import cn.com.taiji.core.model.comm.protocol.ias.IasServiceType;
import cn.com.taiji.core.model.comm.protocol.ias.ass.*;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehicleChangeArtificialRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehicleChangeCancelRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehicleInfoChangeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehiclePlateChangeRequest;
import cn.com.taiji.ias.manager.ass.AssOrderAuditManager;
import cn.com.taiji.ias.manager.ass.base.CustomerInfoChangeApplyManager;
import cn.com.taiji.ias.manager.ass.base.CustomerInfoChangeAuditManager;
import cn.com.taiji.ias.manager.ass.device.DeviceLossManager;
import cn.com.taiji.ias.manager.ass.releasePlate.PlateOccupyQueryManager;
import cn.com.taiji.ias.manager.ass.releasePlate.ReleasePlateApplyManager;
import cn.com.taiji.ias.manager.ass.releasePlate.ReleasePlateReviewManager;
import cn.com.taiji.ias.manager.ass.releasePlate.ReleasePlateViewManager;
import cn.com.taiji.ias.manager.ass.resign.ResignManager;
import cn.com.taiji.ias.manager.ass.device.DeviceLossManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zgglyun.common.model.AbstractHttpRequestInfo;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.model.file.FileProtocolSystemError;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.SignJsonRequest;
import cn.com.taiji.core.model.comm.protocol.ias.IasServiceType;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehicleInfoChangeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.vehicleInfoChange.VehiclePlateChangeRequest;
import cn.com.taiji.ias.manager.vehicleInfoChange.VehicleChangeArtificialManager;
import cn.com.taiji.ias.manager.vehicleInfoChange.VehicleChangeCancelManager;
import cn.com.taiji.ias.manager.vehicleInfoChange.VehicleInfoChangeManager;
import cn.com.taiji.ias.manager.vehicleInfoChange.VehiclePlateChangeManager;
import com.zgglyun.common.model.AbstractHttpRequestInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class AssServiceHandler extends AbstractIasServiceHandler<AssServiceCmd> {
@@ -55,6 +56,8 @@ public class AssServiceHandler extends AbstractIasServiceHandler<AssServiceCmd>
private CustomerInfoChangeApplyManager changeApplyManager;
@Autowired
private CustomerInfoChangeAuditManager changeAuditManager;
@Autowired
private AssOrderAuditManager assOrderAuditManager;

public AssServiceHandler() {
super(IasServiceType.ASS);
@@ -64,6 +67,8 @@ public class AssServiceHandler extends AbstractIasServiceHandler<AssServiceCmd>
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException {
AssServiceCmd cmd = AssServiceCmd.fromIfCode(jsonReq.getIfCode());
switch (cmd) {
case ORDERAUDIT:
return assOrderAuditManager.serviceHandle((AssOrderAuditRequest) request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo);
case RESIGN:
return resignManager.serviceHandle((ResignRequest) request);
case PLATEOCCUPYQUERY:

Loading…
Cancel
Save