Commit cfe24a40c73e5d7555f22536aa287adf9fb578c2
1 parent
2fe30da1
调整车辆认证逻辑
Showing
7 changed files
with
164 additions
and
18 deletions
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 |
pom.xml
@@ -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 |