From da2bebc80dd2c767d03595219de260d8db208206 Mon Sep 17 00:00:00 2001 From: xiang Date: Sat, 26 Jul 2025 23:33:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=9D=E5=AD=98=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 57 +-------------- .../xservice/fwd/constants/UrlConstants.java | 5 ++ .../fwd/entity/pojo/FAudienceConfig.java | 19 +++++ .../fwd/entity/pojo/FPerformConfig.java | 17 +++++ .../xservice/fwd/entity/pojo/FUserConfig.java | 15 ++++ .../http/audience/AudienceMemberInfo.java | 18 +++++ .../fwd/mapper/FwdAudienceConfigMapper.java | 17 +++++ .../fwd/mapper/FwdPerformConfigMapper.java | 18 +++++ .../fwd/mapper/FwdUserConfigMapper.java | 18 +++++ .../fwd/schedule/FwdImportantMsgJob.java | 20 ++++++ .../fwd/schedule/PullDataFromFWDJob.java | 33 +++++++++ .../fwd/service/IPerformServiceHttp.java | 8 +++ .../impl/PerformServiceHttpServiceImpl.java | 21 ++++++ .../fwd/service/impl/PerformServiceImpl.java | 70 ++++++++++++------- .../mapper/fwd/FwdAudienceConfigMapper.xml | 56 +++++++++++++++ .../mapper/fwd/FwdPerformConfigMapper.xml | 33 +++++++++ .../fwd/FwdPerformProjectSeatInfoMapper.xml | 2 +- .../mapper/fwd/FwdUserConfigMapper.xml | 22 ++++++ 18 files changed, 366 insertions(+), 83 deletions(-) create mode 100644 script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FAudienceConfig.java create mode 100644 script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FPerformConfig.java create mode 100644 script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FUserConfig.java create mode 100644 script/src/main/java/com/xiang/xservice/fwd/entity/resp/http/audience/AudienceMemberInfo.java create mode 100644 script/src/main/java/com/xiang/xservice/fwd/mapper/FwdAudienceConfigMapper.java create mode 100644 script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformConfigMapper.java create mode 100644 script/src/main/java/com/xiang/xservice/fwd/mapper/FwdUserConfigMapper.java create mode 100644 script/src/main/resources/mapper/fwd/FwdAudienceConfigMapper.xml create mode 100644 script/src/main/resources/mapper/fwd/FwdPerformConfigMapper.xml create mode 100644 script/src/main/resources/mapper/fwd/FwdUserConfigMapper.xml diff --git a/pom.xml b/pom.xml index 37732db..7dfe569 100644 --- a/pom.xml +++ b/pom.xml @@ -30,68 +30,13 @@ com.xiang xservice-common - 1.0-snapshot + 1.0.1-snapshot com.xiang xservice-third-part 1.0-snapshot - diff --git a/script/src/main/java/com/xiang/xservice/fwd/constants/UrlConstants.java b/script/src/main/java/com/xiang/xservice/fwd/constants/UrlConstants.java index 8a91e17..c3af89a 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/constants/UrlConstants.java +++ b/script/src/main/java/com/xiang/xservice/fwd/constants/UrlConstants.java @@ -32,4 +32,9 @@ public class UrlConstants { * 获取演出座位信息 */ public final static String PROJECT_SEAT_STATUS_URL = BASE_URL + "/performance/app/project/seatPlanStatus"; + + /** + * 查询观影人列表 + */ + public final static String PROJECT_AUDIENCE_MEMBER_INFO = BASE_URL + "/member/member/bearer/app/list"; } diff --git a/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FAudienceConfig.java b/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FAudienceConfig.java new file mode 100644 index 0000000..164e480 --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FAudienceConfig.java @@ -0,0 +1,19 @@ +package com.xiang.xservice.fwd.entity.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FAudienceConfig { + private Long id; + private Integer status; + private Long frequentId; + private String frequentName; + private String frequentNo; + private String frequentPhone; + private Integer delFlag; + private Long userId; +} diff --git a/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FPerformConfig.java b/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FPerformConfig.java new file mode 100644 index 0000000..ebfe9e5 --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FPerformConfig.java @@ -0,0 +1,17 @@ +package com.xiang.xservice.fwd.entity.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FPerformConfig { + private Long id; + private Long projectId; + private LocalDateTime time; + private Integer delFlag; +} diff --git a/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FUserConfig.java b/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FUserConfig.java new file mode 100644 index 0000000..d3d2d8c --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/entity/pojo/FUserConfig.java @@ -0,0 +1,15 @@ +package com.xiang.xservice.fwd.entity.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FUserConfig { + private Long id; + private String name; + private String token; + private Integer status; +} diff --git a/script/src/main/java/com/xiang/xservice/fwd/entity/resp/http/audience/AudienceMemberInfo.java b/script/src/main/java/com/xiang/xservice/fwd/entity/resp/http/audience/AudienceMemberInfo.java new file mode 100644 index 0000000..071f427 --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/entity/resp/http/audience/AudienceMemberInfo.java @@ -0,0 +1,18 @@ +package com.xiang.xservice.fwd.entity.resp.http.audience; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AudienceMemberInfo { + private Long frequentContactsId; + private String name; + private String idTypeCode; + private String idType; + private String idTypeDesc; + private String idCard; + private String phone; +} diff --git a/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdAudienceConfigMapper.java b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdAudienceConfigMapper.java new file mode 100644 index 0000000..fc150da --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdAudienceConfigMapper.java @@ -0,0 +1,17 @@ +package com.xiang.xservice.fwd.mapper; + +import com.xiang.xservice.fwd.entity.pojo.FAudienceConfig; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Mapper +@Repository +public interface FwdAudienceConfigMapper { + + List getAudienceByUserId(Long userId); + + int batchSave(List list); + int delByUserId(Long userId); +} diff --git a/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformConfigMapper.java b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformConfigMapper.java new file mode 100644 index 0000000..4c1eed3 --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformConfigMapper.java @@ -0,0 +1,18 @@ +package com.xiang.xservice.fwd.mapper; + +import com.xiang.xservice.fwd.entity.pojo.FPerformConfig; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@Mapper +public interface FwdPerformConfigMapper { + + List getAvailablePerform(); + + int delPerforms(); + + int insertPerforms(List list); +} diff --git a/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdUserConfigMapper.java b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdUserConfigMapper.java new file mode 100644 index 0000000..85dd40a --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdUserConfigMapper.java @@ -0,0 +1,18 @@ +package com.xiang.xservice.fwd.mapper; + +import com.xiang.xservice.fwd.entity.pojo.FUserConfig; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@Mapper +public interface FwdUserConfigMapper { + + /** + * 查询可用配置用户 + * @return + */ + List getAvailableUser(); +} diff --git a/script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java b/script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java index 9f53dd9..8430302 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java +++ b/script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java @@ -1,9 +1,12 @@ package com.xiang.xservice.fwd.schedule; import com.alibaba.fastjson2.JSONObject; +import com.google.common.collect.Lists; import com.xiang.xservice.basic.utils.DateUtils; import com.xiang.xservice.basic.xservice.dingTalk.service.DingTalkService; +import com.xiang.xservice.fwd.entity.pojo.FPerformConfig; import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo; +import com.xiang.xservice.fwd.mapper.FwdPerformConfigMapper; import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper; import com.xiang.xservice.fwd.service.IPerformService; import lombok.RequiredArgsConstructor; @@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController; import java.time.LocalDate; import java.util.List; +import java.util.stream.Collectors; /** * @Author: xiang @@ -29,6 +33,7 @@ import java.util.List; public class FwdImportantMsgJob { private final FwdPerformProjectInfoMapper performProjectInfoMapper; + private final FwdPerformConfigMapper performConfigMapper; private final IPerformService performService; private final DingTalkService dingTalkService; @@ -40,6 +45,9 @@ public class FwdImportantMsgJob { public void preSaleReminderJob() throws Exception { log.info("【芬玩岛】演唱会预售定时任务开始!time:{}", System.currentTimeMillis()); + // 删除配置表里面今日配置的项目信息 + performConfigMapper.delPerforms(); + // 查询所有即将今天预售的演唱会信息 LocalDate now = LocalDate.now(); List saleTodayData = performProjectInfoMapper.getPreSaleTodayData(now.atTime(0, 0, 0), now.atTime(23, 59, 59)); @@ -48,6 +56,17 @@ public class FwdImportantMsgJob { return; } log.info("【芬玩岛】 即将:{}预售的演唱会门票信息:{}", now, JSONObject.toJSONString(saleTodayData)); + List addList = saleTodayData.stream().map(data -> { + FPerformConfig performConfig = new FPerformConfig(); + performConfig.setTime(data.getPreSaleTime()); + performConfig.setProjectId(data.getProjectId()); + performConfig.setDelFlag(0); + return performConfig; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(addList)) { + performConfigMapper.insertPerforms(addList); + } + StringBuilder msg = new StringBuilder("今日" + now + "演唱会门票预售信息:\n"); for (FPerformProjectInfo data : saleTodayData) { msg.append("演唱会名称:").append(data.getProjectName()).append("预售时间:").append(DateUtils.getDateTimeStr(data.getPreSaleTime())).append("\n"); @@ -58,6 +77,7 @@ public class FwdImportantMsgJob { } @Scheduled(cron = "0 0 12 * * ? ") + @PostMapping("/orderCreateJob") public void orderCreateJob() throws Exception { for (int i = 0; i < 3; i++) { performService.createProjectOrder(1295746988L); diff --git a/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java b/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java index 1d1bfcd..19c2e7f 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java +++ b/script/src/main/java/com/xiang/xservice/fwd/schedule/PullDataFromFWDJob.java @@ -5,8 +5,11 @@ import com.google.common.collect.Maps; import com.xiang.xservice.basic.common.req.BaseRequest; import com.xiang.xservice.basic.config.MyThreadFactory; import com.xiang.xservice.basic.utils.DateUtils; +import com.xiang.xservice.fwd.entity.pojo.FAudienceConfig; import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo; import com.xiang.xservice.fwd.entity.pojo.FPerformSeatInfo; +import com.xiang.xservice.fwd.entity.pojo.FUserConfig; +import com.xiang.xservice.fwd.entity.resp.http.audience.AudienceMemberInfo; import com.xiang.xservice.fwd.entity.resp.http.perform.Perform; import com.xiang.xservice.fwd.entity.resp.http.perform.PerformDetail; import com.xiang.xservice.fwd.entity.resp.http.perform.PerformInfo; @@ -15,8 +18,10 @@ import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectList; import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectsResp; import com.xiang.xservice.fwd.entity.resp.http.perform.SeatPlan; import com.xiang.xservice.fwd.entity.resp.http.perform.SeatPlanStatus; +import com.xiang.xservice.fwd.mapper.FwdAudienceConfigMapper; import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper; import com.xiang.xservice.fwd.mapper.FwdPerformSeatInfoMapper; +import com.xiang.xservice.fwd.mapper.FwdUserConfigMapper; import com.xiang.xservice.fwd.service.IPerformServiceHttp; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -53,6 +58,8 @@ public class PullDataFromFWDJob { private final IPerformServiceHttp performServiceHttp; private final FwdPerformProjectInfoMapper performProjectInfoMapper; private final FwdPerformSeatInfoMapper performSeatInfoMapper; + private final FwdUserConfigMapper userConfigMapper; + private final FwdAudienceConfigMapper audienceConfigMapper; private final ExecutorService es = new ThreadPoolExecutor( @@ -268,6 +275,32 @@ public class PullDataFromFWDJob { } } + @Scheduled(cron = "0 0 0 1 1/1 ? ") + public void pullAudienceMemberInfo() { + List availableUser = userConfigMapper.getAvailableUser(); + if (CollectionUtils.isEmpty(availableUser)) { + return; + } + availableUser.forEach(user -> { + List audienceMemberInfo = performServiceHttp.getAudienceMemberInfo(user.getToken()); + if (CollectionUtils.isNotEmpty(audienceMemberInfo)) { + List list = audienceMemberInfo.stream().map(audience -> { + FAudienceConfig info = new FAudienceConfig(); + info.setDelFlag(0); + info.setFrequentId(audience.getFrequentContactsId()); + info.setFrequentNo(audience.getIdCard()); + info.setFrequentName(audience.getName()); + info.setStatus(1); + info.setFrequentPhone(audience.getPhone()); + info.setUserId(user.getId()); + return info; + }).collect(Collectors.toList()); + audienceConfigMapper.delByUserId(user.getId()); + audienceConfigMapper.batchSave(list); + } + }); + } + private Map getSeatMap(List seatPlanIds) { List statusFromHttp = performServiceHttp.getSeatPlanStatusFromHttp(seatPlanIds); if (CollectionUtils.isEmpty(statusFromHttp)) { diff --git a/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java b/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java index fb6e00f..bcd389d 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java +++ b/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java @@ -2,6 +2,7 @@ package com.xiang.xservice.fwd.service; import com.xiang.xservice.basic.common.req.BaseRequest; import com.xiang.xservice.fwd.entity.req.ProjectOrderCreateReq; +import com.xiang.xservice.fwd.entity.resp.http.audience.AudienceMemberInfo; import com.xiang.xservice.fwd.entity.resp.http.perform.Perform; import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectInfoResp; import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectOrderCreateResp; @@ -46,5 +47,12 @@ public interface IPerformServiceHttp { */ List getSeatPlanStatusFromHttp(List seatPlanIds); + /** + * http请求查询观影人信息 + * @param token + * @return + */ + List getAudienceMemberInfo(String token); + } diff --git a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java index 5db16c2..8e83af8 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java +++ b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java @@ -10,6 +10,7 @@ import com.xiang.xservice.basic.utils.JsonUtils; import com.xiang.xservice.fwd.constants.CodeConstants; import com.xiang.xservice.fwd.constants.UrlConstants; import com.xiang.xservice.fwd.entity.req.ProjectOrderCreateReq; +import com.xiang.xservice.fwd.entity.resp.http.audience.AudienceMemberInfo; import com.xiang.xservice.fwd.entity.resp.http.perform.Perform; import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectInfoResp; import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectOrderCreateResp; @@ -149,6 +150,26 @@ public class PerformServiceHttpServiceImpl implements IPerformServiceHttp { return Lists.newArrayList(); } + @Override + public List getAudienceMemberInfo(String token) { + Map params = Maps.newHashMap(); + String respStr = HttpUtils.doGet(UrlConstants.PROJECT_AUDIENCE_MEMBER_INFO, buildFWDHeaders(token), params); + if (StringUtils.isBlank(respStr)) { + return Lists.newArrayList(); + } + log.info("【Http请求】 根据token:{}http请求查询观影人信息结果:{}", token, respStr); + JSONObject resp = JSON.parseObject(respStr); + Integer code = (Integer) resp.get("code"); + if (Objects.nonNull(code) && Objects.equals(code, CodeConstants.SUCCESS)) { + List data = JSON.parseArray(resp.get("data").toString(), AudienceMemberInfo.class); + if (CollectionUtils.isEmpty(data)) { + return Lists.newArrayList(); + } + return data; + } + return Lists.newArrayList(); + } + private Map buildFWDHeaders(String token) { Map headers = Maps.newHashMap(); headers.put("content-type", "application/json"); diff --git a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java index 6ddf423..c5ec2ec 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java +++ b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java @@ -2,12 +2,16 @@ package com.xiang.xservice.fwd.service.impl; import com.alibaba.fastjson2.JSONObject; import com.xiang.xservice.basic.xservice.dingTalk.service.DingTalkService; +import com.xiang.xservice.fwd.entity.pojo.FAudienceConfig; import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo; import com.xiang.xservice.fwd.entity.pojo.FPerformSeatInfo; +import com.xiang.xservice.fwd.entity.pojo.FUserConfig; import com.xiang.xservice.fwd.entity.req.ProjectOrderCreateReq; import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectOrderCreateResp; +import com.xiang.xservice.fwd.mapper.FwdAudienceConfigMapper; import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper; import com.xiang.xservice.fwd.mapper.FwdPerformSeatInfoMapper; +import com.xiang.xservice.fwd.mapper.FwdUserConfigMapper; import com.xiang.xservice.fwd.service.IPerformService; import com.xiang.xservice.fwd.service.IPerformServiceHttp; import lombok.RequiredArgsConstructor; @@ -21,6 +25,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @Author: xiang @@ -35,9 +40,11 @@ public class PerformServiceImpl implements IPerformService { private final FwdPerformProjectInfoMapper fwdPerformProjectInfoMapper; private final IPerformServiceHttp performServiceHttp; private final DingTalkService dingTalkService; + private final FwdUserConfigMapper userConfigMapper; + private final FwdAudienceConfigMapper audienceConfigMapper; @Value("${DingTalk.chatId}") private String chatId; - private static final List FREQUENT_IDS = List.of(50438548L, 35320661L, 50436621L, 50442739L); + @Override public FPerformProjectInfo getPerformByProjectId(Long projectId) { return fwdPerformProjectInfoMapper.getProjectByProjectId(projectId); @@ -60,31 +67,42 @@ public class PerformServiceImpl implements IPerformService { log.info("该projectId:{}暂无座位信息", projectId); return Boolean.FALSE; } - for (FPerformSeatInfo fPerformSeatInfo : seatInfoByProjectId) { - if (1 == fPerformSeatInfo.getSoldOut()) { - continue; - } - ProjectOrderCreateReq projectOrderCreateReq = new ProjectOrderCreateReq(); - projectOrderCreateReq.setDeliveryType(1); - projectOrderCreateReq.setContactName("朱吉祥"); - projectOrderCreateReq.setContactPhone("15858717571"); - projectOrderCreateReq.setPayment(fPerformSeatInfo.getPrice().multiply(BigDecimal.valueOf(FREQUENT_IDS.size())).setScale(2)); - projectOrderCreateReq.setTotalPrice(fPerformSeatInfo.getPrice().multiply(BigDecimal.valueOf(FREQUENT_IDS.size())).setScale(2, BigDecimal.ROUND_HALF_UP)); - projectOrderCreateReq.setPerformId(fPerformSeatInfo.getPerformId()); - projectOrderCreateReq.setProjectId(projectId.toString()); - projectOrderCreateReq.setPrivilegeCodeList(new ArrayList<>()); - projectOrderCreateReq.setAudienceCount(FREQUENT_IDS.size()); - projectOrderCreateReq.setFrequentIds(FREQUENT_IDS); - projectOrderCreateReq.setSeatPlanIds(Collections.singletonList(fPerformSeatInfo.getSeatPlanId())); - projectOrderCreateReq.setBlackBox("0"); - projectOrderCreateReq.setCombineTicketVos(null); - projectOrderCreateReq.setOrdinaryTicketVos(null); - ProjectOrderCreateResp projectOrder = performServiceHttp.createProjectOrder(projectOrderCreateReq); - if (Objects.nonNull(projectOrder)) { - log.info("下单成功,订单信息:{}", JSONObject.toJSONString(projectOrder)); - String msg = "【芬玩岛】下单成功✅✅✅,演出名称:" + performByProjectId.getProjectName() + ",请在2分钟内完成付款!"; - dingTalkService.sendChatMessage(chatId, msg); - return Boolean.TRUE; + List availableUser = userConfigMapper.getAvailableUser(); + if (CollectionUtils.isEmpty(availableUser)) { + return Boolean.FALSE; + } + for (FUserConfig userConfig : availableUser) { + List audiences = audienceConfigMapper.getAudienceByUserId(userConfig.getId()); + if (CollectionUtils.isNotEmpty(audiences)) { + List frequentIds = audiences.stream().map(FAudienceConfig::getFrequentId).collect(Collectors.toList()); + for (FPerformSeatInfo fPerformSeatInfo : seatInfoByProjectId) { + if (1 == fPerformSeatInfo.getSoldOut()) { + continue; + } + ProjectOrderCreateReq projectOrderCreateReq = new ProjectOrderCreateReq(); + projectOrderCreateReq.setDeliveryType(1); + projectOrderCreateReq.setContactName("朱吉祥"); + projectOrderCreateReq.setContactPhone("15858717571"); + projectOrderCreateReq.setPayment(fPerformSeatInfo.getPrice().multiply(BigDecimal.valueOf(frequentIds.size())).setScale(2)); + projectOrderCreateReq.setTotalPrice(fPerformSeatInfo.getPrice().multiply(BigDecimal.valueOf(frequentIds.size())).setScale(2, BigDecimal.ROUND_HALF_UP)); + projectOrderCreateReq.setPerformId(fPerformSeatInfo.getPerformId()); + projectOrderCreateReq.setProjectId(projectId.toString()); + projectOrderCreateReq.setPrivilegeCodeList(new ArrayList<>()); + projectOrderCreateReq.setAudienceCount(frequentIds.size()); + projectOrderCreateReq.setFrequentIds(frequentIds); + projectOrderCreateReq.setSeatPlanIds(Collections.singletonList(fPerformSeatInfo.getSeatPlanId())); + projectOrderCreateReq.setBlackBox("0"); + projectOrderCreateReq.setCombineTicketVos(null); + projectOrderCreateReq.setOrdinaryTicketVos(null); + ProjectOrderCreateResp projectOrder = performServiceHttp.createProjectOrder(projectOrderCreateReq); + if (Objects.nonNull(projectOrder)) { + log.info("下单成功,订单信息:{}", JSONObject.toJSONString(projectOrder)); + String msg = "【芬玩岛】下单成功✅✅✅,演出名称:" + performByProjectId.getProjectName() + ",请在2分钟内完成付款!"; + dingTalkService.sendChatMessage(chatId, msg); + return Boolean.TRUE; + } + } + } } return Boolean.FALSE; diff --git a/script/src/main/resources/mapper/fwd/FwdAudienceConfigMapper.xml b/script/src/main/resources/mapper/fwd/FwdAudienceConfigMapper.xml new file mode 100644 index 0000000..3215229 --- /dev/null +++ b/script/src/main/resources/mapper/fwd/FwdAudienceConfigMapper.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + id, frequent_id, frequent_name, status,frequent_no,frequent_phone,del_flag,user_id + + + + delete + from fwd_audience_config + where user_id = #{user_id} + + + + INSERT INTO fwd_audience_config ( + status, + frequent_id, + frequent_name, + frequent_no, + frequent_phone, + del_flag, + user_id + ) + VALUES + + ( + #{item.status}, + #{item.frequentId}, + #{item.frequentName}, + #{item.frequentNo}, + #{item.frequentPhone}, + #{item.delFlag}, + #{item.userId} + ) + + + + + \ No newline at end of file diff --git a/script/src/main/resources/mapper/fwd/FwdPerformConfigMapper.xml b/script/src/main/resources/mapper/fwd/FwdPerformConfigMapper.xml new file mode 100644 index 0000000..c052857 --- /dev/null +++ b/script/src/main/resources/mapper/fwd/FwdPerformConfigMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + id, project_id, time, del_flag + + + + update fwd_perform_config set del_flag = 1 where 1=1 + + + + insert into fwd_perform_config(project_id, time, del_flag) + values + + (#{item.projectId}, #{item.time}, #{item.delFlag}) + + + + + \ No newline at end of file diff --git a/script/src/main/resources/mapper/fwd/FwdPerformProjectSeatInfoMapper.xml b/script/src/main/resources/mapper/fwd/FwdPerformProjectSeatInfoMapper.xml index 3015f1d..caf672f 100644 --- a/script/src/main/resources/mapper/fwd/FwdPerformProjectSeatInfoMapper.xml +++ b/script/src/main/resources/mapper/fwd/FwdPerformProjectSeatInfoMapper.xml @@ -281,7 +281,7 @@ \ No newline at end of file diff --git a/script/src/main/resources/mapper/fwd/FwdUserConfigMapper.xml b/script/src/main/resources/mapper/fwd/FwdUserConfigMapper.xml new file mode 100644 index 0000000..055cca7 --- /dev/null +++ b/script/src/main/resources/mapper/fwd/FwdUserConfigMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + id, name, token, status + + + + + \ No newline at end of file