1.同步master,优化任务处理过程
Showing
10 changed files
with
90 additions
and
21 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; |
| ... | @@ -23,6 +24,23 @@ public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecif | ... | @@ -23,6 +24,23 @@ public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecif |
| 23 | Optional<Member> findByIdOrCode(Long id, String code); | 24 | Optional<Member> findByIdOrCode(Long id, String code); |
| 24 | 25 | ||
| 25 | @Modifying | 26 | @Modifying |
| 26 | @Query(value = "UPDATE `uc_user_tv` SET `user_iptv_id` = ?2, `update_time` = ?3 WHERE `id` = ?1", nativeQuery = true) | 27 | @Query(value = "UPDATE `uc_member` SET `user_iptv_id` = ?2, `update_time` = ?3 , `bind_iptv_platform_type`= 0, " + |
| 28 | "`bind_iptv_time`=?3 WHERE `id` = ?1", nativeQuery = true) | ||
| 27 | 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 | |||
| 28 | } | 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 | ... | ... |
| ... | @@ -47,7 +47,7 @@ public class WeiXinEventConsumer { | ... | @@ -47,7 +47,7 @@ public class WeiXinEventConsumer { |
| 47 | @RabbitHandler | 47 | @RabbitHandler |
| 48 | @RabbitListener(queues = "#{rabbitMqSourceConfig.getWechatQueue()}", | 48 | @RabbitListener(queues = "#{rabbitMqSourceConfig.getWechatQueue()}", |
| 49 | containerFactory = "#{rabbitMqSourceConfig.getWechatSource()}", | 49 | containerFactory = "#{rabbitMqSourceConfig.getWechatSource()}", |
| 50 | autoStartup = "#{rabbitMqSourceConfig.getWechatStartUp()}", ackMode = "MANUAL") | 50 | autoStartup = "#{rabbitMqSourceConfig.getWechatStartUp()}", ackMode = "AUTO") |
| 51 | @Transactional | 51 | @Transactional |
| 52 | public void subOrUnSubEvent(Channel channel, Message message, String content) throws IOException { | 52 | public void subOrUnSubEvent(Channel channel, Message message, String content) throws IOException { |
| 53 | try { | 53 | try { |
| ... | @@ -61,23 +61,32 @@ public class WeiXinEventConsumer { | ... | @@ -61,23 +61,32 @@ public class WeiXinEventConsumer { |
| 61 | 61 | ||
| 62 | String openid = wechatMsg.getString("FromUserName"); | 62 | String openid = wechatMsg.getString("FromUserName"); |
| 63 | String msgType = wechatMsg.getString("MsgType"); | 63 | String msgType = wechatMsg.getString("MsgType"); |
| 64 | |||
| 64 | if ("event".equals(msgType)) { | 65 | if ("event".equals(msgType)) { |
| 65 | String event = wechatMsg.getString("Event"); | 66 | String event = wechatMsg.getString("Event"); |
| 66 | String eventKey = wechatMsg.getString("EventKey"); | 67 | String eventKey = wechatMsg.getString("EventKey"); |
| 67 | 68 | ||
| 69 | log.info("event ==>> {}", event); | ||
| 70 | |||
| 68 | SubscribeBean subscribeBean = new SubscribeBean(); | 71 | SubscribeBean subscribeBean = new SubscribeBean(); |
| 69 | subscribeBean.setAppid(appid); | 72 | subscribeBean.setAppid(appid); |
| 70 | subscribeBean.setOpenid(openid); | 73 | subscribeBean.setOpenid(openid); |
| 71 | subscribeBean.setUnionid(unionid); | 74 | subscribeBean.setUnionid(unionid); |
| 72 | subscribeBean.setEventKey(eventKey); | 75 | subscribeBean.setEventKey(eventKey); |
| 73 | 76 | ||
| 74 | if (event.equals("subscribe")) | 77 | if (event.equals("subscribe")) { |
| 78 | log.info("send subscribe request start"); | ||
| 75 | this.restTemplateClient.subscribe(subscribeBean); | 79 | this.restTemplateClient.subscribe(subscribeBean); |
| 80 | log.info("send subscribe request end "); | ||
| 81 | } | ||
| 76 | 82 | ||
| 77 | if (event.equals("unsubscribe")) | 83 | if (event.equals("unsubscribe")) { |
| 84 | log.info("send unsubscribe request start"); | ||
| 78 | this.restTemplateClient.unsubscribe(subscribeBean); | 85 | this.restTemplateClient.unsubscribe(subscribeBean); |
| 86 | log.info("send unsubscribe request end"); | ||
| 87 | } | ||
| 79 | 88 | ||
| 80 | channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); | 89 | // channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); |
| 81 | } | 90 | } |
| 82 | 91 | ||
| 83 | } catch (Exception e) { | 92 | } catch (Exception e) { | ... | ... |
| ... | @@ -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 | * 消息体 | ... | ... |
| ... | @@ -97,7 +97,9 @@ public class RestTemplateClient { | ... | @@ -97,7 +97,9 @@ public class RestTemplateClient { |
| 97 | 97 | ||
| 98 | HashMap<Object, Object> objectObjectHashMap = new HashMap<>(); | 98 | HashMap<Object, Object> objectObjectHashMap = new HashMap<>(); |
| 99 | objectObjectHashMap.put("content", content); | 99 | objectObjectHashMap.put("content", content); |
| 100 | log.info("reobjectObjectHashMap ===>> [{}]",objectObjectHashMap); | ||
| 100 | restTemplate.postForEntity(url, objectObjectHashMap, String.class); | 101 | restTemplate.postForEntity(url, objectObjectHashMap, String.class); |
| 102 | log.info("unsubscribe ===>> success"); | ||
| 101 | /*ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, subscribeBean, String.class); | 103 | /*ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, subscribeBean, String.class); |
| 102 | String entityBody = ""; | 104 | String entityBody = ""; |
| 103 | if (responseEntity.getStatusCode().is2xxSuccessful()) { | 105 | if (responseEntity.getStatusCode().is2xxSuccessful()) { |
| ... | @@ -113,8 +115,9 @@ public class RestTemplateClient { | ... | @@ -113,8 +115,9 @@ public class RestTemplateClient { |
| 113 | 115 | ||
| 114 | HashMap<String, String> objectObjectHashMap = new HashMap<>(); | 116 | HashMap<String, String> objectObjectHashMap = new HashMap<>(); |
| 115 | objectObjectHashMap.put("content", content); | 117 | objectObjectHashMap.put("content", content); |
| 116 | log.info("objectObjectHashMap ===>> [{}]",objectObjectHashMap); | 118 | log.info("reobjectObjectHashMap ===>> [{}]",objectObjectHashMap); |
| 117 | restTemplate.postForEntity(url, objectObjectHashMap, String.class); | 119 | restTemplate.postForEntity(url, objectObjectHashMap, String.class); |
| 120 | log.info("send subscribe request ===>> success"); | ||
| 118 | /*ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, subscribeBean, String.class); | 121 | /*ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, subscribeBean, String.class); |
| 119 | String entityBody = ""; | 122 | String entityBody = ""; |
| 120 | if (responseEntity.getStatusCode().is2xxSuccessful()) { | 123 | if (responseEntity.getStatusCode().is2xxSuccessful()) { | ... | ... |
-
Please register or sign in to post a comment