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

Commit 1155f6f1 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents 328f2669 6a5adc44
......@@ -34,20 +34,20 @@
<option value="desc">倒序</option>
</select>
</li>
<li>
<label>演出状态:</label>
<select name="status">
<option value="-2">全部</option>
<option value="1">审核中</option>
<option value="3">审核通过</option>
<option value="4">审核拒绝</option>
<option value="6">售卖</option>
<option value="7">已下架</option>
<option value="8">售罄</option>
<option value="9">未开始</option>
<option value="10">演出结束</option>
</select>
</li>
<!-- <li>-->
<!-- <label>演出状态:</label>-->
<!-- <select name="status">-->
<!-- <option value="-2">全部</option>-->
<!-- <option value="1">审核中</option>-->
<!-- <option value="3">审核通过</option>-->
<!-- <option value="4">审核拒绝</option>-->
<!-- <option value="6">售卖</option>-->
<!-- <option value="7">已下架</option>-->
<!-- <option value="8">售罄</option>-->
<!-- <option value="9">未开始</option>-->
<!-- <option value="10">演出结束</option>-->
<!-- </select>-->
<!-- </li>-->
<li>
<label>审核状态:</label>
<select name="auditStatus">
......
package com.liquidnet.service.base;
import com.liquidnet.commons.lang.util.JsonUtils;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.LinkedList;
import java.util.Properties;
public class OrderCloseMapping {
static {
reload();
}
private static Properties sqlsProperties;
public static void reload() {
sqlsProperties = new Properties();
InputStream in = ErrorMapping.class.getClassLoader().getResourceAsStream("sqlmap.properties");
try {
sqlsProperties.load(new InputStreamReader(in, StandardCharsets.UTF_8));
System.out.printf("errorsProperties init count: %s\n", sqlsProperties.size());
} catch (IOException e) {
e.printStackTrace();
}
}
public static String get(String sql) {
return (String) sqlsProperties.get(sql);
}
public static class orderCloseMessage implements Cloneable, Serializable {
private static final long serialVersionUID = 2208924091512163151L;
private LinkedList<String> orderTicketIds;
private orderCloseMessage() {
}
public LinkedList<String> getOrderTicketIds() {
return orderTicketIds;
}
public void setOrderTicketIds(LinkedList<String> orderTicketIds) {
this.orderTicketIds = orderTicketIds;
}
private final static OrderCloseMapping.orderCloseMessage instance = new OrderCloseMapping.orderCloseMessage();
public static OrderCloseMapping.orderCloseMessage getInstance() {
try {
return (OrderCloseMapping.orderCloseMessage) instance.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new OrderCloseMapping.orderCloseMessage();
}
}
/* ---------------------- ---------------------- ---------------------- */
public static String get(LinkedList<String> orderTicketIds) {
OrderCloseMapping.orderCloseMessage sqlMessage = OrderCloseMapping.orderCloseMessage.getInstance();
sqlMessage.setOrderTicketIds(orderTicketIds);
return JsonUtils.toJson(sqlMessage);
}
}
use prod_ln_scene;
#创建集合
db.createCollection("AdamUserInfoVo");
db.createCollection("AdamRealInfoVo");
db.createCollection("AdamThirdPartInfoVo");
db.createCollection("AdamUserMemberVo");
db.createCollection("AdamMemberVo");
#创建索引
db.AdamUserInfoVo.createIndex({uid:"hashed"});
db.AdamUserInfoVo.createIndex({state:"hashed"});
db.AdamRealInfoVo.createIndex({uid:"hashed"});
db.AdamRealInfoVo.createIndex({state:"hashed"});
db.AdamThirdPartInfoVo.createIndex({uid:"hashed"});
db.AdamThirdPartInfoVo.createIndex({state:"hashed"});
db.AdamUserMemberVo.createIndex({uid:"hashed"});
db.AdamMemberVo.createIndex({memberId:"hashed"});
#创建分片
sh.enableSharding("prod_ln_scene");
sh.shardCollection("prod_ln_scene.AdamUserInfoVo",{"uid":"hashed"});
sh.shardCollection("prod_ln_scene.AdamRealInfoVo",{"uid":"hashed"});
sh.shardCollection("prod_ln_scene.AdamThirdPartInfoVo",{"uid":"hashed"});
sh.shardCollection("prod_ln_scene.AdamUserMemberVo",{"uid":"hashed"});
sh.shardCollection("prod_ln_scene.AdamMemberVo",{"memberId":"hashed"});
\ No newline at end of file
......@@ -36,6 +36,11 @@
<artifactId>liquidnet-common-cache-redis</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-kylin-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
......
package com.liquidnet.service.consumer.service.Utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.consumer.service.vo.*;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -15,14 +20,6 @@ public class KylinUtils {
@Autowired
private RedisUtil redisUtil;
public static final String USERID_BUY_INFO = "kylin:buy:userId:";
public static final String IDCARD_BUY_INFO = "kylin:buy:idCard:";
public static final String PERFORMANCE_ID = "performanceId";
public static final String TICKET_ID = "ticketId";
public static final String USE_TIME = "useTime";
public static final String PERFORMANCES = "kylin:performances:id:";
/**
* @param userId 用户id
* @param type 1新增 2修改
......@@ -34,12 +31,12 @@ public class KylinUtils {
KylinOrderListVo voItem = new KylinOrderListVo();
KylinOrderTicketVo data;
if (dataSingle == null) {
data = (KylinOrderTicketVo)redisUtil.get("kylin:order:id:" + orderId);
data = (KylinOrderTicketVo)redisUtil.get(KylinRedisConst.ORDER + orderId);
} else {
data = dataSingle;
}
BeanUtils.copyProperties(data, voItem);
List<KylinOrderListVo> redisData = (List<KylinOrderListVo>) redisUtil.get("kylin:order:list:userId:" + userId);
List<KylinOrderListVo> redisData = (List<KylinOrderListVo>) redisUtil.get(KylinRedisConst.ORDER_LIST + userId);
if(type == 1) {
redisVo.add(voItem);
if (redisData.size() > 0) {
......@@ -66,7 +63,7 @@ public class KylinUtils {
if (redisVo.size() == 0) {
vo.add(voItem);
}
redisUtil.set("kylin:order:list:userId:" + userId,vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId,vo);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
......@@ -79,7 +76,7 @@ public class KylinUtils {
vo.add(redisVo.get(i));
}
}
redisUtil.set("kylin:order:list:userId:" + userId,vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId,vo);
return true;
default:
return false;
......@@ -88,7 +85,7 @@ public class KylinUtils {
public void changeBuyInfo(String userId, String idCard, String performanceId, String ticketId, int buyCount) {
String redisKey;
KylinPerformanceVo vo = (KylinPerformanceVo) redisUtil.get(PERFORMANCES + performanceId);
KylinPerformanceVo vo = (KylinPerformanceVo) redisUtil.get(KylinRedisConst.PERFORMANCES + performanceId);
int isTrueName = vo.getIsTrueName();
int ticketType = 0;
String useTime = "";
......@@ -110,14 +107,14 @@ public class KylinUtils {
}
if (0 == isTrueName) {
redisKey = USERID_BUY_INFO + userId;
redisKey = KylinRedisConst.USERID_BUY_INFO + userId;
} else {
redisKey = IDCARD_BUY_INFO + idCard;
redisKey = KylinRedisConst.IDCARD_BUY_INFO + idCard;
}
String performanceIdKey = redisKey + ":" + PERFORMANCE_ID + ":" + performanceId;
String ticketIdKey = redisKey + ":" + TICKET_ID + ":" + ticketId;
String ticketUseTimeKey = ticketIdKey + ":" + USE_TIME;
String performanceIdKey = redisKey + ":" + KylinRedisConst.PERFORMANCE_ID + ":" + performanceId;
String ticketIdKey = redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId;
String ticketUseTimeKey = ticketIdKey + ":" + KylinRedisConst.USE_TIME;
redisUtil.set(ticketUseTimeKey, useTime);
if (buyCount > 0) {
redisUtil.incr(ticketIdKey, buyCount);
......@@ -129,13 +126,13 @@ public class KylinUtils {
redisUtil.incr(performanceIdKey, buyCount);
break;
}
if (null == redisUtil.get(redisKey + ":" + TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + TICKET_ID + ":" + item, 0);
if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
}
if (i == 0) {
count = (int) redisUtil.get(redisKey + ":" + TICKET_ID + ":" + item);
count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + TICKET_ID + ":" + item)) {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.incr(performanceIdKey, buyCount);
break;
}
......@@ -154,13 +151,13 @@ public class KylinUtils {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
if (null == redisUtil.get(redisKey + ":" + TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + TICKET_ID + ":" + item, 0);
if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
}
if (i == 0) {
count = (int) redisUtil.get(redisKey + ":" + TICKET_ID + ":" + item);
count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + TICKET_ID + ":" + item)) {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
......
......@@ -3,13 +3,15 @@ package com.liquidnet.service.consumer.service.processor;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.OrderCloseMapping;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.service.IBaseDao;
import com.liquidnet.service.consumer.service.Utils.KylinUtils;
import com.liquidnet.service.consumer.service.vo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.consumer.service.vo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
......@@ -20,10 +22,6 @@ import org.springframework.amqp.core.Message;
import javax.annotation.Resource;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
/**
* ConsumerProcessor.class
......@@ -88,10 +86,11 @@ public class ConsumerProcessor {
// 处理长sql语句
private void consumerOperationOrderClose(Message msg, Channel channel) {
ArrayList<String> mqMessage = JsonUtils.fromJson(new String(msg.getBody()), ArrayList.class);
String jsonStr = StringEscapeUtils.unescapeJava(new String(msg.getBody()));
OrderCloseMapping.orderCloseMessage mqMessage = JsonUtils.fromJson(jsonStr.substring(1,jsonStr.length()-1), OrderCloseMapping.orderCloseMessage.class);
log.debug("consumer ==> mqMessage:{}", mqMessage);
try {
mqMessage.forEach(t -> {
mqMessage.getOrderTicketIds().forEach(t -> {
String orderTicketId = t.split(",")[0];
String uid = t.split(",")[1];
KylinOrderTicketVo vo = (KylinOrderTicketVo) redisUtil.get("kylin:order:id:" + orderTicketId);
......@@ -106,7 +105,8 @@ public class ConsumerProcessor {
}
});
channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);
} catch (IOException e) {
} catch (Exception e) {
e.printStackTrace();
log.error("error:consumer sql:Channel.msg.tag:{}", msg.getMessageProperties().getDeliveryTag(), e);
}
}
......
package com.liquidnet.service.consumer.service.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class KylinOrderListVo implements Serializable {
private static final long serialVersionUID = 6554829077875538374L;
private String orderTicketsId;
private String performanceId;
private String ticketId;
private String performanceTitle;
private String performanceImg;
private String orderCode;
private String timeStart;
private String ticketTitle;
private String useStart;
private String overdueAt;
private Long restTime;
private BigDecimal priceActual;
private Integer number;
private Integer status;
private String express_number;
private String express_company;
private Integer kuaidi_status;
private String getTicketType;
private String createdAt;
}
package com.liquidnet.service.consumer.service.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class KylinOrderTicketEntitiesVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1207664465164005975L;
private Integer mid;
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;
private String performanceTitle;
private String ticketTitle;
private String useStart;
private String useEnd;
private String createdAt;
private String updatedAt;
private Integer ticketsmId;
private Integer timemId;
private BigDecimal refundPrice;
private String checkType;
private String checkedAt;
private String checkUserId;
private LocalDateTime changeDate;
private static final KylinOrderTicketEntitiesVo obj = new KylinOrderTicketEntitiesVo();
public static KylinOrderTicketEntitiesVo getNew() {
try {
return (KylinOrderTicketEntitiesVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinOrderTicketEntitiesVo();
}
}
}
package com.liquidnet.service.consumer.service.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class KylinOrderTicketVo implements Serializable {
private Integer mid;
private static final long serialVersionUID = 5325511589667456213L;
private String orderTicketsId;
private String userId;
private String userName;
private String userMobile;
private String performanceTitle;
private String ticketTitle;
private String timeStart;
private String useStart;
private String performanceImg;
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;
private String overdueAt;
private String createdAt;
private String updatedAt;
private LocalDateTime changeDate;
private Integer isTrueName;
private String noticeImage;
private String notice;
private Integer ticketType;
private String fieldName;
private List<KylinOrderTicketEntitiesVo> entitiesVoList;
}
package com.liquidnet.service.consumer.service.vo;
import lombok.Data;
import java.util.List;
@Data
public class KylinPerformanceVo {
private Integer mid;
private String performancesId;
private String title;
private String imgPoster;
private Integer payCountdownMinute;
private String approvalUrl;
private int type;
private String timeStart;
private String timeEnd;
private String stopSellTime;
private String price;
private String sellTime;
private String sellMemberTime;
private Integer cityId;
private String cityName;
private String fieldId;
private String fieldName;
private String longitude;
private String latitude;
private String diffDistance;
private String projectId;
private String roadShowId;
private String details;
private String noticeImage;
private Integer isRecommend;
private Integer appStatus;
private Integer statusSell;
private Integer isMember;
private Integer isLackRegister;
private Integer isTrueName;
private Integer limitCount;
private Integer limitCountMember;
private Integer isExclusive;
private Integer isDiscount;
private Integer isAdvance;
private Integer sysDamai;
private String message;
private String notice;
private Integer isShow;
private List<KylinTicketTimesVo> ticketTimeList;
}
package com.liquidnet.service.consumer.service.vo;
import lombok.Data;
import java.util.List;
@Data
public class KylinTicketTimesVo {
private Integer mid;
private String ticketTimesId;
private String title;
private Integer type;
private String performanceId;
private String timeId;
private String useStart;
private String useEnd;
private List<KylinTicketVo> ticketList;
}
package com.liquidnet.service.consumer.service.vo;
import com.liquidnet.commons.lang.util.DateUtil;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class KylinTicketVo {
private Integer mid;
private String ticketsId;
private String timeId;
private String title;
private Integer type;
private BigDecimal price;
private BigDecimal priceExpress;
private BigDecimal memberPrice;
private BigDecimal discountPrice;
private String describes;
private String describeExpress;
private String describeElectronic;
private String timeStart;
private String timeEnd;
private String memberTimeStart;
private String timeEndExpress;
private String useStart;
private String useEnd;
private Integer saleRemindMinute;
private Integer isStudent;
private Integer isElectronic;
private Integer isExpress;
private Integer sysDamai;
private Integer counts;
private Integer status;
private Integer statusExchange;
private Integer isLackRegister;
private Integer expressType;
private Integer isTrueName;
private Integer limitCount;
private Integer limitCountMember;
private Integer isExclusive;
private Integer isMember;
private Integer isMemberStatus;
private Integer isAgent;
private Integer isShowCode;
private String qrCodeShowTime;
private Integer advanceMinuteMember;
}
use prod_ln_scene;
#创建集合
db.createCollection("KylinOrderTicketVo");
db.createCollection("KylinOrderTicketEntitiesVo");
#创建索引
db.KylinOrderTicketVo.createIndex({orderTicketsId:"hashed"});
db.KylinOrderTicketVo.createIndex({orderCode:"hashed"});
db.KylinOrderTicketVo.createIndex({userId:"hashed"});
db.KylinOrderTicketEntitiesVo.createIndex({orderTicketEntitiesId:"hashed"});
db.KylinOrderTicketEntitiesVo.createIndex({orderId:"hashed"});
#创建分片
sh.enableSharding("prod_ln_scene");
sh.shardCollection("prod_ln_scene.KylinOrderTicketVo",{"orderTicketsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderTicketEntitiesVo",{"orderTicketEntitiesId":"hashed"});
\ No newline at end of file
......@@ -33,4 +33,11 @@ public class DataController {
return ResponseDto.success(result);
}
@PostMapping("roadShow")
@ApiOperation("巡演数据迁移")
public ResponseDto<Boolean> roadShow() {
Boolean result = data.roadShow();
return ResponseDto.success(result);
}
}
......@@ -11,10 +11,7 @@ import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.liquidnet.service.kylin.service.IKylinOrderTicketRelationsService;
import com.liquidnet.service.kylin.service.IKylinOrderTicketStatusService;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
import com.liquidnet.service.kylin.service.*;
import com.liquidnet.service.kylin.timerTask.PerformanceVoTask;
import com.liquidnet.service.kylin.utils.DataUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -60,6 +57,9 @@ public class DataImpl {
@Autowired
private IKylinOrderTicketEntitiesService kylinOrderTicketEntitiesService;
@Autowired
private IKylinRoadShowsService kylinRoadShowsService;
@Autowired
private DataUtils dataUtils;
@Autowired
......@@ -197,7 +197,7 @@ public class DataImpl {
performancePartnerVo.setDetails(performances.getDetails());
performancePartnerVo.setApprovalUrl(performances.getApprovalUrl());
performancePartnerVo.setPayCountdownMinute(5);
performancePartnerVo.setNoticeIds(new ArrayList<String>(){{
performancePartnerVo.setNoticeIds(new ArrayList<String>() {{
add("1");
add("3");
add("7");
......@@ -457,7 +457,7 @@ public class DataImpl {
con = DriverManager.getConnection(url, username, password); //获取连接
String sqlAllCount = "select count(0) as 'allCount' from order_tickets where performance_id > 5721 and status != 2 and created_at like '2021-" + month + "%'"; //设置的预编译语句格式
// String sqlAllCount = "select count(0) as 'allCount' from order_tickets where performance_id = "+month + " and status != 2 and status !=-1"; //设置的预编译语句格式
System.out.println(" SQL COUNT = "+sqlAllCount);
System.out.println(" SQL COUNT = " + sqlAllCount);
pstmt = con.prepareStatement(sqlAllCount);
ResultSet allCount = pstmt.executeQuery();
int allCountResult = 0;//共多少条
......@@ -478,7 +478,7 @@ public class DataImpl {
//订单
String sql = "select * from order_tickets where performance_id > 5721 and status != 2 and created_at like '2021-" + month + "%' limit " + count * page + " ," + count; //设置的预编译语句格式
// String sql = "select * from order_tickets where performance_id = "+month +" and status != 2 limit " + count * page + " ," + count;
System.out.println(" SQL DATA = "+sql);
System.out.println(" SQL DATA = " + sql);
pstmt = con.prepareStatement(sql);
ResultSet orderData = pstmt.executeQuery();
while (orderData.next()) {
......@@ -506,14 +506,14 @@ public class DataImpl {
}
//退款
String refundSql = "select refund_table_id,sum(refund_number) as 'refund_number',sum(refund_price) as 'refund_price' from order_refunds where refund_table = 'order_ticket_entities' and order_id = " + orderData.getInt("id")+" group by refund_table_id"; //设置的预编译语句格式
String refundSql = "select refund_table_id,sum(refund_number) as 'refund_number',sum(refund_price) as 'refund_price' from order_refunds where refund_table = 'order_ticket_entities' and order_id = " + orderData.getInt("id") + " group by refund_table_id"; //设置的预编译语句格式
pstmt = con.prepareStatement(refundSql);
int refundNumber = 0;
BigDecimal refundPrice = new BigDecimal("0.00");
ResultSet refundData = pstmt.executeQuery();
while (refundData.next()) {
refundNumber+=refundData.getInt("refund_number");
refundPrice=refundPrice.add(refundData.getBigDecimal("refund_price"));
refundNumber += refundData.getInt("refund_number");
refundPrice = refundPrice.add(refundData.getBigDecimal("refund_price"));
}
//演出
......@@ -526,9 +526,9 @@ public class DataImpl {
String notice = "";
while (performanceData.next()) {
performanceTimeStart = DateUtil.Formatter.yyyyMMddHHmmss.format(DateUtil.Formatter.yyyyMMddHHmmssS.parse(performanceData.getTimestamp("time_start").toString()));
performanceImg=performanceData.getString("img_poster");
isTrueName=performanceData.getString("need_id_card").equals("yes")?1:0;
notice=performanceData.getString("notice");
performanceImg = performanceData.getString("img_poster");
isTrueName = performanceData.getString("need_id_card").equals("yes") ? 1 : 0;
notice = performanceData.getString("notice");
}
orderTickets.setOrderTicketsId(orderData.getInt("id") + "");
......@@ -661,7 +661,7 @@ public class DataImpl {
while (enterData.next()) {
KylinOrderTicketEntitiesVo entitiesVo = new KylinOrderTicketEntitiesVo();
orderTicketEntities.setOrderTicketEntitiesId(enterData.getInt("id")+"");
orderTicketEntities.setOrderTicketEntitiesId(enterData.getInt("id") + "");
orderTicketEntities.setOrderId(orderTickets.getOrderTicketsId());
orderTicketEntities.setTicketId(enterData.getInt("ticket_id") + "");
orderTicketEntities.setUserId(enterData.getInt("user_id") + "");
......@@ -739,7 +739,7 @@ public class DataImpl {
kylinOrderTicketEntitiesService.saveBatch(orderEntitiesList);
mongoTemplate.insert(orderListVo, KylinOrderTicketVo.class.getSimpleName());
mongoTemplate.insert(orderEntitiesListVo,KylinOrderTicketEntitiesVo.class.getSimpleName());
mongoTemplate.insert(orderEntitiesListVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
orderData.last();
rowCount += orderData.getRow();
......@@ -766,4 +766,51 @@ public class DataImpl {
}
}
}
public boolean roadShow() {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
PreparedStatement pstmt = null; //使用预编译语句
ResultSet rs = null; //获取的结果集
try {
ArrayList<KylinRoadShows> roadShowsList = new ArrayList();
Class.forName(driverClassName); //执行驱动
con = DriverManager.getConnection(url, username, password); //获取连接
String sql = "select rs.id,rs.title,rs.img_poster,rs.created_at,rs.updated_at,count(p.id) as 'count' from road_shows as rs left join performances as p on p.road_show_id = rs.id where p.id > 5721 group by rs.id,rs.title having count>0";
pstmt = con.prepareStatement(sql);
ResultSet resultData = pstmt.executeQuery();
//演出数据
while (resultData.next()) {
KylinRoadShows roadShows = new KylinRoadShows();
roadShows.setRoadShowsId(resultData.getInt("id")+"");
roadShows.setTitle(resultData.getString("title"));
roadShows.setImgPoster(resultData.getString("img_poster"));
roadShows.setStatus(1);
roadShows.setComment("");
roadShows.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("created_at").toString()));
if (null != resultData.getTimestamp("updated_at")) {
roadShows.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("updated_at").toString()));
}
roadShowsList.add(roadShows);
}
return true;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
//关闭资源,倒关
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (con != null) con.close(); //必须要关
} catch (Exception e) {
}
}
}
}
......@@ -8,10 +8,7 @@ import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.UserPathDto;
import com.liquidnet.service.base.*;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderScriptDto;
......@@ -996,7 +993,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
}
}
//计算 倒计时
if (orderTicketVo.getStatus() == KylinTableStatusConst.ORDER_STATUS0) {
if (orderTicketVo.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) {
vo.setRestTime(DateUtil.intervalSeconds(
DateUtil.parse(orderTicketVo.getOverdueAt(), "yyyy-MM-dd HH:mm:ss"),
DateUtil.parse(DateUtil.getNowTime(), "yyyy-MM-dd HH:mm:ss")
......@@ -1068,16 +1065,17 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
KylinOrderTickets orderTickets = new KylinOrderTickets();
orderTickets.setUpdatedAt(now);
orderTicketsMapper.update(orderTickets, new UpdateWrapper<KylinOrderTickets>().in("order_tickets_id", orderStr));
orderTicketsMapper.update(orderTickets, new UpdateWrapper<KylinOrderTickets>().in("order_tickets_id", orderIdList));
KylinOrderTicketStatus orderTicketStatus = new KylinOrderTicketStatus();
orderTicketStatus.setStatus(2);
orderTicketStatus.setUpdatedAt(now);
orderTicketStatusMapper.update(orderTicketStatus, new UpdateWrapper<KylinOrderTicketStatus>().in("order_id", orderStr));
;
orderTicketStatusMapper.update(orderTicketStatus, new UpdateWrapper<KylinOrderTicketStatus>().in("order_id", orderIdList));
KylinOrderTicketRelations orderTicketRelations = new KylinOrderTicketRelations();
orderTicketRelations.setUpdatedAt(now);
orderTicketRelationsMapper.update(orderTicketRelations, new UpdateWrapper<KylinOrderTicketRelations>().in("order_id", orderStr));
;
orderTicketRelationsMapper.update(orderTicketRelations, new UpdateWrapper<KylinOrderTicketRelations>().in("order_id", orderIdList));
// LinkedList<String> sqls = new LinkedList();
// sqls.add("UPDATE kylin_order_tickets SET updated_at = '" + now + "' WHERE order_tickets_id in (" + orderStr + ") ");
// sqls.add("UPDATE kylin_order_ticket_status SET `status` = 2,updated_at = '" + now + "' WHERE order_id in (" + orderStr + ") ");
......@@ -1108,9 +1106,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
}
int forSize = 500;
int forCount = orderDataList.size() % forSize == 0 ? orderDataList.size() % forSize : (orderDataList.size() % forSize) + 1;
int forCount = orderDataList.size() % forSize == 0 ? orderDataList.size() / forSize : (orderDataList.size() / forSize) + 1;
for (int i = 0; i < forCount; i++) {
ArrayList<String> mqList = new ArrayList<>();
LinkedList<String> mqList = new LinkedList<>();
for (int y = 0; y < forSize; y++) {
try {
String t = orderDataList.get(i * 500 + y);
......@@ -1119,25 +1117,25 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
break;
}
}
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, JsonUtils.toJson(mqList));
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, OrderCloseMapping.get(mqList));
}
// 线程循环更改限购
// kylinThreadService.checkOrderTimeThread(orderDataList);
// Thread thread = new Thread(() -> {
// //redis 列表
orderDataList.forEach(t -> {
String orderTicketId = t.split(",")[0];
String uid = t.split(",")[1];
KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(orderTicketId);
vo.setStatus(2);
redisUtil.set(KylinRedisConst.ORDER + orderTicketId, vo);
mongoVoUtils.resetOrderListVo(uid, 2, orderTicketId, vo);
// redis 限购
for (int i = 0; i < vo.getEntitiesVoList().size(); i++) {
KylinOrderTicketEntitiesVo items = vo.getEntitiesVoList().get(i);
dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
}
});
// orderDataList.forEach(t -> {
// String orderTicketId = t.split(",")[0];
// String uid = t.split(",")[1];
// KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(orderTicketId);
// vo.setStatus(2);
// redisUtil.set(KylinRedisConst.ORDER + orderTicketId, vo);
// mongoVoUtils.resetOrderListVo(uid, 2, orderTicketId, vo);
// // redis 限购
// for (int i = 0; i < vo.getEntitiesVoList().size(); i++) {
// KylinOrderTicketEntitiesVo items = vo.getEntitiesVoList().get(i);
// dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
// }
// });
// });
// thread.start();
}
......
......@@ -20,6 +20,8 @@ import com.liquidnet.service.kylin.utils.MongoVoUtils;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import lombok.extern.slf4j.Slf4j;
import lombok.extern.slf4j.XSlf4j;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -38,6 +40,7 @@ import java.util.HashMap;
import java.util.List;
@Component
@Slf4j
public class PerformanceVoTask {
@Autowired
......@@ -161,12 +164,12 @@ public class PerformanceVoTask {
//演出状态
if (status == 6) {//单一票 可购买 则为可购买
appStatus = 6;
} else if (ticketCount == status10Count) {//全票结束 为结束
appStatus = 10;
} else if (ticketCount == status8Count) {//全票售罄为售罄
appStatus = 8;
} else if (ticketCount == status9Count) {//全票未开始 为未开始
appStatus = 9;
} else if (ticketCount == status10Count) {//全票结束 为结束
appStatus = 10;
}
}
}
......@@ -227,7 +230,7 @@ public class PerformanceVoTask {
kylinPerformanceMisVo.setAuditStatus(0);
return kylinPerformanceMisVo;
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
return null;
}
......@@ -380,28 +383,38 @@ public class PerformanceVoTask {
KylinPerformanceMisVo misVo = getPerformanceMisVo(performanceId);
KylinPerformanceVo mongoVo = mongoVoUtils.combinePerformanceVoData(performanceId);
if (!misVo.getTitle().equals(mongoVo.getTitle())) {
log.debug("NEED CHANGE TITLE");
return true;
} else if (!misVo.getType().equals(mongoVo.getType())) {
log.debug("NEED CHANGE TYPE");
return true;
} else if (!misVo.getTimeStart().equals(mongoVo.getTimeStart())) {
log.debug("NEED CHANGE TIMESTART");
return true;
} else if (!misVo.getTimeEnd().equals(mongoVo.getTimeEnd())) {
log.debug("NEED CHANGE TIMEEND");
return true;
} else if (!misVo.getFieldId().equals(mongoVo.getFieldId())) {
log.debug("NEED CHANGE FIELDID");
return true;
} else if (!misVo.getNotice().equals(mongoVo.getNotice())) {
log.debug("NEED CHANGE NOTICE");
return true;
} else if (!misVo.getDetails().equals(mongoVo.getDetails())) {
log.debug("NEED CHANGE DETAILS");
return true;
} else if (!misVo.getApprovalUrl().equals(mongoVo.getApprovalUrl())) {
log.debug("NEED CHANGE APPROVALURL");
return true;
} else if (!misVo.getPayCountdownMinute().equals(mongoVo.getPayCountdownMinute())) {
log.debug("NEED CHANGE PAYCOUTDOWN");
return true;
}
boolean exists = mongoTemplate.exists(Query.query(Criteria.where("status").is(-1).and("performancesId").is(performanceId)),
KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
if (exists) {
log.debug("NEED CHANGE NEW TIMES");
return true;
}
......@@ -410,20 +423,27 @@ public class PerformanceVoTask {
KylinTicketTimesVo timesVo = mongoVo.getTicketTimeList().get(i);
boolean exists2 = mongoTemplate.exists(Query.query(Criteria.where("status").is(-2).and("timesId").is(times.getTicketTimesId())), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
if (exists2) {
log.debug("NEED CHANGE NEW TICKET");
return true;
}
for (KylinTicketPartnerVo ticketPartnerVo : times.getTicket()){
for (KylinTicketVo ticketVo : timesVo.getTicketList()){
if(ticketVo.getTicketsId().equals(ticketPartnerVo.getTicketsId())){
for (KylinTicketPartnerVo ticketPartnerVo : times.getTicket()) {
for (KylinTicketVo ticketVo : timesVo.getTicketList()) {
if (ticketVo.getTicketsId().equals(ticketPartnerVo.getTicketsId())) {
if (!ticketVo.getTitle().equals(ticketPartnerVo.getTitle())) {
log.debug("NEED CHANGE TICKET TITLE");
return true;
}else if (!ticketVo.getQrCodeShowTime().equals(ticketPartnerVo.getQrCodeShowTime())) {
} else if (!ticketVo.getQrCodeShowTime().equals(ticketPartnerVo.getQrCodeShowTime())) {
log.debug("NEED CHANGE TICKET QRCODESHOWTIME");
return true;
}else if (!ticketVo.getDescribeElectronic().equals(ticketPartnerVo.getDescribeElectronic())) {
} else if (!ticketVo.getDescribeElectronic().equals(ticketPartnerVo.getDescribeElectronic())) {
log.debug("NEED CHANGE TICKET DESCRIBEELECTRONIC");
return true;
}else if (!ticketVo.getDescribeExpress().equals(ticketPartnerVo.getDescribeExpress())) {
} else if (!ticketVo.getDescribeExpress().equals(ticketPartnerVo.getDescribeExpress())) {
log.debug("NEED CHANGE TICKET DESCRIBEELEXPRESS");
return true;
}if (!ticketVo.getDescribes().equals(ticketPartnerVo.getDescribes())) {
}
if (!ticketVo.getDescribes().equals(ticketPartnerVo.getDescribes())) {
log.debug("NEED CHANGE TICKET DESCRIBES");
return true;
}
break;
......
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