feat:保存配置信息
This commit is contained in:
57
pom.xml
57
pom.xml
@@ -30,68 +30,13 @@
|
||||
<dependency>
|
||||
<groupId>com.xiang</groupId>
|
||||
<artifactId>xservice-common</artifactId>
|
||||
<version>1.0-snapshot</version>
|
||||
<version>1.0.1-snapshot</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.xiang</groupId>
|
||||
<artifactId>xservice-third-part</artifactId>
|
||||
<version>1.0-snapshot</version>
|
||||
</dependency>
|
||||
<!--<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
<version>${spring.boot.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<version>${spring.boot.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.32</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
<version>2.0.51</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.13</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.33</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mybatis.spring.boot</groupId>
|
||||
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||
<version>2.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>32.0.1-android</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-collections4</artifactId>
|
||||
<version>4.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.15.0</version>
|
||||
</dependency>-->
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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<FAudienceConfig> getAudienceByUserId(Long userId);
|
||||
|
||||
int batchSave(List<FAudienceConfig> list);
|
||||
int delByUserId(Long userId);
|
||||
}
|
||||
@@ -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<FPerformConfig> getAvailablePerform();
|
||||
|
||||
int delPerforms();
|
||||
|
||||
int insertPerforms(List<FPerformConfig> list);
|
||||
}
|
||||
@@ -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<FUserConfig> getAvailableUser();
|
||||
}
|
||||
@@ -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<FPerformProjectInfo> 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<FPerformConfig> 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);
|
||||
|
||||
@@ -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<FUserConfig> availableUser = userConfigMapper.getAvailableUser();
|
||||
if (CollectionUtils.isEmpty(availableUser)) {
|
||||
return;
|
||||
}
|
||||
availableUser.forEach(user -> {
|
||||
List<AudienceMemberInfo> audienceMemberInfo = performServiceHttp.getAudienceMemberInfo(user.getToken());
|
||||
if (CollectionUtils.isNotEmpty(audienceMemberInfo)) {
|
||||
List<FAudienceConfig> 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<Long, Boolean> getSeatMap(List<Long> seatPlanIds) {
|
||||
List<SeatPlanStatus> statusFromHttp = performServiceHttp.getSeatPlanStatusFromHttp(seatPlanIds);
|
||||
if (CollectionUtils.isEmpty(statusFromHttp)) {
|
||||
|
||||
@@ -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<SeatPlanStatus> getSeatPlanStatusFromHttp(List<Long> seatPlanIds);
|
||||
|
||||
/**
|
||||
* http请求查询观影人信息
|
||||
* @param token
|
||||
* @return
|
||||
*/
|
||||
List<AudienceMemberInfo> getAudienceMemberInfo(String token);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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<AudienceMemberInfo> getAudienceMemberInfo(String token) {
|
||||
Map<String, String> 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<AudienceMemberInfo> data = JSON.parseArray(resp.get("data").toString(), AudienceMemberInfo.class);
|
||||
if (CollectionUtils.isEmpty(data)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
private Map<String, String> buildFWDHeaders(String token) {
|
||||
Map<String, String> headers = Maps.newHashMap();
|
||||
headers.put("content-type", "application/json");
|
||||
|
||||
@@ -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<Long> 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<FUserConfig> availableUser = userConfigMapper.getAvailableUser();
|
||||
if (CollectionUtils.isEmpty(availableUser)) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
for (FUserConfig userConfig : availableUser) {
|
||||
List<FAudienceConfig> audiences = audienceConfigMapper.getAudienceByUserId(userConfig.getId());
|
||||
if (CollectionUtils.isNotEmpty(audiences)) {
|
||||
List<Long> 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;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xiang.xservice.fwd.mapper.FwdAudienceConfigMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.xiang.xservice.fwd.entity.pojo.FAudienceConfig">
|
||||
<result column="id" property="id"/>
|
||||
<result column="frequent_id" property="frequentId"/>
|
||||
<result column="frequent_name" property="frequentName"/>
|
||||
<result column="status" property="status"/>
|
||||
<result column="frequent_no" property="frequentNo"/>
|
||||
<result column="frequent_phone" property="frequentPhone"/>
|
||||
<result column="del_flag" property="delFlag"/>
|
||||
<result column="user_id" property="userId"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, frequent_id, frequent_name, status,frequent_no,frequent_phone,del_flag,user_id
|
||||
</sql>
|
||||
|
||||
<delete id="delByUserId">
|
||||
delete
|
||||
from fwd_audience_config
|
||||
where user_id = #{user_id}
|
||||
</delete>
|
||||
|
||||
<insert id="batechSave">
|
||||
INSERT INTO fwd_audience_config (
|
||||
status,
|
||||
frequent_id,
|
||||
frequent_name,
|
||||
frequent_no,
|
||||
frequent_phone,
|
||||
del_flag,
|
||||
user_id
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(
|
||||
#{item.status},
|
||||
#{item.frequentId},
|
||||
#{item.frequentName},
|
||||
#{item.frequentNo},
|
||||
#{item.frequentPhone},
|
||||
#{item.delFlag},
|
||||
#{item.userId}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="getAudienceByUserId" resultMap="BaseResultMap">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from fwd_audience_config where user_id = #{userId} and status = 1
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xiang.xservice.fwd.mapper.FwdPerformConfigMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.xiang.xservice.fwd.entity.pojo.FPerformConfig" >
|
||||
<result column="id" property="id"/>
|
||||
<result column="project_id" property="projectId"/>
|
||||
<result column="time" property="time"/>
|
||||
<result column="del_flag" property="delFlag"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, project_id, time, del_flag
|
||||
</sql>
|
||||
|
||||
<update id="delPerforms">
|
||||
update fwd_perform_config set del_flag = 1 where 1=1
|
||||
</update>
|
||||
|
||||
<insert id="insertPerforms">
|
||||
insert into fwd_perform_config(project_id, time, del_flag)
|
||||
values
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(#{item.projectId}, #{item.time}, #{item.delFlag})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="getAvailableUser" resultMap="BaseResultMap">
|
||||
select <include refid="Base_Column_List"/>
|
||||
from fwd_perform_config where del_flag = 0
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -281,7 +281,7 @@
|
||||
<select id="getPerformSeatByProjectId" resultType="com.xiang.xservice.fwd.entity.pojo.FPerformSeatInfo">
|
||||
select <include refid="Base_Column_List"/>
|
||||
from fwd_perform_seat_info
|
||||
where project_id = #{projectId}
|
||||
where project_id = #{projectId} and sold_out = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
22
script/src/main/resources/mapper/fwd/FwdUserConfigMapper.xml
Normal file
22
script/src/main/resources/mapper/fwd/FwdUserConfigMapper.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xiang.xservice.fwd.mapper.FwdUserConfigMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.xiang.xservice.fwd.entity.pojo.FUserConfig" >
|
||||
<result column="id" property="id"/>
|
||||
<result column="name" property="name"/>
|
||||
<result column="token" property="token"/>
|
||||
<result column="status" property="status"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, name, token, status
|
||||
</sql>
|
||||
|
||||
|
||||
<select id="getAvailableUser" resultMap="BaseResultMap">
|
||||
select <include refid="Base_Column_List"/>
|
||||
from fwd_user_config where status = 1
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user