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

Commit 874b70d6 authored by 胡佳晨's avatar 胡佳晨

提交代码

parent 813f6960
...@@ -3,6 +3,7 @@ package com.liquidnet.commons.lang.util; ...@@ -3,6 +3,7 @@ package com.liquidnet.commons.lang.util;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class CurrentUtil { public class CurrentUtil {
...@@ -17,7 +18,18 @@ public class CurrentUtil { ...@@ -17,7 +18,18 @@ public class CurrentUtil {
} }
public static Map getTokenClaims() { public static Map getTokenClaims() {
return JsonUtils.fromJson(ServletUtils.getRequest().getHeader(uTag), Map.class); String utag = ServletUtils.getRequest().getHeader(uTag);
// TODO: 2021/5/14 dev联调API未启用token默认使用1
if (StringUtils.isEmpty(utag)) {
Map<String, Object> map = new HashMap<>();
map.put("mobile", "000");
map.put("nickname", "111");
map.put("uid", "1");
return map;
}
return JsonUtils.fromJson(utag, Map.class);
} }
public static String getCurrentUid() { public static String getCurrentUid() {
......
...@@ -66,10 +66,15 @@ public class IDGenerator { ...@@ -66,10 +66,15 @@ public class IDGenerator {
} }
public static String ticketOrderCode(String orderTicketId) { public static String ticketOrderCode(String orderTicketId) {
String number = orderTicketId + "06d"; String number = orderTicketId;
int len =orderTicketId.length(); int len = orderTicketId.length();
String time = System.currentTimeMillis()/1000+""; String time = System.currentTimeMillis() / 1000 + "";
return "T" + number.substring(0,len-4)+time.substring(7,8)+number.substring(len-2)+time.substring(8,9)+number.substring(len-4,2); String orderCode = "T" + number.substring(0, len - 4);
orderCode+=time.substring(7, 8);
orderCode+=number.substring(len - 2);
orderCode+=time.substring(8, 9);
orderCode+=number.substring(len - 4, len-2);
return orderCode;
} }
private static long genTime() { private static long genTime() {
......
...@@ -7,4 +7,19 @@ import java.io.Serializable; ...@@ -7,4 +7,19 @@ import java.io.Serializable;
@Data @Data
public class KylinOrderTicketEntitiesVo implements Serializable { public class KylinOrderTicketEntitiesVo implements Serializable {
private static final long serialVersionUID = 1207664465164005975L; private static final long serialVersionUID = 1207664465164005975L;
private String orderTicketEntitiesId;
private String orderId;
private String ticketId;
private String userId;
private String performanceId;
private String timeId;
private Integer enterType;
private String enterName;
private String enterMobile;
private String enterIdCode;
private Integer status;
private Integer sysDamai;
private String checkClient;
private Integer isPayment;
} }
package com.liquidnet.service.kylin.dto.vo; package com.liquidnet.service.kylin.dto.vo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import lombok.Data; import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
@Data @Data
public class KylinOrderTicketVo implements Serializable { public class KylinOrderTicketVo implements Serializable {
private static final long serialVersionUID = 5325511589667456213L; private static final long serialVersionUID = 5325511589667456213L;
private String orderTicketsId;
private String userId;
private String userName;
private String userMobile;
private String performanceTitle;
private String orderCode;
private String payCode;
private String qrCode;
private String orderType;
private String orderVersion;
private Integer number;
private BigDecimal price;
private BigDecimal priceMember;
private BigDecimal priceTotal;
private BigDecimal priceVoucher;
private BigDecimal priceActual;
private BigDecimal priceExpress;
private BigDecimal priceRefund;
private Integer refundNumber;
private String payType;
private String paymentType;
private String timePay;
private String expressContacts;
private String expressAddress;
private String expressPhone;
private String couponType;
private String getTicketType;
private String getTicketDescribe;
private Integer payCountdownMinute;
private Integer expressType;
private Integer isStudent;
private Integer transferStatus;
private Integer status;
private Integer payStatus;
private String transferId;
private String liveId;
private String performanceId;
private String timeId;
private String ticketId;
private String agentId;
private Integer isMember;
public void setOrderTicket(KylinOrderTickets orderTicket) {
BeanUtils.copyProperties(orderTicket,this);
}
public void setOrderTicketStatus(KylinOrderTicketStatus orderTicketStatus) {
BeanUtils.copyProperties(orderTicketStatus,this);
}
public void setOrderTicketRelation(KylinOrderTicketRelations orderTicketRelation) {
BeanUtils.copyProperties(orderTicketRelation,this);
}
} }
...@@ -6,16 +6,16 @@ import com.liquidnet.service.adam.dto.vo.AdamEntersVo; ...@@ -6,16 +6,16 @@ import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient; import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.*;
import com.liquidnet.service.kylin.dto.vo.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.KylinTicketVo;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper; import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.utils.DataUtils; import com.liquidnet.service.kylin.utils.DataUtils;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -23,6 +23,7 @@ import java.time.LocalDateTime; ...@@ -23,6 +23,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -38,6 +39,8 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -38,6 +39,8 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private MongoTemplate mongoTemplate;
@Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
@Autowired @Autowired
private FeignAdamBaseClient feignAdamBaseClient; private FeignAdamBaseClient feignAdamBaseClient;
...@@ -48,8 +51,8 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -48,8 +51,8 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
try { try {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId()); KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId());
KylinTicketTimesVo ticketTimesData = dataUtils.getTicketTimesVo(payOrderParam.getPerformanceId()); KylinTicketTimesVo ticketTimesData = dataUtils.getTicketTimesVo(payOrderParam.getTimeId());
KylinTicketVo ticketData = dataUtils.getTicketVo(payOrderParam.getPerformanceId()); KylinTicketVo ticketData = dataUtils.getTicketVo(payOrderParam.getTicketId());
if (performanceData == null || ticketTimesData == null || ticketData == null) { if (performanceData == null || ticketTimesData == null || ticketData == null) {
return ResponseDto.failure("参数错误");//参数错误 return ResponseDto.failure("参数错误");//参数错误
} }
...@@ -64,6 +67,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -64,6 +67,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
int performanceBuyCount; //演出下所有票种购买数量 int performanceBuyCount; //演出下所有票种购买数量
int ticketBuyCount;// 单一票种购买数量 int ticketBuyCount;// 单一票种购买数量
boolean isMember = feignAdamBaseClient.isMember(uid).getData();//获取是否是会员 boolean isMember = feignAdamBaseClient.isMember(uid).getData();//获取是否是会员
// boolean isMember = false;
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属 int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (ticketData.getIsExclusive() == 1) { if (ticketData.getIsExclusive() == 1) {
memberType = 2; memberType = 2;
...@@ -129,27 +133,27 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -129,27 +133,27 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//限购判断 如果实名 则身份证维度限购 如果不实名则数量限购 //限购判断 如果实名 则身份证维度限购 如果不实名则数量限购
if (isTrueName == 1) { if (isTrueName == 1) {
//已购买数量 身份证 //已购买数量 身份证
performanceBuyCount = 0+payOrderParam.getNumber(); //演出下所有票种购买数量 TODO performanceBuyCount = 0 + payOrderParam.getNumber(); //演出下所有票种购买数量 TODO
ticketBuyCount = 0+payOrderParam.getNumber(); // 单一票种购买数量 TODO ticketBuyCount = 0 + payOrderParam.getNumber(); // 单一票种购买数量 TODO
} else { } else {
//已购买数量 数量 //已购买数量 数量
performanceBuyCount = 0+payOrderParam.getNumber(); //演出下所有票种购买数量 TODO performanceBuyCount = 0 + payOrderParam.getNumber(); //演出下所有票种购买数量 TODO
ticketBuyCount = 0+payOrderParam.getNumber(); // 单一票种购买数量 TODO ticketBuyCount = 0 + payOrderParam.getNumber(); // 单一票种购买数量 TODO
} }
//会员区间 //会员区间
if (memberType == 1 || memberType == 2) { if (memberType == 1 || memberType == 2) {
if (performanceBuyCount >= performanceMemberLimit && performanceMemberLimit != 0) { if (performanceBuyCount >= performanceMemberLimit && performanceMemberLimit != 0) {
return ResponseDto.failure("该演出只能购买"+performanceMemberLimit+"张");//超过演出维度购买量 return ResponseDto.failure("该演出只能购买" + performanceMemberLimit + "张");//超过演出维度购买量
} }
if (ticketBuyCount >= ticketMemberLimit && ticketMemberLimit != 0) { if (ticketBuyCount >= ticketMemberLimit && ticketMemberLimit != 0) {
return ResponseDto.failure("该票种只能购买"+ticketMemberLimit+"张");//超过票维度购买量 return ResponseDto.failure("该票种只能购买" + ticketMemberLimit + "张");//超过票维度购买量
} }
} else {//非会员区间 } else {//非会员区间
if (performanceBuyCount >= performanceLimit && performanceLimit != 0) { if (performanceBuyCount >= performanceLimit && performanceLimit != 0) {
return ResponseDto.failure("该演出只能购买"+performanceLimit+"张");//超过演出维度购买量 return ResponseDto.failure("该演出只能购买" + performanceLimit + "张");//超过演出维度购买量
} }
if (ticketBuyCount >= ticketLimit && ticketLimit != 0) { if (ticketBuyCount >= ticketLimit && ticketLimit != 0) {
return ResponseDto.failure("该票种只能购买"+ticketLimit+"张");//超过票维度购买量 return ResponseDto.failure("该票种只能购买" + ticketLimit + "张");//超过票维度购买量
} }
} }
return order(payOrderParam, uid, isMember, isTrueName, performanceData, ticketData); return order(payOrderParam, uid, isMember, isTrueName, performanceData, ticketData);
...@@ -172,7 +176,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -172,7 +176,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
List<AdamEntersVo> entersVoList = new ArrayList(); List<AdamEntersVo> entersVoList = new ArrayList();
//学生票 判断 //学生票 判断
if (payOrderParam.getIsStudent() == 1) { if (null != payOrderParam.getIsStudent() && payOrderParam.getIsStudent() == 1) {
for (String enterId : payOrderParam.getEnterIdList()) { for (String enterId : payOrderParam.getEnterIdList()) {
AdamEntersVo adamEnters = feignAdamBaseClient.queryEnters(enterId, uid).getData(); AdamEntersVo adamEnters = feignAdamBaseClient.queryEnters(enterId, uid).getData();
entersVoList.add(adamEnters); entersVoList.add(adamEnters);
...@@ -187,8 +191,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -187,8 +191,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
String orderTicketId = IDGenerator.nextSnowId().toString(); String orderTicketId = IDGenerator.nextSnowId().toString();
orderTickets.setOrderTicketsId(orderTicketId); orderTickets.setOrderTicketsId(orderTicketId);
orderTickets.setUserId(uid); orderTickets.setUserId(uid);
orderTickets.setUserName(CurrentUtil.getTokenClaims().get("nickname").toString()); Map token = CurrentUtil.getTokenClaims();
orderTickets.setUserMobile(CurrentUtil.getTokenClaims().get("mobile").toString()); orderTickets.setUserName((String) token.get("nickname"));
orderTickets.setUserMobile((String)token.get("mobile"));
orderTickets.setPerformanceTitle(performanceData.getTitle()); orderTickets.setPerformanceTitle(performanceData.getTitle());
orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId)); orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId));
orderTickets.setPayCode(""); orderTickets.setPayCode("");
...@@ -293,7 +298,10 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -293,7 +298,10 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//TODO mq sql //TODO mq sql
sqls.add("kylin_order_ticket_entities.add"); sqls.add("kylin_order_ticket_entities.add");
paramsList.add(orderTicketEntities.getAddObject()); paramsList.add(orderTicketEntities.getAddObject());
// 生成vo
KylinOrderTicketEntitiesVo orderTicketEntitiesVo = new KylinOrderTicketEntitiesVo();
BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo);
mongoTemplate.insert(orderTicketEntitiesVo,KylinOrderTicketEntitiesVo.class.getSimpleName());
} }
} else { } else {
for (int i = 0; i < payOrderParam.getNumber(); i++) { for (int i = 0; i < payOrderParam.getNumber(); i++) {
...@@ -317,10 +325,21 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -317,10 +325,21 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//TODO mq sql //TODO mq sql
sqls.add("kylin_order_ticket_entities.add"); sqls.add("kylin_order_ticket_entities.add");
paramsList.add(orderTicketEntities.getAddObject()); paramsList.add(orderTicketEntities.getAddObject());
// 生成vo
KylinOrderTicketEntitiesVo orderTicketEntitiesVo = new KylinOrderTicketEntitiesVo();
BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo);
mongoTemplate.insert(orderTicketEntitiesVo,KylinOrderTicketEntitiesVo.class.getSimpleName());
} }
} }
// 执行sql 生成vo 调用支付 // 调用支付 别忘记生成支付单号
orderTickets.setPayCode("");
// 生成vo
KylinOrderTicketVo orderTicketVo = new KylinOrderTicketVo();
orderTicketVo.setOrderTicket(orderTickets);
orderTicketVo.setOrderTicketStatus(orderTicketStatus);
orderTicketVo.setOrderTicketRelation(orderTicketRelations);
mongoTemplate.insert(orderTicketVo,KylinOrderTicketVo.class.getSimpleName());
// 执行sql
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL, // rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get(sqls, paramsList)); // SqlMapping.get(sqls, paramsList));
return ResponseDto.success("下单完成"); return ResponseDto.success("下单完成");
......
...@@ -124,7 +124,7 @@ public class DataUtils { ...@@ -124,7 +124,7 @@ public class DataUtils {
public KylinTicketTimesVo getTicketTimesVo(String ticketTimeId){ public KylinTicketTimesVo getTicketTimesVo(String ticketTimeId){
if(redisUtil.hHasKey(KylinRedisConst.TIMES,ticketTimeId)){ if(redisUtil.hHasKey(KylinRedisConst.TIMES,ticketTimeId)){
}else{ }else{
KylinTicketTimesVo ticketTimesData = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketTimeId)), KylinTicketTimesVo.class, KylinTicketTimes.class.getSimpleName()); KylinTicketTimesVo ticketTimesData = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketTimeId)), KylinTicketTimesVo.class, KylinTicketTimesVo.class.getSimpleName());
redisUtil.hset(KylinRedisConst.TIMES,ticketTimeId,ticketTimesData); redisUtil.hset(KylinRedisConst.TIMES,ticketTimeId,ticketTimesData);
} }
return (KylinTicketTimesVo) redisUtil.hget(KylinRedisConst.TIMES,ticketTimeId); return (KylinTicketTimesVo) redisUtil.hget(KylinRedisConst.TIMES,ticketTimeId);
......
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