Commit cfe24a40c73e5d7555f22536aa287adf9fb578c2

Authored by 夏天
1 parent 2fe30da1

调整车辆认证逻辑

fw-valhalla-common/src/main/java/cn/fw/valhalla/common/utils/DateUtil.java
@@ -22,6 +22,8 @@ public final class DateUtil { @@ -22,6 +22,8 @@ public final class DateUtil {
22 22
23 static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 23 static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
24 24
  25 + static SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
  26 +
25 /** 27 /**
26 * 默认构造器 28 * 默认构造器
27 */ 29 */
@@ -39,6 +41,17 @@ public final class DateUtil { @@ -39,6 +41,17 @@ public final class DateUtil {
39 return null; 41 return null;
40 } 42 }
41 43
  44 +
  45 + public static Date parse1(String date){
  46 + try {
  47 + return sdf1.parse(date);
  48 + } catch (Exception e) {
  49 + e.printStackTrace();
  50 + }
  51 + return null;
  52 + }
  53 +
  54 +
42 /** 55 /**
43 * 开始日期处理 56 * 开始日期处理
44 */ 57 */
fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/dto/NewVehicleDTO.java
1 package cn.fw.valhalla.domain.dto; 1 package cn.fw.valhalla.domain.dto;
2 2
3 import cn.fw.common.validator.Vin; 3 import cn.fw.common.validator.Vin;
  4 +import cn.fw.valhalla.domain.vo.customer.VehicleRecordVO;
4 import lombok.Data; 5 import lombok.Data;
5 import lombok.ToString; 6 import lombok.ToString;
6 7
@@ -72,7 +73,7 @@ public class NewVehicleDTO { @@ -72,7 +73,7 @@ public class NewVehicleDTO {
72 */ 73 */
73 private Long memberId; 74 private Long memberId;
74 /** 75 /**
75 - * 76 + * 会员名称
76 */ 77 */
77 private String memberName; 78 private String memberName;
78 } 79 }
fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/enums/CarUseTypeEnum.java
@@ -49,6 +49,22 @@ public enum CarUseTypeEnum implements IEnum<Integer> { @@ -49,6 +49,22 @@ public enum CarUseTypeEnum implements IEnum<Integer> {
49 return null; 49 return null;
50 } 50 }
51 51
  52 + /**
  53 + * 根据枚举中文名字获取枚举对象
  54 + *
  55 + * @param name 名字
  56 + * @return 枚举对象
  57 + */
  58 + public static CarUseTypeEnum ofName(final String name) {
  59 + for (final CarUseTypeEnum typeEnum : CarUseTypeEnum.values()) {
  60 + if (typeEnum.value.equals(name)) {
  61 + return typeEnum;
  62 + }
  63 + }
  64 + return null;
  65 + }
  66 +
  67 +
52 @Override 68 @Override
53 @JsonValue 69 @JsonValue
54 public Integer getValue() { 70 public Integer getValue() {
fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/wx/VehicleWxController.java
@@ -51,21 +51,4 @@ public class VehicleWxController { @@ -51,21 +51,4 @@ public class VehicleWxController {
51 return success(memberVehicleBizService.getVehicleList(user.getUserId())); 51 return success(memberVehicleBizService.getVehicleList(user.getUserId()));
52 } 52 }
53 53
54 - /**  
55 - * 新增变更档案  
56 - *  
57 - * @param user  
58 - * @param dto  
59 - * @return  
60 - */  
61 - @RepeatSubmit  
62 - @PostMapping("/save")  
63 - @ControllerMethod("新增认证车辆")  
64 - public Message<Void> saveVehicle(@CurrentUser PassportAuthBean user,  
65 - @Validated @RequestBody final NewVehicleDTO dto) {  
66 - dto.setMemberId(user.getUserId());  
67 - memberVehicleBizService.saveVehicle(dto);  
68 - return success();  
69 - }  
70 -  
71 } 54 }
fw-valhalla-service/pom.xml
@@ -124,6 +124,10 @@ @@ -124,6 +124,10 @@
124 <groupId>cn.fw</groupId> 124 <groupId>cn.fw</groupId>
125 <artifactId>fw-dfs-sdk</artifactId> 125 <artifactId>fw-dfs-sdk</artifactId>
126 </dependency> 126 </dependency>
  127 + <dependency>
  128 + <groupId>cn.fw</groupId>
  129 + <artifactId>fw-identify-sdk</artifactId>
  130 + </dependency>
127 </dependencies> 131 </dependencies>
128 <build> 132 <build>
129 <plugins> 133 <plugins>
fw-valhalla-service/src/main/java/cn/fw/valhalla/component/AuthVehicleConsumer.java 0 → 100644
  1 +package cn.fw.valhalla.component;
  2 +
  3 +import cn.fw.identify.sdk.api.mq.AuthDataEvent;
  4 +import cn.fw.valhalla.common.utils.*;
  5 +import cn.fw.valhalla.domain.dto.NewVehicleDTO;
  6 +import cn.fw.valhalla.rpc.member.MemberRpcService;
  7 +import cn.fw.valhalla.rpc.member.dto.MemberUserDTO;
  8 +import cn.fw.valhalla.sdk.enums.CarUseTypeEnum;
  9 +import cn.fw.valhalla.service.bus.cust.MemberVehicleBizService;
  10 +import com.alibaba.fastjson.JSON;
  11 +import lombok.Data;
  12 +import lombok.extern.slf4j.Slf4j;
  13 +import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
  14 +import org.apache.rocketmq.spring.core.RocketMQListener;
  15 +import org.springframework.stereotype.Component;
  16 +
  17 +import java.util.Date;
  18 +import java.util.Objects;
  19 +
  20 +
  21 +/**
  22 + * 监听认证mq
  23 + * @author xiatian
  24 + */
  25 +@Slf4j
  26 +@Component
  27 +@RocketMQMessageListener(topic = "auth_data_event", consumerGroup = "${spring.application.name}" + "-auth_data_event")
  28 +public class AuthVehicleConsumer implements RocketMQListener<AuthDataEvent> {
  29 +
  30 + private MemberRpcService memberRpcService;
  31 +
  32 + private MemberVehicleBizService memberVehicleBizService;
  33 +
  34 + public AuthVehicleConsumer(final MemberRpcService memberRpcService, final MemberVehicleBizService memberVehicleBizService) {
  35 + this.memberRpcService = memberRpcService;
  36 + this.memberVehicleBizService = memberVehicleBizService;
  37 + }
  38 +
  39 + @Override
  40 + public void onMessage(AuthDataEvent t) {
  41 + log.info("监听认证mq: AuthDataEvent=[{}]", t);
  42 + try {
  43 + String identifyCode = "NS9k";
  44 + if(identifyCode.equals(t.getIdentifyCode())){
  45 + return;
  46 + }
  47 + if(StringUtils.isEmpty(t.getVin())){
  48 + log.error("认证mq的vin为空");
  49 + }
  50 + //保存车辆认证信息
  51 + memberVehicleBizService.saveVehicle(with(JSON.parseObject(t.getExtraData(),VehicleData.class),t));
  52 + } catch (Exception ex) {
  53 + log.error("消费关注公众号mq失败,原因:{}", JSON.toJSONString(ex));
  54 + }
  55 + }
  56 +
  57 + @Data
  58 + private static class VehicleData{
  59 + private String plateNum;
  60 +
  61 + private String vehicleType;
  62 +
  63 + private String owner;
  64 +
  65 + private String addr;
  66 +
  67 + private String useCharacter;
  68 +
  69 + private String model;
  70 +
  71 + private String vin;
  72 +
  73 + private String engineNum;
  74 +
  75 + private String registerDate;
  76 +
  77 + private String issueDate;
  78 +
  79 + private String fileNo;
  80 +
  81 + private String approvedPassengerCapacity;
  82 +
  83 + private String grossMass;
  84 +
  85 + private String unladenMass;
  86 +
  87 + private String approvedLoad;
  88 +
  89 + private String overallDimension;
  90 +
  91 + private String tractionMass;
  92 +
  93 + private String inspectionRecord;
  94 + }
  95 +
  96 + private NewVehicleDTO with(VehicleData vehicleData,AuthDataEvent t){
  97 + MemberUserDTO member = memberRpcService.user(t.getMemberId());
  98 + String brandName = StringUtils.matchFirst(vehicleData.getModel(),"[\\u4e00-\\u9fa5]+",0);
  99 + if(Objects.isNull(brandName)){
  100 + log.error("未匹配行驶证品牌");
  101 + return null;
  102 + }
  103 + CarUseTypeEnum useType = CarUseTypeEnum.ofName(vehicleData.getUseCharacter());
  104 + if(Objects.isNull(useType)){
  105 + log.error("未匹配行驶证使用性质");
  106 + return null;
  107 + }
  108 + Date regDate = DateUtil.parse1(vehicleData.registerDate);
  109 + NewVehicleDTO newVehicle = new NewVehicleDTO();
  110 + newVehicle.setMemberId(t.getMemberId());
  111 + newVehicle.setMemberName(Objects.nonNull(member) ? member.getRealName() : null);
  112 + newVehicle.setUseType(useType.getValue());
  113 + newVehicle.setCusType(t.getVehicleType());
  114 + newVehicle.setBrandName(brandName);
  115 + newVehicle.setEngineNo(vehicleData.getEngineNum());
  116 + newVehicle.setPlateNo(vehicleData.getPlateNum());
  117 + newVehicle.setFrameNo(vehicleData.getVin());
  118 + newVehicle.setName(vehicleData.getOwner());
  119 + newVehicle.setRegDate(regDate);
  120 + newVehicle.setSpecCode(vehicleData.getModel().replace(brandName,""));
  121 + return newVehicle;
  122 + }
  123 +}
0 \ No newline at end of file 124 \ No newline at end of file
@@ -62,6 +62,7 @@ @@ -62,6 +62,7 @@
62 <fw.hestia.sdk>1.0.0</fw.hestia.sdk> 62 <fw.hestia.sdk>1.0.0</fw.hestia.sdk>
63 <fw.backlog.sdk>1.0.0</fw.backlog.sdk> 63 <fw.backlog.sdk>1.0.0</fw.backlog.sdk>
64 <fw.shirasawa.sdk>1.0.2</fw.shirasawa.sdk> 64 <fw.shirasawa.sdk>1.0.2</fw.shirasawa.sdk>
  65 + <fw-identify-sdk.version>1.0.0</fw-identify-sdk.version>
65 </properties> 66 </properties>
66 67
67 <dependencyManagement> 68 <dependencyManagement>
@@ -274,6 +275,11 @@ @@ -274,6 +275,11 @@
274 <artifactId>fw-backlog-sdk</artifactId> 275 <artifactId>fw-backlog-sdk</artifactId>
275 <version>${fw.backlog.sdk}</version> 276 <version>${fw.backlog.sdk}</version>
276 </dependency> 277 </dependency>
  278 + <dependency>
  279 + <groupId>cn.fw</groupId>
  280 + <artifactId>fw-identify-sdk</artifactId>
  281 + <version>${fw-identify-sdk.version}</version>
  282 + </dependency>
277 </dependencies> 283 </dependencies>
278 </dependencyManagement> 284 </dependencyManagement>
279 285