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 | 22 | |
23 | 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 | 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 | 1 | package cn.fw.valhalla.domain.dto; |
2 | 2 | |
3 | 3 | import cn.fw.common.validator.Vin; |
4 | +import cn.fw.valhalla.domain.vo.customer.VehicleRecordVO; | |
4 | 5 | import lombok.Data; |
5 | 6 | import lombok.ToString; |
6 | 7 | |
... | ... | @@ -72,7 +73,7 @@ public class NewVehicleDTO { |
72 | 73 | */ |
73 | 74 | private Long memberId; |
74 | 75 | /** |
75 | - * | |
76 | + * 会员名称 | |
76 | 77 | */ |
77 | 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 | 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 | 68 | @Override |
53 | 69 | @JsonValue |
54 | 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 | 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 | 124 | <groupId>cn.fw</groupId> |
125 | 125 | <artifactId>fw-dfs-sdk</artifactId> |
126 | 126 | </dependency> |
127 | + <dependency> | |
128 | + <groupId>cn.fw</groupId> | |
129 | + <artifactId>fw-identify-sdk</artifactId> | |
130 | + </dependency> | |
127 | 131 | </dependencies> |
128 | 132 | <build> |
129 | 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 | 124 | \ No newline at end of file | ... | ... |
pom.xml
... | ... | @@ -62,6 +62,7 @@ |
62 | 62 | <fw.hestia.sdk>1.0.0</fw.hestia.sdk> |
63 | 63 | <fw.backlog.sdk>1.0.0</fw.backlog.sdk> |
64 | 64 | <fw.shirasawa.sdk>1.0.2</fw.shirasawa.sdk> |
65 | + <fw-identify-sdk.version>1.0.0</fw-identify-sdk.version> | |
65 | 66 | </properties> |
66 | 67 | |
67 | 68 | <dependencyManagement> |
... | ... | @@ -274,6 +275,11 @@ |
274 | 275 | <artifactId>fw-backlog-sdk</artifactId> |
275 | 276 | <version>${fw.backlog.sdk}</version> |
276 | 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 | 283 | </dependencies> |
278 | 284 | </dependencyManagement> |
279 | 285 | ... | ... |