@@ -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); | |||
} | |||
} | |||
} |
@@ -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 { | |||
} |
@@ -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), |
@@ -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; |
@@ -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 { |
@@ -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; | |||
} | |||
} |
@@ -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: |