1.优化任务处理过程
Showing
9 changed files
with
87 additions
and
31 deletions
... | @@ -5,6 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository; | ... | @@ -5,6 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository; |
5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; | 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; |
6 | import org.springframework.data.jpa.repository.Modifying; | 6 | import org.springframework.data.jpa.repository.Modifying; |
7 | import org.springframework.data.jpa.repository.Query; | 7 | import org.springframework.data.jpa.repository.Query; |
8 | import org.springframework.data.repository.query.Param; | ||
8 | 9 | ||
9 | import java.time.LocalDateTime; | 10 | import java.time.LocalDateTime; |
10 | import java.util.List; | 11 | import java.util.List; |
... | @@ -26,4 +27,20 @@ public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecif | ... | @@ -26,4 +27,20 @@ public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecif |
26 | @Query(value = "UPDATE `uc_member` SET `user_iptv_id` = ?2, `update_time` = ?3 , `bind_iptv_platform_type`= 0, " + | 27 | @Query(value = "UPDATE `uc_member` SET `user_iptv_id` = ?2, `update_time` = ?3 , `bind_iptv_platform_type`= 0, " + |
27 | "`bind_iptv_time`=?3 WHERE `id` = ?1", nativeQuery = true) | 28 | "`bind_iptv_time`=?3 WHERE `id` = ?1", nativeQuery = true) |
28 | void updateUserIptvIdById(Long id, Long userIptvId, LocalDateTime now); | 29 | void updateUserIptvIdById(Long id, Long userIptvId, LocalDateTime now); |
30 | |||
31 | @Modifying | ||
32 | @Query(value = "UPDATE `uc_member` SET `exp` = :#{#resources.exp}, `level` = :#{#resources.level} , `update_time`= now() " + | ||
33 | " WHERE `id` = :#{#resources.id}", nativeQuery = true) | ||
34 | void updateExpAndLevel(@Param("resources") Member member); | ||
35 | |||
36 | @Modifying | ||
37 | @Query(value = "UPDATE `uc_member` SET `points` = :#{#resources.points}, `due_points` = :#{#resources.duePoints} , `update_time`= now() " + | ||
38 | " WHERE `id` = :#{#resources.id}", nativeQuery = true) | ||
39 | void updatePointAndDuePoint(@Param("resources") Member resources); | ||
40 | |||
41 | @Modifying | ||
42 | @Query(value = "UPDATE `uc_member` SET `coupon_amount` = :#{#resources.couponAmount}, `due_coupon_amount` = :#{#resources.dueCouponAmount} , `update_time`= now() " + | ||
43 | " WHERE `id` = :#{#resources.id}", nativeQuery = true) | ||
44 | void doUpdateMemberCoupon(@Param("resources") Member member); | ||
45 | |||
29 | } | 46 | } | ... | ... |
... | @@ -86,4 +86,6 @@ public interface MemberService { | ... | @@ -86,4 +86,6 @@ public interface MemberService { |
86 | void unbind(Member resources); | 86 | void unbind(Member resources); |
87 | 87 | ||
88 | void updateUserIptvIdById(Long id, Long userIptvId, LocalDateTime now); | 88 | void updateUserIptvIdById(Long id, Long userIptvId, LocalDateTime now); |
89 | |||
90 | void doUpdateMemberCoupon(Member member); | ||
89 | } | 91 | } | ... | ... |
... | @@ -111,12 +111,22 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -111,12 +111,22 @@ public class MemberServiceImpl implements MemberService { |
111 | } | 111 | } |
112 | 112 | ||
113 | @Override | 113 | @Override |
114 | @Transactional(rollbackFor = Exception.class) | ||
114 | public MemberDTO doUpdateMemberExpAndLevel(Member resources) { | 115 | public MemberDTO doUpdateMemberExpAndLevel(Member resources) { |
115 | MemberDTO memberDTO = this.update(resources); | 116 | MemberDTO memberDTO = this.findByCode(resources.getCode()); |
117 | |||
118 | Member member = new Member(); | ||
119 | member.setId(memberDTO.getId()); | ||
120 | member.setExp(resources.getExp()); | ||
121 | member.setLevel(resources.getLevel()); | ||
122 | member.setUpdateTime(LocalDateTime.now()); | ||
123 | this.memberRepository.updateExpAndLevel(member); | ||
124 | // MemberDTO memberDTO = this.update(resources); | ||
116 | return memberDTO; | 125 | return memberDTO; |
117 | } | 126 | } |
118 | 127 | ||
119 | @Override | 128 | @Override |
129 | @Transactional(rollbackFor = Exception.class) | ||
120 | public MemberDTO unbindUserIpTv(Member member) { | 130 | public MemberDTO unbindUserIpTv(Member member) { |
121 | Member _member = this.save(member); | 131 | Member _member = this.save(member); |
122 | return this.memberMapper.toDto(_member); | 132 | return this.memberMapper.toDto(_member); |
... | @@ -178,6 +188,12 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -178,6 +188,12 @@ public class MemberServiceImpl implements MemberService { |
178 | 188 | ||
179 | @Override | 189 | @Override |
180 | @Transactional(rollbackFor = Exception.class) | 190 | @Transactional(rollbackFor = Exception.class) |
191 | public void doUpdateMemberCoupon(Member member) { | ||
192 | this.memberRepository.doUpdateMemberCoupon(member); | ||
193 | } | ||
194 | |||
195 | @Override | ||
196 | @Transactional(rollbackFor = Exception.class) | ||
181 | public MemberDTO update(Member resources) { | 197 | public MemberDTO update(Member resources) { |
182 | 198 | ||
183 | log.info("MemberServiceImpl ==>> update ==>> resources ==>> [{}]" , resources); | 199 | log.info("MemberServiceImpl ==>> update ==>> resources ==>> [{}]" , resources); |
... | @@ -219,11 +235,11 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -219,11 +235,11 @@ public class MemberServiceImpl implements MemberService { |
219 | 235 | ||
220 | Member member = this.memberRepository.findById(resources.getId()).orElseGet(Member::new); | 236 | Member member = this.memberRepository.findById(resources.getId()).orElseGet(Member::new); |
221 | ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId()); | 237 | ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId()); |
222 | member.copy(resources); | 238 | this.memberRepository.updatePointAndDuePoint(resources); |
239 | // member.copy(resources); | ||
223 | 240 | ||
224 | Member _member = this.save(member); | 241 | // Member _member = this.save(member); |
225 | 242 | return this.memberMapper.toDto(member); | |
226 | return this.memberMapper.toDto(_member); | ||
227 | 243 | ||
228 | } catch (Exception e) { | 244 | } catch (Exception e) { |
229 | e.printStackTrace(); | 245 | e.printStackTrace(); | ... | ... |
... | @@ -25,7 +25,7 @@ public class CouponOperationServiceImpl implements CouponOperationService { | ... | @@ -25,7 +25,7 @@ public class CouponOperationServiceImpl implements CouponOperationService { |
25 | String memberCode = member.getCode(); | 25 | String memberCode = member.getCode(); |
26 | MemberDTO memberDTO = this.memberService.findByCode(memberCode); | 26 | MemberDTO memberDTO = this.memberService.findByCode(memberCode); |
27 | member.setId(memberDTO.getId()); | 27 | member.setId(memberDTO.getId()); |
28 | this.memberOperationService.doUpdateMember(member); | 28 | this.memberService.doUpdateMemberCoupon(member); |
29 | } | 29 | } |
30 | 30 | ||
31 | public void asyncCouponHistory(CouponHistory couponHistory) { | 31 | public void asyncCouponHistory(CouponHistory couponHistory) { | ... | ... |
... | @@ -94,7 +94,15 @@ public class MemberOperationServiceImpl implements MemberOperationService { | ... | @@ -94,7 +94,15 @@ public class MemberOperationServiceImpl implements MemberOperationService { |
94 | // @CachePut(key = "#resources.id") | 94 | // @CachePut(key = "#resources.id") |
95 | @Override | 95 | @Override |
96 | public MemberDTO doUpdateMemberPoints(Member resources) { | 96 | public MemberDTO doUpdateMemberPoints(Member resources) { |
97 | return this.memberService.doUpdateMemberPoints(resources); | 97 | // return this.memberService.doUpdateMemberPoints(resources); |
98 | MemberDTO memberDTO = this.findByCode(resources.getCode()); | ||
99 | Member member = new Member(); | ||
100 | member.setId(memberDTO.getId()); | ||
101 | member.setPoints(resources.getPoints()); | ||
102 | member.setDuePoints(resources.getDuePoints()); | ||
103 | member.setUpdateTime(LocalDateTime.now()); | ||
104 | MemberDTO memberDTO1 = this.memberService.doUpdateMemberPoints(member); | ||
105 | return memberDTO1; | ||
98 | } | 106 | } |
99 | 107 | ||
100 | @Override | 108 | @Override | ... | ... |
... | @@ -72,14 +72,14 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -72,14 +72,14 @@ public class UcEventBusIptv2ManagementUcEngine { |
72 | @RabbitListener(queues = "#{rabbitMqSourceConfig.getEventBusQueue()}", | 72 | @RabbitListener(queues = "#{rabbitMqSourceConfig.getEventBusQueue()}", |
73 | containerFactory = "#{rabbitMqSourceConfig.getEventBusSource()}", | 73 | containerFactory = "#{rabbitMqSourceConfig.getEventBusSource()}", |
74 | autoStartup = "#{rabbitMqSourceConfig.getEventBusStartUp()}", | 74 | autoStartup = "#{rabbitMqSourceConfig.getEventBusStartUp()}", |
75 | ackMode = "MANUAL") | 75 | ackMode = "AUTO") |
76 | public void eventBusConsumer(Channel channel, Message message, String content) throws ParseException, IOException { | 76 | public void eventBusConsumer(Channel channel, Message message, String content) throws ParseException, IOException { |
77 | log.info(" receive dataSync msg , content is : {} ", content); | 77 | log.info(" receive dataSync msg , content is : {} ", content); |
78 | try { | 78 | try { |
79 | 79 | ||
80 | this.parseContent(content); | 80 | this.parseContent(content); |
81 | 81 | ||
82 | channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); | 82 | // channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); |
83 | 83 | ||
84 | } catch (Exception e) { | 84 | } catch (Exception e) { |
85 | 85 | ||
... | @@ -322,7 +322,7 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -322,7 +322,7 @@ public class UcEventBusIptv2ManagementUcEngine { |
322 | description.put("mediaCode", mediaCode); | 322 | description.put("mediaCode", mediaCode); |
323 | description.put("time", time); | 323 | description.put("time", time); |
324 | msgData1.setDescription(JSON.toJSONString(description)); | 324 | msgData1.setDescription(JSON.toJSONString(description)); |
325 | dataSyncMsg.setMsg(msgData1); | 325 | dataSyncMsg.setMsgData(JSONObject.toJSONString(msgData1)); |
326 | return dataSyncMsg; | 326 | return dataSyncMsg; |
327 | } | 327 | } |
328 | 328 | ... | ... |
... | @@ -61,8 +61,9 @@ public class UcGatewayIptv2IptvConsumer { | ... | @@ -61,8 +61,9 @@ public class UcGatewayIptv2IptvConsumer { |
61 | log.info(" receive dataSync msg , content is : {} ", content); | 61 | log.info(" receive dataSync msg , content is : {} ", content); |
62 | try { | 62 | try { |
63 | DataSyncMsg dataSyncMsg = this.parseContent(content); | 63 | DataSyncMsg dataSyncMsg = this.parseContent(content); |
64 | 64 | if (Objects.nonNull(dataSyncMsg)) { | |
65 | this.taskDeal(dataSyncMsg); | 65 | this.taskDeal(dataSyncMsg); |
66 | } | ||
66 | 67 | ||
67 | channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); | 68 | channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); |
68 | 69 | ||
... | @@ -95,7 +96,13 @@ public class UcGatewayIptv2IptvConsumer { | ... | @@ -95,7 +96,13 @@ public class UcGatewayIptv2IptvConsumer { |
95 | private DataSyncMsg parseContent(String content) { | 96 | private DataSyncMsg parseContent(String content) { |
96 | DataSyncMsg dataSyncMsg = JSONUtil.parseMsg2Object(content,DataSyncMsg.class); | 97 | DataSyncMsg dataSyncMsg = JSONUtil.parseMsg2Object(content,DataSyncMsg.class); |
97 | Assert.notNull(dataSyncMsg,"ERROR -->> operationConsumer -->> parseContent -->> 【dataSyncMsg】 not be null !!"); | 98 | Assert.notNull(dataSyncMsg,"ERROR -->> operationConsumer -->> parseContent -->> 【dataSyncMsg】 not be null !!"); |
98 | DataSyncMsg.MsgData msgData = dataSyncMsg.getMsg(); | 99 | String msgDataStr = dataSyncMsg.getMsgData(); |
100 | DataSyncMsg.MsgData msgData = null; | ||
101 | if (StringUtils.isNotBlank(msgDataStr)) { | ||
102 | msgData = JSONObject.parseObject(msgDataStr, DataSyncMsg.MsgData.class); | ||
103 | }else { | ||
104 | return null; | ||
105 | } | ||
99 | Long memberId = msgData.getMemberId(); | 106 | Long memberId = msgData.getMemberId(); |
100 | String memberCode = msgData.getMemberCode(); | 107 | String memberCode = msgData.getMemberCode(); |
101 | if (Objects.nonNull(memberId) && StringUtils.isBlank(memberCode)) { | 108 | if (Objects.nonNull(memberId) && StringUtils.isBlank(memberCode)) { |
... | @@ -117,7 +124,13 @@ public class UcGatewayIptv2IptvConsumer { | ... | @@ -117,7 +124,13 @@ public class UcGatewayIptv2IptvConsumer { |
117 | } | 124 | } |
118 | } | 125 | } |
119 | } | 126 | } |
120 | Assert.notNull(msgData,"ERROR -->> operationConsumer -->> parseContent -->> 【msgData】 not be null !!"); | 127 | |
128 | if(Objects.isNull(msgData.getMemberCode()) && Objects.isNull(msgData.getMemberId())) { | ||
129 | log.error("会员信息不存在,msgData =>> {}", msgData); | ||
130 | return null; | ||
131 | } | ||
132 | |||
133 | dataSyncMsg.setMsgData(JSONObject.toJSONString(msgData)); | ||
121 | return dataSyncMsg; | 134 | return dataSyncMsg; |
122 | } | 135 | } |
123 | 136 | ... | ... |
... | @@ -26,7 +26,7 @@ public class DataSyncMsg implements Serializable { | ... | @@ -26,7 +26,7 @@ public class DataSyncMsg implements Serializable { |
26 | // 发送时间 | 26 | // 发送时间 |
27 | private LocalDateTime time; | 27 | private LocalDateTime time; |
28 | // 消息体 | 28 | // 消息体 |
29 | private MsgData msg; | 29 | private String msgData; |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * 消息体 | 32 | * 消息体 | ... | ... |
... | @@ -78,8 +78,8 @@ mutil-mq: | ... | @@ -78,8 +78,8 @@ mutil-mq: |
78 | password: guest | 78 | password: guest |
79 | # password: Topdraw1qaz | 79 | # password: Topdraw1qaz |
80 | # 虚拟空间 | 80 | # 虚拟空间 |
81 | # virtual-host: member_center_iptv_sichuan | 81 | virtual-host: member_center_iptv_sichuan |
82 | virtual-host: member_center_small_sichuan | 82 | # virtual-host: member_center_small_sichuan |
83 | publisher-confirms: true #如果对异步消息需要回调必须设置为true | 83 | publisher-confirms: true #如果对异步消息需要回调必须设置为true |
84 | 84 | ||
85 | # 管理侧 | 85 | # 管理侧 |
... | @@ -99,12 +99,12 @@ mutil-mq: | ... | @@ -99,12 +99,12 @@ mutil-mq: |
99 | service: | 99 | service: |
100 | mq: | 100 | mq: |
101 | list: | 101 | list: |
102 | # - source: event | 102 | - source: event |
103 | # exchange: event.exchange | 103 | exchange: event.exchange |
104 | # queue: event.queue | 104 | queue: event.queue |
105 | # exchange-type: direct | 105 | exchange-type: direct |
106 | # routing-key: | 106 | routing-key: |
107 | # active: service | 107 | active: service |
108 | - source: collection | 108 | - source: collection |
109 | exchange: exchange.collection | 109 | exchange: exchange.collection |
110 | queue: collection.queue | 110 | queue: collection.queue |
... | @@ -136,24 +136,24 @@ service: | ... | @@ -136,24 +136,24 @@ service: |
136 | # exchange-type: direct | 136 | # exchange-type: direct |
137 | # routing-key: | 137 | # routing-key: |
138 | # active: service | 138 | # active: service |
139 | # - source: eventBus | 139 | - source: eventBus |
140 | # exchange: uc.eventbus | 140 | exchange: uc.eventbus |
141 | # queue: uc.eventbus | 141 | queue: uc.eventbus |
142 | # exchange-type: topic | 142 | exchange-type: topic |
143 | # routing-key: uc.eventbus.*.topic | 143 | routing-key: uc.eventbus.*.topic |
144 | # active: service | 144 | active: service |
145 | - source: uce | 145 | - source: uce |
146 | exchange: uc.direct | 146 | exchange: uc.direct |
147 | queue: uc.route.key.direct.event.bbb | 147 | queue: uc.route.key.direct.event.bbb |
148 | exchange-type: direct | 148 | exchange-type: direct |
149 | routing-key: | 149 | routing-key: |
150 | active: service | 150 | active: management |
151 | - source: uce | 151 | - source: uce |
152 | exchange: exchange.MemberInfoSync | 152 | exchange: exchange.MemberInfoSync |
153 | queue: queue.MemberInfoSync | 153 | queue: queue.MemberInfoSync |
154 | exchange-type: direct | 154 | exchange-type: direct |
155 | routing-key: | 155 | routing-key: |
156 | active: service | 156 | active: management |
157 | # - source: wechat | 157 | # - source: wechat |
158 | # exchange: weixin.subOrUnSub.direct | 158 | # exchange: weixin.subOrUnSub.direct |
159 | # queue: weixin.subOrUnSub.queue | 159 | # queue: weixin.subOrUnSub.queue | ... | ... |
-
Please register or sign in to post a comment