diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/UserTokenInfoManageImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/UserTokenInfoManageImpl.java index 5c513fc..bbfc9e5 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/UserTokenInfoManageImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/UserTokenInfoManageImpl.java @@ -35,6 +35,7 @@ public class UserTokenInfoManageImpl extends ServiceImpl lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(UserTokenInfoDO::getStatus, 1); lambdaQueryWrapper.eq(UserTokenInfoDO::getIsOrder, 1); + lambdaQueryWrapper.eq(UserTokenInfoDO::getIsRestriction, 0); return baseMapper.selectList(lambdaQueryWrapper); } } diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java index e8e24fb..3cae66f 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java @@ -106,33 +106,41 @@ public class UserTokenInfoServiceImpl implements IUserTokenInfoService { return flag; } - private boolean queryMemberCardInfo(UserTokenInfoDO userTokenInfoDO) { + /** + * 查询用户信息 + * + * @param userTokenInfoDO 用户 + * + * @return + */ + private void queryMemberCardInfo(UserTokenInfoDO userTokenInfoDO) { JntyzxResponse response = jntyzxHttpService.queryByOpenId(userTokenInfoDO.getToken(), userTokenInfoDO.getOpenId()); if (Objects.isNull(response)) { - return false; + return; } if (response.getSuccess()) { UserInfoResponse userInfoResponse = response.getResult(); userTokenInfoDO.setMemberCardNo(userInfoResponse.getConsCard()); if (StringUtils.isNotBlank(userInfoResponse.getRestrictionDeadline())) { userTokenInfoDO.setIsRestriction(1); + userTokenInfoDO.setIsOrder(0); UserRestrictionInfo userRestrictionInfo = userRestrictionManage.queryByUserId(userTokenInfoDO.getId()); if (Objects.isNull(userRestrictionInfo)) { userRestrictionInfo = new UserRestrictionInfo(); userRestrictionInfo.setUserId(userTokenInfoDO.getId()); userRestrictionInfo.setRestrictionDeadline(DateUtils.getDateTimeFromStr(userInfoResponse.getRestrictionDeadline())); userRestrictionInfo.setRestrictionDesc(userInfoResponse.getRestrictionDescription()); - userTokenInfoManage.save(userTokenInfoDO); + userRestrictionManage.save(userRestrictionInfo); } else { userRestrictionInfo.setRestrictionDeadline(DateUtils.getDateTimeFromStr(userInfoResponse.getRestrictionDeadline())); userRestrictionInfo.setRestrictionDesc(userInfoResponse.getRestrictionDescription()); - userTokenInfoManage.updateById(userTokenInfoDO); + userRestrictionManage.updateById(userRestrictionInfo); } } else { userTokenInfoDO.setIsRestriction(0); + userTokenInfoDO.setIsOrder(1); } - return userTokenInfoManage.updateById(userTokenInfoDO); + userTokenInfoManage.updateById(userTokenInfoDO); } - return false; } } diff --git a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtCheckUserOrderTask.java b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtCheckUserOrderTask.java deleted file mode 100644 index 584a196..0000000 --- a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtCheckUserOrderTask.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.xiang.app.schedule.jntyzx; - -import com.xiang.app.modules.jntyzx.entity.pojo.UserTokenInfoDO; -import com.xiang.app.modules.jntyzx.service.IUserTokenInfoService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * 校验是否可以下单定时任务 - */ -@Component -@Slf4j -@RequiredArgsConstructor -public class JtCheckUserOrderTask { - - private final IUserTokenInfoService userTokenInfoService; - - - public void handle() { - List users = userTokenInfoService.getAvailableUser(); - if (CollectionUtils.isEmpty(users)) { - return; - } - users.forEach(item -> { - - }); - } -} diff --git a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java index 19bdc43..de3f70a 100644 --- a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java +++ b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java @@ -1,5 +1,6 @@ package com.xiang.app.schedule.jntyzx; +import com.google.common.collect.Maps; import com.xiang.app.common.service.dingtalk.JtDingTalkFactory; import com.xiang.app.modules.jntyzx.entity.pojo.UserTokenInfoDO; import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList; @@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -88,6 +90,12 @@ public class JtVenuePullTask { .filter(item -> !item.getPlaceName().contains("小馆")) .toList(); } - return sitePositionLists; + Map mapByName = Maps.newLinkedHashMap(); + for (SitePositionList sitePositionList : sitePositionLists) { + if (!mapByName.containsKey(sitePositionList.getPlaceName())) { + mapByName.put(sitePositionList.getPlaceName(), sitePositionList); + } + } + return mapByName.values().stream().toList(); } } diff --git a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueSubscribeTask.java b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueSubscribeTask.java index e35f3af..78723bf 100644 --- a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueSubscribeTask.java +++ b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueSubscribeTask.java @@ -1,5 +1,6 @@ package com.xiang.app.schedule.jntyzx; +import com.xiang.app.common.service.dingtalk.JtDingTalkFactory; import com.xiang.app.modules.jntyzx.entity.pojo.UserTokenInfoDO; import com.xiang.app.modules.jntyzx.entity.pojo.VenueInfoDO; import com.xiang.app.modules.jntyzx.service.IJtOrderService; @@ -9,6 +10,8 @@ import com.xiang.app.modules.jntyzx.utils.VenueInfoUtils; import com.xiang.core.quartz.annotation.XxzJob; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -26,6 +29,7 @@ public class JtVenueSubscribeTask { private final IUserTokenInfoService userTokenInfoService; private final IJtOrderService jtOrderService; private final IVenueService venueService; + private final JtDingTalkFactory jtDingTalkFactory; @XxzJob(name = "jtVenueSubscribeTask") @GetMapping("/jtVenueSubscribeTask") @@ -33,10 +37,17 @@ public class JtVenueSubscribeTask { log.info("【Subscribe】 江体场地预定定时任务启动!!! time:{}", System.currentTimeMillis()); List users = userTokenInfoService.getCanOrderUser(); + if (CollectionUtils.isEmpty(users)) { + log.info("暂无可下单用户, time:{}", System.currentTimeMillis()); + jtDingTalkFactory.sendMsg("暂无可下单用户, time:" + System.currentTimeMillis()); + return; + } List venueInfoDOS = venueService.queryTomorrowCanBuyVenue(); - Map> venueInfoMap = venueInfoDOS.stream().filter(VenueInfoUtils::get8210VenueInfo).collect(Collectors.groupingByConcurrent(VenueInfoDO::getPlaceName)); - + if (MapUtils.isEmpty(venueInfoMap)) { + log.info("暂无可下单场地,time:{}", System.currentTimeMillis()); + return; + } venueInfoMap.keySet().parallelStream().forEach(placeName -> { List venueInfoDOList = venueInfoMap.get(placeName); users.forEach(user -> { diff --git a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java index 0de9b36..275caf7 100644 --- a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java +++ b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java @@ -4,6 +4,7 @@ package com.xiang.app.schedule.jntyzx; import com.google.common.collect.Maps; import com.xiang.app.common.service.dingtalk.JtDingTalkFactory; import com.xiang.app.modules.jntyzx.entity.pojo.UserTokenInfoDO; +import com.xiang.app.modules.jntyzx.entity.resp.JntyzxResponse; import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList; import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService; import com.xiang.app.modules.jntyzx.service.IUserTokenInfoService; @@ -44,37 +45,44 @@ public class JtVenueTomorrowPullTask { log.info("当前无可用用户查询场地信息!"); return; } - String token; - for (UserTokenInfoDO userTokenInfoDO : availableUser) { - if (Objects.isNull(userTokenInfoDO)) { - continue; - } - token = userTokenInfoDO.getToken(); - if (StringUtils.isBlank(token)) { - continue; - } - List sitePositionLists = jntyzxHttpService.queryAvailableTomorrow(WeekendUtils.isWeekend(), token); - if (CollectionUtils.isEmpty(sitePositionLists)) { - continue; - } - venueService.saveTomorrowVenueInfo(sitePositionLists); - - sitePositionLists = sitePositionLists.stream().filter(VenueInfoUtils::get8210VenueInfo).toList(); - if (CollectionUtils.isEmpty(sitePositionLists)) { - return; - } - Map map = Maps.newLinkedHashMap(); - for (SitePositionList sitePositionList : sitePositionLists) { - if (map.containsKey(sitePositionList.getPlaceName())) { - continue; + // 用户信息 + StringBuffer userMsg = new StringBuffer(); + availableUser.forEach(item -> { + JntyzxResponse jntyzxResponse = jntyzxHttpService.checkDefaultNums(item.getToken(), item.getMemberCardNo()); + if (Objects.nonNull(jntyzxResponse)) { + if (jntyzxResponse.getSuccess()) { + userMsg.append("订购人:").append(item.getName()).append("正常下单\n"); + } else { + userMsg.append("订购人:").append(item.getName()).append(jntyzxResponse.getMessage()).append("\n"); } - map.put(sitePositionList.getPlaceName(), sitePositionList); } - StringBuffer msg = new StringBuffer("查询江体场地信息===>时间:\n" + DateUtils.getDateFromDate(LocalDate.now().plusDays(1)) + " 20:00-22:00\n"); - map.forEach((placeName, sitePositionList) -> { - msg.append(placeName).append("订购人:").append(sitePositionList.getContacts()).append("\n"); - }); - jtDingTalkFactory.sendMsg(msg.toString()); + }); + jtDingTalkFactory.sendMsg(userMsg.toString()); + + // 场地信息 + UserTokenInfoDO userTokenInfoDO = availableUser.get(0); + String token = userTokenInfoDO.getToken(); + List sitePositionLists = jntyzxHttpService.queryAvailableTomorrow(WeekendUtils.isWeekend(), token); + if (CollectionUtils.isEmpty(sitePositionLists)) { + return; } + venueService.saveTomorrowVenueInfo(sitePositionLists); + sitePositionLists = sitePositionLists.stream().filter(VenueInfoUtils::get8210VenueInfo).toList(); + if (CollectionUtils.isEmpty(sitePositionLists)) { + return; + } + Map map = Maps.newLinkedHashMap(); + for (SitePositionList sitePositionList : sitePositionLists) { + if (map.containsKey(sitePositionList.getPlaceName())) { + continue; + } + map.put(sitePositionList.getPlaceName(), sitePositionList); + } + StringBuffer msg = new StringBuffer("查询江体场地信息===>时间:\n" + DateUtils.getDateFromDate(LocalDate.now().plusDays(1)) + " 20:00-22:00\n"); + map.forEach((placeName, sitePositionList) -> { + msg.append(placeName).append("订购人:").append(sitePositionList.getContacts()).append("\n"); + }); + jtDingTalkFactory.sendMsg(msg.toString()); } + }