记得上下班打卡 | git大法好,push需谨慎

Commit 75592fa4 authored by 张国柄's avatar 张国柄

验票API逻辑实现

parent d3232688
......@@ -5,32 +5,16 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "KylinStationCheckDataParam", description = "上载验票入参")
@Data
public class KylinStationCheckOrderParam implements Serializable {
private static final long serialVersionUID = 2312115659117282564L;
@ApiModelProperty(position = 10, value = "演出ID[64]")
@ApiModelProperty(position = 11, value = "演出ID[64]")
private String performanceId;
@ApiModelProperty(position = 11, value = "订单号")
private String orderCode;
@ApiModelProperty(position = 12, value = "二维码地址")
private String qrCode;
@ApiModelProperty(position = 13, value = "付款张数")
private Integer number;
@ApiModelProperty(position = 14, value = "退款张数")
private Integer refundNumber;
@ApiModelProperty(position = 16, value = "订单状态:0-待付款,1-已付款,2-已关闭,3-正在退款,4-已退款,5-待关闭,6-部分退款")
private Integer status;
@ApiModelProperty(position = 17, value = "支付状态:0-未支付,1-已支付,2-支付失败")
private Integer payStatus;
@ApiModelProperty(position = 18, value = "是否学生票[1-是,2-否]")
private Integer isStudent;
@ApiModelProperty(position = 19, value = "购买者是否是会员[0-否,1-是]")
private Integer isMember;
@ApiModelProperty(position = 30, value = "*验票张数")
private Integer checkedNumber;
@ApiModelProperty(position = 31, value = "*是否已同步[0-否,1-是]")
private Integer synced;
@ApiModelProperty(position = 13, value = "出票端:(验票app)android/ios")
private String checkClient;
@ApiModelProperty(position = 14, value = "出票`orderTicketEntitiesId`列表")
private List<String> checkedEntitiesIdList;
}
......@@ -10,33 +10,24 @@ import java.io.Serializable;
@Data
public class KylinStationCheckOrderVo implements Serializable {
private static final long serialVersionUID = 7450966265904643147L;
@ApiModelProperty(position = 10, value = "演出ID[64]")
@ApiModelProperty(position = 10, value = "ID[64]")
private String orderTicketEntitiesId;
@ApiModelProperty(position = 11, value = "演出ID[64]")
private String performanceId;
@ApiModelProperty(position = 11, value = "订单号")
private String orderCode;
@ApiModelProperty(position = 12, value = "二维码地址")
private String qrCode;
@ApiModelProperty(position = 12, value = "订单ID")
private String orderId;
@ApiModelProperty(position = 13, value = "用户昵称")
private String userName;
private String enterName;
@ApiModelProperty(position = 14, value = "用户手机号")
private String userMobile;
@ApiModelProperty(position = 16, value = "付款张数")
private Integer number;
@ApiModelProperty(position = 17, value = "退款张数")
private Integer refundNumber;
@ApiModelProperty(position = 18, value = "订单状态:0-待付款,1-已付款,2-已关闭,3-正在退款,4-已退款,5-待关闭,6-部分退款")
private String enterMobile;
@ApiModelProperty(position = 15, value = "出票状态:0-未出票,1-已出票")
private Integer status;
@ApiModelProperty(position = 19, value = "支付状态:0-未支付,1-已支付,2-支付失败")
private Integer payStatus;
@ApiModelProperty(position = 20, value = "是否学生票[1-是,2-否]")
private Integer isStudent;
@ApiModelProperty(position = 21, value = "购买者是否是会员[0-否,1-是]")
private Integer isMember;
@ApiModelProperty(position = 30, value = "*验票张数")
private Integer checkedNumber;
@ApiModelProperty(position = 31, value = "*是否已同步[0-否,1-是]")
private Integer synced;
@ApiModelProperty(position = 16, value = "支付状态:0-未支付,1-已支付,2-退款中,3-已退款")
private Integer isPayment;
@ApiModelProperty(position = 17, value = "出票端:(验票app)android/ios")
private String checkClient;
@ApiModelProperty(position = 18, value = "二维身份CODE")
private String qrCode;
private static final KylinStationCheckOrderVo obj = new KylinStationCheckOrderVo();
......
......@@ -12,7 +12,7 @@ import java.util.List;
public class KylinStationPerformanceVo implements Serializable, Cloneable {
private static final long serialVersionUID = -4994363974994478286L;
@ApiModelProperty(position = 10, value = "演出ID[64]")
private String performanceId;
private String performancesId;
@ApiModelProperty(position = 11, value = "类型[101-音乐节,102小型演出(livehouse演出),103巡演]")
private Integer type;
@ApiModelProperty(position = 12, value = "演出标题[255]")
......@@ -38,7 +38,7 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable {
public KylinStationPerformanceVo copy(KylinPerformanceVo source) {
if (null == source) return this;
this.performanceId = source.getPerformancesId();
this.performancesId = source.getPerformancesId();
this.type = source.getType();
this.title = source.getTitle();
this.timeStart = source.getTimeStart();
......
......@@ -12,24 +12,22 @@ import java.math.BigDecimal;
public class KylinStationTicketVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1303234075649915021L;
@ApiModelProperty(position = 10, value = "票种ID[64]")
private String ticketsId;
@ApiModelProperty(position = 11, value = "类型[1-单日票,2-通票]")
private String type;
@ApiModelProperty(position = 12, value = "名称[32]")
private String ticketId;
@ApiModelProperty(position = 11, value = "名称[32]")
private String title;
@ApiModelProperty(position = 13, value = "单价(8,2)")
@ApiModelProperty(position = 12, value = "单价(8,2)")
private BigDecimal price;
@ApiModelProperty(position = 14, value = "适用开始时间")
@ApiModelProperty(position = 13, value = "适用开始时间")
private String useStart;
@ApiModelProperty(position = 15, value = "适用结束时间")
@ApiModelProperty(position = 14, value = "适用结束时间")
private String useEnd;
@ApiModelProperty(position = 16, value = "票房")
@ApiModelProperty(position = 15, value = "票房")
private BigDecimal priceSum;
@ApiModelProperty(position = 17, value = "票量[9]")
@ApiModelProperty(position = 16, value = "票量[9]")
private Integer number;
@ApiModelProperty(position = 18, value = "已验票量[9]")
@ApiModelProperty(position = 17, value = "已验票量[9]")
private Integer checkedNum;
@ApiModelProperty(position = 19, value = "余量[9]")
@ApiModelProperty(position = 18, value = "余量[9]")
private Integer remainderNum;
private static final KylinStationTicketVo obj = new KylinStationTicketVo();
......
package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
/**
......@@ -13,4 +14,5 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
*/
public interface IKylinOrderTicketEntitiesService extends IService<KylinOrderTicketEntities> {
void updateByStation(KylinStationCheckOrderParam checkDataParam);
}
......@@ -61,9 +61,19 @@ public abstract class DateUtil {
}
public String format(LocalDate localDate) {
if (localDate == null) {
return null;
}
return formatter.format(localDate);
}
public LocalDateTime parse(String str) {
if (null == str || str.trim().length() <= 0) {
return null;
}
return LocalDateTime.parse(str, formatter);
}
}
/**
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.controller;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping;
......@@ -10,8 +11,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.dto.vo.*;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPartnerService;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPerformancesPartnerService;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.liquidnet.service.kylin.utils.DataUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
......@@ -31,7 +32,14 @@ import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@Api(tags = "验票")
@Slf4j
......@@ -48,11 +56,13 @@ public class KylinStationController {
RedisUtil redisUtil;
@Autowired
DataUtils dataUtils;
@Autowired
IKylinOrderTicketEntitiesService kylinOrderTicketEntitiesService;
@ApiOperation(value = "手机号密码登录")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "mobile", value = "手机号"),
@ApiImplicitParam(type = "form", dataType = "String", name = "passwd", value = "密码"),
@ApiImplicitParam(type = "form", dataType = "String", name = "mobile", value = "手机号", example = "11122233344"),
@ApiImplicitParam(type = "form", dataType = "String", name = "passwd", value = "密码", example = "123456"),
})
@PostMapping("login")
public ResponseDto<String> login(@RequestParam String mobile, @RequestParam String passwd) {
......@@ -63,8 +73,8 @@ public class KylinStationController {
@ApiOperation(value = "手机号验证码登录")
@ApiImplicitParams({
@ApiImplicitParam(type = "body", required = true, dataType = "String", name = "mobile", value = "手机号"),
@ApiImplicitParam(type = "body", required = true, dataType = "String", name = "code", value = "验证码"),
@ApiImplicitParam(type = "body", required = true, dataType = "String", name = "mobile", value = "手机号", example = "11122233344"),
@ApiImplicitParam(type = "body", required = true, dataType = "String", name = "code", value = "验证码", example = "111111"),
})
@PostMapping("login/sms")
public ResponseDto<String> loginBySms(@RequestParam String mobile, @RequestParam String code) {
......@@ -100,53 +110,99 @@ public class KylinStationController {
@GetMapping("performances/{mod}")
public ResponseDto<List<KylinStationPerformanceVo>> performances(@PathVariable String mod) {
List<KylinStationPerformanceVo> voList = new ArrayList<>();
log.info("mod:{}", mod);
String currentUid = CurrentUtil.getCurrentUid();
try {
switch (mod) {
case "recent":
KylinCheckUserPerformanceVo checkUserRelationVo = dataUtils.getCheckUserRelationVo(CurrentUtil.getCurrentUid());
log.info(":::performances/recent:{}", currentUid);
// 查取当前用户下关联演出ID列表
KylinCheckUserPerformanceVo checkUserRelationVo = dataUtils.getCheckUserRelationVo(currentUid);
if (null != checkUserRelationVo) {
List<CheckPerformanceRelationParam> relationParams = checkUserRelationVo.getRelationParams();
if (!CollectionUtils.isEmpty(relationParams)) {
relationParams.forEach(r -> {
KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(r.getPerformanceId());
KylinStationPerformanceVo vo = KylinStationPerformanceVo.getNew().copy(performanceVo);
vo.setCanDownTime(r.getCanDownTime());
// TODO: 2021/5/30 票种数据统计
KylinStationTicketVo ticketVo = KylinStationTicketVo.getNew();
ticketVo.setTicketsId("1");
ticketVo.setType("1");
ticketVo.setTitle("测试数据");
ticketVo.setPrice(BigDecimal.TEN);
ticketVo.setUseStart("2021-05-30");
ticketVo.setUseEnd("2021-06-02");
ticketVo.setNumber(100);
ticketVo.setPriceSum(ticketVo.getPrice().multiply(BigDecimal.valueOf(ticketVo.getNumber())));
ticketVo.setCheckedNum(0);
ticketVo.setRemainderNum(ticketVo.getNumber() - ticketVo.getCheckedNum());
vo.setTicketVoList(Arrays.asList(ticketVo, ticketVo));
List<CheckPerformanceRelationParam> performanceRelationList = checkUserRelationVo.getRelationParams();
if (!CollectionUtils.isEmpty(performanceRelationList)) {
LocalDateTime tmpDt = LocalDateTime.of(LocalDate.now(), LocalTime.of(0, 0, 0, 0));
String tmpDtStr = DateUtil.format(tmpDt, DateUtil.Formatter.yyyyMMddHHmmss);
// 转换Map<performanceId, canDownTime>
Map<String, String> performanceRelationMap = performanceRelationList.stream().collect(Collectors.toMap(CheckPerformanceRelationParam::getPerformanceId, CheckPerformanceRelationParam::getCanDownTime));
// 查取指定条件的演出列表
Query performancesVoQuery = Query.query(Criteria.where("performancesId").in(
performanceRelationList.stream().map(CheckPerformanceRelationParam::getPerformanceId).toArray()
).and("timeEnd").gt(tmpDtStr));
performancesVoQuery.with(Sort.by(Sort.Order.asc("timeEnd"), Sort.Order.desc("sort")));
voList = mongoTemplate.find(performancesVoQuery, KylinStationPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// 查取演出对应的订单票明细
Query orderTicketEntitiesVoQuery = Query.query(Criteria.where("performanceId").in(
voList.stream().map(KylinStationPerformanceVo::getPerformancesId).toArray()
).and("isPayment").is(1));
List<KylinOrderTicketEntitiesVo> oteVoList = mongoTemplate.find(orderTicketEntitiesVoQuery, KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
// 转换订单票明细结构为Map<performanceId, List<KylinOrderTicketEntitiesVo>>
Map<String, List<KylinOrderTicketEntitiesVo>> oteVoMap = oteVoList.stream().collect(Collectors.groupingBy(KylinOrderTicketEntitiesVo::getPerformanceId));
// 查取订单对应票种
Query performanceTicketVoQuery = Query.query(Criteria.where("ticketsId").in(
oteVoList.stream().filter(distinctByKey(KylinOrderTicketEntitiesVo::getTicketId)).map(KylinOrderTicketEntitiesVo::getTicketId).toArray()
));
List<KylinTicketVo> performanceTicketVoList = mongoTemplate.find(performanceTicketVoQuery, KylinTicketVo.class, KylinTicketVo.class.getSimpleName());
// 转换票种信息结构为Map<ticketsId, ticketVo>
Map<String, KylinTicketVo> performanceTicketMap = performanceTicketVoList.stream().collect(Collectors.toMap(KylinTicketVo::getTicketsId, Function.identity(), (k1, k2) -> k2));
// 补充演出列表票种统计
voList.forEach(r -> {
// 演出的所有订单票明细
List<KylinOrderTicketEntitiesVo> performanceTicketEntitiesVoList = oteVoMap.get(r.getPerformancesId());
// 订单票明细按票种分组
Map<String, List<KylinOrderTicketEntitiesVo>> performanceTicketEntitiesVoMap = performanceTicketEntitiesVoList.stream().collect(Collectors.groupingBy(KylinOrderTicketEntitiesVo::getTicketId));
List<KylinStationTicketVo> ticketVoList = new ArrayList<>();
for (Map.Entry<String, List<KylinOrderTicketEntitiesVo>> entry : performanceTicketEntitiesVoMap.entrySet()) {
KylinTicketVo ticketVo = performanceTicketMap.get(entry.getKey());
KylinStationTicketVo stationTicketVo = KylinStationTicketVo.getNew();
stationTicketVo.setTicketId(ticketVo.getTicketsId());
stationTicketVo.setTitle(ticketVo.getTitle());
stationTicketVo.setPrice(ticketVo.getPrice());
stationTicketVo.setUseStart(ticketVo.getUseStart());
stationTicketVo.setUseEnd(ticketVo.getUseEnd());
List<KylinOrderTicketEntitiesVo> subPerformanceTicketEntitiesVoList = entry.getValue();
// 订单票明细按出票状态分组
Map<Integer, List<KylinOrderTicketEntitiesVo>> subStatusPerformanceTicketEntitiesVoMap
= subPerformanceTicketEntitiesVoList.stream().collect(Collectors.groupingBy(KylinOrderTicketEntitiesVo::getStatus));
stationTicketVo.setNumber(subPerformanceTicketEntitiesVoList.size());
stationTicketVo.setPriceSum(stationTicketVo.getPrice().multiply(BigDecimal.valueOf(stationTicketVo.getNumber())));
List<KylinOrderTicketEntitiesVo> checkedEntitiesVoList = subStatusPerformanceTicketEntitiesVoMap.get(1);
stationTicketVo.setCheckedNum(CollectionUtils.isEmpty(checkedEntitiesVoList) ? 0 : checkedEntitiesVoList.size());
List<KylinOrderTicketEntitiesVo> remainderEntitiesVoList = subStatusPerformanceTicketEntitiesVoMap.get(0);
stationTicketVo.setRemainderNum(CollectionUtils.isEmpty(remainderEntitiesVoList) ? 0 : remainderEntitiesVoList.size());
ticketVoList.add(stationTicketVo);
}
voList.add(vo);
r.setTicketVoList(ticketVoList);
r.setCanDownTime(performanceRelationMap.get(r.getPerformancesId()));
});
}
}
break;
case "down":
log.info(":::performances/down:{}", currentUid);
break;
case "over":
log.info(":::performances/over:{}", currentUid);
break;
default:
log.info(":::performances/default:{}", currentUid);
break;
}
} catch (Exception e) {
log.error("验票:查取演出列表异常:/station/performances/?", e);
}
return ResponseDto.success(voList);
}
......@@ -159,17 +215,49 @@ public class KylinStationController {
public ResponseDto<List<KylinStationCheckOrderVo>> downloadTicketData(@PathVariable String type, @PathVariable String performanceId) {
log.info("type:{},performanceId:{}", type, performanceId);
List<KylinStationCheckOrderVo> voList = new ArrayList<>();
String currentUid = CurrentUtil.getCurrentUid();
// 查取当前用户下关联演出ID列表
KylinCheckUserPerformanceVo checkUserRelationVo = dataUtils.getCheckUserRelationVo(currentUid);
List<CheckPerformanceRelationParam> relationParams;
if (null == checkUserRelationVo || CollectionUtils.isEmpty(relationParams = checkUserRelationVo.getRelationParams())) {
return ResponseDto.failure(ErrorMapping.get("20606"));
}
Optional<CheckPerformanceRelationParam> optional = relationParams.stream().findFirst().filter(r -> r.getPerformanceId().equals(performanceId));
if (!optional.isPresent()) {
return ResponseDto.failure(ErrorMapping.get("20607"));
}
CheckPerformanceRelationParam relationParam = optional.get();
LocalDateTime canDownDt = DateUtil.Formatter.yyyyMMddHHmmss.parse(relationParam.getCanDownTime());
if (canDownDt.isAfter(LocalDateTime.now())) {
return ResponseDto.failure(ErrorMapping.get("20608"));
}
// 查取演出对应的订单票明细
Query orderTicketEntitiesVoQuery = Query.query(Criteria.where("performanceId").is(performanceId).and("isPayment").is(1));
voList = mongoTemplate.find(orderTicketEntitiesVoQuery, KylinStationCheckOrderVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
Query query = Query.query(Criteria.where("orderTicketsId").in(
voList.stream().map(KylinStationCheckOrderVo::getOrderId).toArray()
));
query.fields().include("orderTicketsId").include("qrCode");
List<KylinOrderTicketVo> orderTicketVoList = mongoTemplate.find(query, KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
for (KylinOrderTicketVo t : orderTicketVoList)
for (KylinStationCheckOrderVo r : voList)
if (r.getOrderId().equals(t.getOrderTicketsId())) r.setQrCode(t.getQrCode());
return ResponseDto.success(Collections.singletonList(KylinStationCheckOrderVo.getNew()));
return ResponseDto.success(voList);
}
@ApiOperation(value = "上载验票数据")
@PostMapping("upload")
public ResponseDto<Boolean> uploadTicketData(@RequestBody List<KylinStationCheckOrderParam> checkDataParams) {
log.info("checkDataParams:{}", JsonUtils.toJson(checkDataParams));
public ResponseDto<Boolean> uploadTicketData(@RequestBody KylinStationCheckOrderParam checkDataParam) {
log.info("checkDataParams:{}", JsonUtils.toJson(checkDataParam));
kylinOrderTicketEntitiesService.updateByStation(checkDataParam);
return ResponseDto.success(true);
}
......@@ -239,4 +327,9 @@ public class KylinStationController {
return ResponseDto.success(token);
}
private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
}
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.BasicDBObject;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
......@@ -16,5 +34,37 @@ import org.springframework.stereotype.Service;
*/
@Service
public class KylinOrderTicketEntitiesServiceImpl extends ServiceImpl<KylinOrderTicketEntitiesMapper, KylinOrderTicketEntities> implements IKylinOrderTicketEntitiesService {
@Autowired
MongoConverter mongoConverter;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RabbitTemplate rabbitTemplate;
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void updateByStation(KylinStationCheckOrderParam checkDataParam) {
String performanceId = checkDataParam.getPerformanceId();
KylinOrderTicketEntitiesVo updateVo = new KylinOrderTicketEntitiesVo();
updateVo.setCheckClient(checkDataParam.getCheckClient());
updateVo.setStatus(1);// 1-已出票
List<String> checkedEntitiesIdList = checkDataParam.getCheckedEntitiesIdList();
mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("performanceId").is(performanceId)
.and("orderTicketEntitiesId").in(checkedEntitiesIdList.toArray())
.and("status").is(0)
).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(updateVo))
);
LocalDateTime nowDt = LocalDateTime.now();
LinkedList<Object[]> paramsList = new LinkedList<>();
for (String id : checkedEntitiesIdList) {
paramsList.add(new Object[]{1, nowDt, id});
}
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_user.add", paramsList));
}
}
......@@ -37,3 +37,9 @@
# 专业版APP
20601=账号不存在
20602=密码错误
20603=
20604=
20605=
20606=当前账号无关联演出数据
20607=当前账号未关联当前演出
20608=当前演出还未开放下载
\ No newline at end of file
kylin_order_ticket_entities.add=INSERT INTO kylin_order_ticket_entities(order_ticket_entities_id ,order_id ,ticket_id ,user_id ,time_id ,performance_id ,enter_type ,enter_name ,enter_mobile,enter_id_code,status,sys_damai,check_client,is_payment,comment,created_at,updated_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_status SET is_payment = ?,updated_at = ? WHERE order_tickets_id = ?
\ No newline at end of file
kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_payment = ?,updated_at = ? WHERE order_tickets_id = ?
kylin_order_ticket_entities.updateStatusByStation=UPDATE kylin_order_ticket_status SET `status`=?, updated_at=? WHERE order_ticket_entities_id =?
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment