1.update
Showing
6 changed files
with
130 additions
and
22 deletions
... | @@ -35,7 +35,7 @@ public class UcEngineIptv2ManagementConsumer { | ... | @@ -35,7 +35,7 @@ public class UcEngineIptv2ManagementConsumer { |
35 | @RabbitListener(bindings = { | 35 | @RabbitListener(bindings = { |
36 | @QueueBinding(value = @Queue(value = RabbitMqConfig.ENGINE_TO_MANAGEMENT_DIRECT), | 36 | @QueueBinding(value = @Queue(value = RabbitMqConfig.ENGINE_TO_MANAGEMENT_DIRECT), |
37 | exchange = @Exchange(value = ExchangeTypes.DIRECT)) | 37 | exchange = @Exchange(value = ExchangeTypes.DIRECT)) |
38 | }, containerFactory = "serviceRabbitListenerContainerFactory")*/ | 38 | }, containerFactory = "managementRabbitListenerContainerFactory")*/ |
39 | public void ucEventConsumer(String content) { | 39 | public void ucEventConsumer(String content) { |
40 | log.info(" receive dataSync msg , content is : {} ", content); | 40 | log.info(" receive dataSync msg , content is : {} ", content); |
41 | TableOperationMsg tableOperationMsg = this.parseContent(content); | 41 | TableOperationMsg tableOperationMsg = this.parseContent(content); | ... | ... |
... | @@ -28,11 +28,11 @@ public class UcEngineManagement2IptvConsumer { | ... | @@ -28,11 +28,11 @@ public class UcEngineManagement2IptvConsumer { |
28 | * @author Hongyan Wang | 28 | * @author Hongyan Wang |
29 | * @date 2021/9/7 11:26 上午 | 29 | * @date 2021/9/7 11:26 上午 |
30 | */ | 30 | */ |
31 | /*@RabbitHandler | 31 | @RabbitHandler |
32 | @RabbitListener(bindings = { | 32 | @RabbitListener(bindings = { |
33 | @QueueBinding(value = @Queue(value = RabbitMqConfig.ENGINE_TO_SERVICE_DIRECT), | 33 | @QueueBinding(value = @Queue(value = RabbitMqConfig.ENGINE_TO_SERVICE_DIRECT), |
34 | exchange = @Exchange(value = ExchangeTypes.DIRECT)) | 34 | exchange = @Exchange(value = ExchangeTypes.DIRECT)) |
35 | }, containerFactory = "serviceRabbitListenerContainerFactory")*/ | 35 | }, containerFactory = "managementRabbitListenerContainerFactory") |
36 | public void ucEventConsumer(String content) { | 36 | public void ucEventConsumer(String content) { |
37 | log.info(" receive dataSync msg , content is : {} ", content); | 37 | log.info(" receive dataSync msg , content is : {} ", content); |
38 | TableOperationMsg tableOperationMsg = this.parseContent(content); | 38 | TableOperationMsg tableOperationMsg = this.parseContent(content); | ... | ... |
... | @@ -11,15 +11,25 @@ import com.topdraw.exception.BadRequestException; | ... | @@ -11,15 +11,25 @@ import com.topdraw.exception.BadRequestException; |
11 | import com.topdraw.exception.EntityNotFoundException; | 11 | import com.topdraw.exception.EntityNotFoundException; |
12 | import com.topdraw.mq.domain.DataSyncMsg; | 12 | import com.topdraw.mq.domain.DataSyncMsg; |
13 | import com.topdraw.resttemplate.RestTemplateClient; | 13 | import com.topdraw.resttemplate.RestTemplateClient; |
14 | import com.topdraw.util.DateUtil; | ||
14 | import com.topdraw.util.JSONUtil; | 15 | import com.topdraw.util.JSONUtil; |
16 | import com.topdraw.util.TimestampUtil; | ||
17 | import com.topdraw.utils.RedisUtils; | ||
15 | import lombok.Data; | 18 | import lombok.Data; |
16 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
20 | import org.apache.commons.collections4.MapUtils; | ||
17 | import org.apache.commons.lang3.StringUtils; | 21 | import org.apache.commons.lang3.StringUtils; |
22 | import org.apache.commons.lang3.time.DateFormatUtils; | ||
23 | import org.apache.commons.lang3.time.DateUtils; | ||
18 | import org.springframework.amqp.rabbit.annotation.*; | 24 | import org.springframework.amqp.rabbit.annotation.*; |
19 | import org.springframework.beans.factory.annotation.Autowired; | 25 | import org.springframework.beans.factory.annotation.Autowired; |
20 | import org.springframework.stereotype.Component; | 26 | import org.springframework.stereotype.Component; |
21 | 27 | ||
22 | import java.util.Objects; | 28 | import java.text.DateFormat; |
29 | import java.text.ParseException; | ||
30 | import java.text.SimpleDateFormat; | ||
31 | import java.time.LocalDateTime; | ||
32 | import java.util.*; | ||
23 | 33 | ||
24 | @Component | 34 | @Component |
25 | @Slf4j | 35 | @Slf4j |
... | @@ -32,6 +42,12 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -32,6 +42,12 @@ public class UcEventBusIptv2ManagementUcEngine { |
32 | @Autowired | 42 | @Autowired |
33 | private MemberService memberService; | 43 | private MemberService memberService; |
34 | 44 | ||
45 | @Autowired | ||
46 | private RedisUtils redisUtils; | ||
47 | |||
48 | |||
49 | private static final Integer PLAY_30 = 30; | ||
50 | |||
35 | /** | 51 | /** |
36 | * 事件 | 52 | * 事件 |
37 | * @param content | 53 | * @param content |
... | @@ -39,22 +55,25 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -39,22 +55,25 @@ public class UcEventBusIptv2ManagementUcEngine { |
39 | * @author Hongyan Wang | 55 | * @author Hongyan Wang |
40 | * @date 2021/9/7 11:26 上午 | 56 | * @date 2021/9/7 11:26 上午 |
41 | */ | 57 | */ |
42 | /*@RabbitHandler | 58 | @RabbitHandler |
43 | @RabbitListener(queues = RabbitMqConfig.UC_EVENTBUS_QUEUE, | 59 | @RabbitListener(queues = RabbitMqConfig.UC_EVENTBUS_QUEUE, |
44 | containerFactory = "managementRabbitListenerContainerFactory")*/ | 60 | containerFactory = "serviceRabbitListenerContainerFactory") |
45 | public void ucEventConsumer(String content) { | 61 | public void ucEventConsumer(String content) throws ParseException { |
46 | log.info(" receive dataSync msg , content is : {} ", content); | 62 | log.info(" receive dataSync msg , content is : {} ", content); |
47 | DataSyncMsg dataSyncMsg = this.parseContent(content); | 63 | DataSyncMsg dataSyncMsg = this.parseContent(content); |
64 | if (Objects.nonNull(dataSyncMsg)) { | ||
48 | this.taskDeal(dataSyncMsg); | 65 | this.taskDeal(dataSyncMsg); |
66 | } | ||
49 | log.info("ucEventConsumer ====>>>> end"); | 67 | log.info("ucEventConsumer ====>>>> end"); |
50 | } | 68 | } |
51 | 69 | ||
70 | |||
52 | /** | 71 | /** |
53 | * 数据解析 | 72 | * 数据解析 |
54 | * @param content | 73 | * @param content |
55 | * @return | 74 | * @return |
56 | */ | 75 | */ |
57 | private DataSyncMsg parseContent(String content) { | 76 | private DataSyncMsg parseContent(String content) throws ParseException { |
58 | 77 | ||
59 | CommonMsg commonMsg = JSONUtil.parseMsg2Object(content, CommonMsg.class); | 78 | CommonMsg commonMsg = JSONUtil.parseMsg2Object(content, CommonMsg.class); |
60 | 79 | ||
... | @@ -67,6 +86,7 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -67,6 +86,7 @@ public class UcEventBusIptv2ManagementUcEngine { |
67 | PlayContent.MsgData msgData = playContent.getMsgData(); | 86 | PlayContent.MsgData msgData = playContent.getMsgData(); |
68 | if (Objects.nonNull(msgData)) { | 87 | if (Objects.nonNull(msgData)) { |
69 | String time = playContent.getTime(); | 88 | String time = playContent.getTime(); |
89 | String formatDate = DateUtil.formatDate(time); | ||
70 | Integer deviceType = playContent.getDeviceType(); | 90 | Integer deviceType = playContent.getDeviceType(); |
71 | String platformAccount = msgData.getPlatformAccount(); | 91 | String platformAccount = msgData.getPlatformAccount(); |
72 | 92 | ||
... | @@ -74,14 +94,95 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -74,14 +94,95 @@ public class UcEventBusIptv2ManagementUcEngine { |
74 | Long mediaId = msgData.getMediaId(); | 94 | Long mediaId = msgData.getMediaId(); |
75 | String mediaName = msgData.getMediaName(); | 95 | String mediaName = msgData.getMediaName(); |
76 | Integer playDuration = msgData.getPlayDuration(); | 96 | Integer playDuration = msgData.getPlayDuration(); |
97 | log.info("playDuration ==>> {}", playDuration); | ||
77 | 98 | ||
78 | DataSyncMsg dataSyncMsg = new DataSyncMsg(); | 99 | DataSyncMsg dataSyncMsg = new DataSyncMsg(); |
79 | dataSyncMsg.setEventType(evt); | 100 | dataSyncMsg.setEventType(evt); |
80 | DataSyncMsg.MsgData msgData1 = new DataSyncMsg.MsgData(); | 101 | DataSyncMsg.MsgData msgData1 = new DataSyncMsg.MsgData(); |
81 | 102 | ||
82 | if (StringUtils.isNotBlank(platformAccount)) { | 103 | if (StringUtils.isNotBlank(platformAccount)) { |
104 | |||
83 | UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount); | 105 | UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount); |
106 | |||
107 | if(Objects.nonNull(userTvDTO)) { | ||
108 | |||
109 | String key = platformAccount+"|"+formatDate; | ||
110 | Map<Object, Object> hmget = | ||
111 | this.redisUtils.hmget(key); | ||
112 | |||
113 | Integer playDurationValueTotal = 0; | ||
114 | int maxSize = 1; | ||
115 | if (MapUtils.isNotEmpty(hmget)) { | ||
116 | Set<Object> objects = hmget.keySet(); | ||
117 | for (Object key_ : objects) { | ||
118 | |||
119 | if (Objects.nonNull(key_)) { | ||
120 | |||
121 | if (key_.toString().equalsIgnoreCase("total")) { | ||
122 | Integer playDurationValueTotal_ = Integer.valueOf(hmget.get(key_).toString()); | ||
123 | if (playDurationValueTotal_ >= 30) { | ||
124 | maxSize = objects.size(); | ||
125 | Integer maxTotal = maxSize+1; | ||
126 | Integer playDurationValue = Integer.valueOf(hmget.get(key_).toString()); | ||
127 | playDurationValueTotal = playDurationValue+playDuration; | ||
128 | Map<String, Object> map = new HashMap<>(); | ||
129 | map.put(String.valueOf(maxTotal), playDuration); | ||
130 | map.put("total", playDurationValueTotal); | ||
131 | this.redisUtils.hmset(key, map, 172800); | ||
132 | return null; | ||
133 | } | ||
134 | } | ||
135 | |||
136 | maxSize = objects.size(); | ||
137 | |||
138 | Integer playDurationValue = Integer.valueOf(hmget.get("total").toString()); | ||
139 | playDurationValueTotal = playDurationValue+playDuration; | ||
140 | |||
141 | Map<String, Object> map = new HashMap<>(); | ||
142 | map.put(String.valueOf(maxSize+1), playDuration); | ||
143 | map.put("total", playDurationValueTotal); | ||
144 | this.redisUtils.hmset(key, map, 172800); | ||
145 | |||
146 | } | ||
147 | |||
148 | } | ||
149 | |||
150 | } else { | ||
151 | playDurationValueTotal = playDuration; | ||
152 | Map<String, Object> map = new HashMap<>(); | ||
153 | map.put("total", playDurationValueTotal); | ||
154 | map.put("1", playDuration); | ||
155 | this.redisUtils.hmset(key, map, 172800); | ||
156 | |||
157 | } | ||
158 | |||
159 | DataSyncMsg dataSyncMsg1 = null; | ||
160 | if (playDurationValueTotal >= PLAY_30) { | ||
161 | log.info("playDurationValueTotal ===>>> {}",playDurationValueTotal); | ||
162 | log.info("===>> start dealTask"); | ||
163 | dataSyncMsg1 = getDataSyncMsg(time, deviceType, mediaCode, mediaId, mediaName, playDuration, | ||
164 | dataSyncMsg, msgData1, userTvDTO); | ||
165 | } | ||
166 | |||
167 | return dataSyncMsg1; | ||
168 | |||
169 | } | ||
170 | |||
171 | } | ||
172 | |||
173 | } | ||
174 | |||
175 | System.out.println(playContent); | ||
176 | break; | ||
177 | |||
178 | } | ||
179 | |||
180 | return null; | ||
181 | } | ||
182 | |||
183 | private DataSyncMsg getDataSyncMsg(String time, Integer deviceType, String mediaCode, Long mediaId, String mediaName, Integer playDuration, DataSyncMsg dataSyncMsg, DataSyncMsg.MsgData msgData1, UserTvDTO userTvDTO) { | ||
84 | String priorityMemberCode = userTvDTO.getPriorityMemberCode(); | 184 | String priorityMemberCode = userTvDTO.getPriorityMemberCode(); |
185 | log.info("priorityMemberCode ==>> {}", priorityMemberCode); | ||
85 | String memberCode = ""; | 186 | String memberCode = ""; |
86 | if (StringUtils.isNotBlank(priorityMemberCode)) { | 187 | if (StringUtils.isNotBlank(priorityMemberCode)) { |
87 | memberCode = priorityMemberCode; | 188 | memberCode = priorityMemberCode; |
... | @@ -89,17 +190,18 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -89,17 +190,18 @@ public class UcEventBusIptv2ManagementUcEngine { |
89 | memberCode = this.memberService.findById(userTvDTO.getMemberId()).getCode(); | 190 | memberCode = this.memberService.findById(userTvDTO.getMemberId()).getCode(); |
90 | } | 191 | } |
91 | 192 | ||
193 | log.info("memberCode ==>> {}", priorityMemberCode); | ||
92 | if (StringUtils.isBlank(memberCode)) | 194 | if (StringUtils.isBlank(memberCode)) |
93 | throw new EntityNotFoundException(MemberDTO.class, "memberCode", "memberCode is null"); | 195 | throw new EntityNotFoundException(MemberDTO.class, "memberCode", "memberCode is null"); |
94 | 196 | ||
95 | msgData1.setMemberCode(memberCode); | 197 | msgData1.setMemberCode(memberCode); |
96 | } | ||
97 | 198 | ||
98 | msgData1.setEvent(8); | 199 | msgData1.setEvent(8); |
99 | msgData1.setDeviceType(deviceType); | 200 | msgData1.setDeviceType(deviceType); |
100 | msgData1.setMediaId(mediaId); | 201 | msgData1.setMediaId(mediaId); |
101 | 202 | ||
102 | JSONObject param = new JSONObject(); | 203 | JSONObject param = new JSONObject(); |
204 | // 增量 | ||
103 | param.put("playDuration", playDuration); | 205 | param.put("playDuration", playDuration); |
104 | msgData1.setParam(JSON.toJSONString(param)); | 206 | msgData1.setParam(JSON.toJSONString(param)); |
105 | JSONObject description = new JSONObject(); | 207 | JSONObject description = new JSONObject(); |
... | @@ -109,19 +211,11 @@ public class UcEventBusIptv2ManagementUcEngine { | ... | @@ -109,19 +211,11 @@ public class UcEventBusIptv2ManagementUcEngine { |
109 | description.put("mediaCode", mediaCode); | 211 | description.put("mediaCode", mediaCode); |
110 | description.put("time", time); | 212 | description.put("time", time); |
111 | msgData1.setDescription(JSON.toJSONString(description)); | 213 | msgData1.setDescription(JSON.toJSONString(description)); |
112 | |||
113 | dataSyncMsg.setMsg(msgData1); | 214 | dataSyncMsg.setMsg(msgData1); |
215 | log.info("dataSyncMsg ==>> {}", dataSyncMsg); | ||
114 | return dataSyncMsg; | 216 | return dataSyncMsg; |
115 | } | 217 | } |
116 | 218 | ||
117 | System.out.println(playContent); | ||
118 | break; | ||
119 | |||
120 | } | ||
121 | |||
122 | return null; | ||
123 | } | ||
124 | |||
125 | /** | 219 | /** |
126 | * 任务处理 | 220 | * 任务处理 |
127 | * @param dataSyncMsg | 221 | * @param dataSyncMsg | ... | ... |
... | @@ -28,11 +28,11 @@ public class UcGatewayIptv2IptvConsumer { | ... | @@ -28,11 +28,11 @@ public class UcGatewayIptv2IptvConsumer { |
28 | * @author Hongyan Wang | 28 | * @author Hongyan Wang |
29 | * @date 2021/9/7 11:26 上午 | 29 | * @date 2021/9/7 11:26 上午 |
30 | */ | 30 | */ |
31 | /*@RabbitHandler | 31 | @RabbitHandler |
32 | @RabbitListener(bindings = { | 32 | @RabbitListener(bindings = { |
33 | @QueueBinding(value = @Queue(value = RabbitMqConfig.GATEWAY_TO_SERVICE_DIRECT), | 33 | @QueueBinding(value = @Queue(value = RabbitMqConfig.GATEWAY_TO_SERVICE_DIRECT), |
34 | exchange = @Exchange(value = ExchangeTypes.DIRECT)) | 34 | exchange = @Exchange(value = ExchangeTypes.DIRECT)) |
35 | }, containerFactory = "managementRabbitListenerContainerFactory")*/ | 35 | }, containerFactory = "serviceRabbitListenerContainerFactory") |
36 | public void ucEventConsumer(String content) { | 36 | public void ucEventConsumer(String content) { |
37 | log.info(" receive dataSync msg , content is : {} ", content); | 37 | log.info(" receive dataSync msg , content is : {} ", content); |
38 | DataSyncMsg dataSyncMsg = this.parseContent(content); | 38 | DataSyncMsg dataSyncMsg = this.parseContent(content); | ... | ... |
... | @@ -74,11 +74,11 @@ public class WeiXinEventConsumer { | ... | @@ -74,11 +74,11 @@ public class WeiXinEventConsumer { |
74 | * } | 74 | * } |
75 | * @param content | 75 | * @param content |
76 | */ | 76 | */ |
77 | @RabbitHandler | 77 | /* @RabbitHandler |
78 | @RabbitListener(bindings = { | 78 | @RabbitListener(bindings = { |
79 | @QueueBinding(value = @Queue(value = RabbitMqConfig.WEIXIN_SUBORUNSUB_QUEUE), | 79 | @QueueBinding(value = @Queue(value = RabbitMqConfig.WEIXIN_SUBORUNSUB_QUEUE), |
80 | exchange = @Exchange(value = ExchangeTypes.DIRECT))}, | 80 | exchange = @Exchange(value = ExchangeTypes.DIRECT))}, |
81 | containerFactory = "managementRabbitListenerContainerFactory") | 81 | containerFactory = "managementRabbitListenerContainerFactory")*/ |
82 | @Transactional | 82 | @Transactional |
83 | public void subOrUnSubEvent(String content) { | 83 | public void subOrUnSubEvent(String content) { |
84 | try { | 84 | try { | ... | ... |
1 | package com.topdraw.util; | 1 | package com.topdraw.util; |
2 | 2 | ||
3 | import java.text.ParseException; | ||
4 | import java.text.SimpleDateFormat; | ||
3 | import java.util.Date; | 5 | import java.util.Date; |
4 | 6 | ||
5 | public class DateUtil { | 7 | public class DateUtil { |
... | @@ -12,5 +14,17 @@ public class DateUtil { | ... | @@ -12,5 +14,17 @@ public class DateUtil { |
12 | return System.currentTimeMillis(); | 14 | return System.currentTimeMillis(); |
13 | } | 15 | } |
14 | 16 | ||
17 | public static String formatDate(String time){ | ||
18 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); | ||
19 | try { | ||
20 | //使用SimpleDateFormat的parse()方法生成Date | ||
21 | Date date = sf.parse(time); | ||
22 | String format = sf.format(date); | ||
23 | return format; | ||
24 | } catch (ParseException e) { | ||
25 | e.printStackTrace(); | ||
26 | } | ||
15 | 27 | ||
28 | return null; | ||
29 | } | ||
16 | } | 30 | } | ... | ... |
-
Please register or sign in to post a comment