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

Commit c59d80bf authored by 胡佳晨's avatar 胡佳晨

Merge branch 'dev' into test

parents 947f52c9 b2f609c7
......@@ -290,6 +290,23 @@ public abstract class DateUtil {
}
}
/**
* 比较日期
*/
public static int compareStrDayyyyMMdd(String date1, String date2) {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date1L = LocalDateTime.parse(date1, df);
LocalDateTime date2L = LocalDateTime.parse(date2, df);
if (date1L.isAfter(date2L)) {// 大于
return 1;
} else if (date1L.isBefore(date2L)) { //小于
return -1;
} else { // 相等
return 0;
}
}
/**
* 间隔天数
*
......
......@@ -171,9 +171,6 @@ public class HttpUtil {
public static void main(String[] args) {
// String result = httpGetRequest("http://10.0.129.161:9080/globalId?code=YGOL&num=2");
// JSONObject jo = JSONObject.parseObject(result);
// System.out.println(result);
Map<String,Object> header = new HashMap<String,Object>();
Map<String,Object> param = new HashMap<String,Object>();
param.put("globalId","002");
......
......@@ -4,6 +4,7 @@ public class MQConst {
public enum AdamQueue {
SMS_NOTICE("adam:stream:rk.sms.notice", "group.sms.sender", "短信通知"),
// SMS_SPREAD("adam:stream:rk.sms.spread", "group.sms.sender", "短信推广"),
SQL_UREGISTER("adam:stream:rk.sql.uregister", "group.sql.ucenter", "用户注册"),
SQL_UCENTER("adam:stream:rk.sql.ucenter", "group.sql.ucenter", "用户中心"),
SQL_UMEMBER("adam:stream:rk.sql.umember", "group.sql.ucenter", "购买会员"),
......@@ -30,4 +31,41 @@ public class MQConst {
return desc;
}
}
public enum KylinQueue {
SMS_NOTICE("adam:stream:rk.sms.notice", "group.sms.sender", "短信通知"),
// SMS_SPREAD("adam:stream:rk.sms.spread", "group.sms.sender", "短信推广"),
SQL_PERFORMANCE_LACK("kylin:stream:rk.performance.lack", "group.performance.lack", "缺票登记"),
SQL_ORDER_CREATE("kylin:stream:rk.order.create", "group.order.create", "创建订单"),
SQL_ORDER_AGAIN("kylin:stream:rk.order.again", "group.order.again", "订单再次支付"),
SQL_ORDER_CLOSE("kylin:stream:rk.order.close", "group.order.close", "订单关闭"),
SQL_ORDER_PAY("kylin:stream:rk.order.pay", "group.order.pay", "订单支付"),
SQL_ORDER_REFUND("kylin:stream:rk.order.refund", "group.order.refund", "订单申请退款"),
SQL_ORDER_WITHDRAW("kylin:stream:rk.order.withdraw", "group.order.withdraw", "订单申请撤回"),
SQL_ORDER_OVERTIME_REFUND("kylin:stream:rk.order.overtime.refund", "group.order.overtime.refund", "超时支付申请退款"),
SQL_STATION("kylin:stream:rk.station", "group.station", "验票更新"),
;
private final String key;
private final String group;
private final String desc;
KylinQueue(String key, String group, String desc) {
this.key = key;
this.group = group;
this.desc = desc;
}
public String getKey() {
return key;
}
public String getGroup() {
return group;
}
public String getDesc() {
return desc;
}
}
}
......@@ -32,6 +32,10 @@ liquidnet:
host: 39.106.122.201
port: 6379
password: 3Xa%8p
dragon:
host: 39.106.122.201
port: 6379
password: 3Xa%8p
mongodb:
host: 39.106.122.201:27017
port: 27017
......
......@@ -32,6 +32,10 @@ liquidnet:
host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380
password: PO@B!Iud32
dragon:
host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380
password: PO@B!Iud32
mongodb:
host: s-2zef656730e5a1d4-pub.mongodb.rds.aliyuncs.com:3717,s-2ze49872ed6aeb14-pub.mongodb.rds.aliyuncs.com:3717
port: 3717
......
......@@ -3,7 +3,7 @@ liquidnet:
updating:
switch: false
info:
port: 9007
port: 9997
context:
# context: /service-consumer
name: liquidnet-service-consumer-dragon
......
......@@ -3,7 +3,7 @@ liquidnet:
updating:
switch: false
info:
port: 9007
port: 9997
context:
# context: /service-consumer
name: liquidnet-service-consumer-dragon
......
......@@ -70,9 +70,9 @@ spring:
acknowledge-mode: manual
redis:
database: 15
port: ${liquidnet.redis.port}
host: ${liquidnet.redis.host}
password: ${liquidnet.redis.password}
port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password}
lettuce:
pool:
max-active: 8
......
package com.liquidnet.service.consumer.adam.service.config;
package com.liquidnet.service.consumer.adam.config;
import com.liquidnet.service.consumer.adam.service.receiver.ConsumerAdamSmsNoticeRdsReceiver;
import com.liquidnet.service.consumer.adam.receiver.ConsumerAdamSmsNoticeRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
......
package com.liquidnet.service.consumer.adam.service.config;
package com.liquidnet.service.consumer.adam.config;
import com.liquidnet.service.consumer.adam.service.receiver.ConsumerAdamUCenterRdsReceiverSql;
import com.liquidnet.service.consumer.adam.service.receiver.ConsumerAdamUMemberRdsReceiverSql;
import com.liquidnet.service.consumer.adam.service.receiver.ConsumerAdamURegisterRdsReceiverSql;
import com.liquidnet.service.consumer.adam.receiver.ConsumerAdamSqlUCenterRdsReceiver;
import com.liquidnet.service.consumer.adam.receiver.ConsumerAdamSqlUMemberRdsReceiver;
import com.liquidnet.service.consumer.adam.receiver.ConsumerAdamSqlURegisterRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
......@@ -22,11 +22,11 @@ import static com.liquidnet.service.base.constant.MQConst.*;
@Configuration
public class ConsumerAdamSqlUcenterRedisStreamConfig {
@Autowired
ConsumerAdamURegisterRdsReceiverSql consumerAdamURegisterRdsReceiver;
ConsumerAdamSqlURegisterRdsReceiver consumerAdamURegisterRdsReceiver;
@Autowired
ConsumerAdamUCenterRdsReceiverSql consumerAdamUCenterRdsReceiver;
ConsumerAdamSqlUCenterRdsReceiver consumerAdamUCenterRdsReceiver;
@Autowired
ConsumerAdamUMemberRdsReceiverSql consumerAdamUMemberRdsReceiver;
ConsumerAdamSqlUMemberRdsReceiver consumerAdamUMemberRdsReceiver;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
......
package com.liquidnet.service.consumer.adam.service.receiver;
package com.liquidnet.service.consumer.adam.receiver;
import com.liquidnet.common.sms.processor.SmsProcessor;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SmsMessage;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.adam.service.IBaseDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
......
package com.liquidnet.service.consumer.adam.service.receiver;
package com.liquidnet.service.consumer.adam.receiver;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class ConsumerAdamSmsNoticeRdsReceiver extends AbstractSmsRedisReceiver {
@Override
......
package com.liquidnet.service.consumer.adam.service.receiver;
package com.liquidnet.service.consumer.adam.receiver;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class ConsumerAdamUCenterRdsReceiverSql extends AbstractSqlRedisReceiver {
public class ConsumerAdamSqlUCenterRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.AdamQueue.SQL_UCENTER.getKey();
......
package com.liquidnet.service.consumer.adam.service.receiver;
package com.liquidnet.service.consumer.adam.receiver;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class ConsumerAdamUMemberRdsReceiverSql extends AbstractSqlRedisReceiver {
public class ConsumerAdamSqlUMemberRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.AdamQueue.SQL_UMEMBER.getKey();
......
package com.liquidnet.service.consumer.adam.service.receiver;
package com.liquidnet.service.consumer.adam.receiver;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class ConsumerAdamURegisterRdsReceiverSql extends AbstractSqlRedisReceiver {
public class ConsumerAdamSqlURegisterRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.AdamQueue.SQL_UREGISTER.getKey();
......
package com.liquidnet.service.consumer.dragon.service.config;
package com.liquidnet.service.consumer.dragon.config;
import com.liquidnet.service.consumer.dragon.service.receiver.*;
import com.liquidnet.service.consumer.dragon.receiver.*;
import com.liquidnet.service.dragon.constant.DragonConstant;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.liquidnet.service.consumer.dragon.service.config;
package com.liquidnet.service.consumer.dragon.config;
import com.liquidnet.service.consumer.dragon.service.receiver.*;
import com.liquidnet.service.consumer.dragon.receiver.*;
import com.liquidnet.service.dragon.constant.DragonConstant;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.liquidnet.service.consumer.dragon.service.receiver;
package com.liquidnet.service.consumer.dragon.receiver;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
......@@ -18,7 +18,7 @@ import java.util.HashMap;
* @version V1.0
* @Description: TODO
* @class: AbstractRedisReceiver
* @Package com.liquidnet.service.consumer.dragon.service.receiver
* @Package com.liquidnet.service.consumer.dragon.receiver
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/22 20:28
*/
......
package com.liquidnet.service.consumer.kylin.service.Utils;
package com.liquidnet.service.consumer.kylin.Utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
......
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.common.sms.processor.SmsProcessor;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SmsMessage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import javax.annotation.Resource;
@Slf4j
public abstract class AbstractSmsRedisReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Resource
SmsProcessor smsProcessor;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("CONSUMER SMS[streamKey:{},messageId:{},stream:{},body:{}]",
this.getRedisStreamKey(), message.getId(), message.getStream(), message.getValue());
boolean result = this.consumerSmsSendHandler(message.getValue().get("message"));
log.debug("CONSUMER SMS RESULT:{}", result);
// 消费成功确认,消息删除和消息确认是一个事务
if (result) {
log.info("CONSUMER SMS SUCC ==> MESSAGE_ID:{}", message.getId());
try {
stringRedisTemplate.opsForStream().delete(this.getRedisStreamKey(), message.getId());
} catch (Exception e) {
log.error("CONSUMER SMS SUC ==> DEL_REDIS_QUEUE_MSG_EXCEPTION[MESSAGE_ID:{}]", message.getId(), e);
}
}
}
private boolean consumerSmsSendHandler(String msg) {
try {
SmsMessage smsMessage = JsonUtils.fromJson(msg, SmsMessage.class);
return smsProcessor.send(smsMessage.getPhone(), smsMessage.getSignName(), smsMessage.getTemplateCode(), smsMessage.getTemplateParam().toString());
} catch (Exception e) {
log.error("CONSUMER SMS FAIL ==> {}", e.getMessage(), e);
return false;
}
}
protected abstract String getRedisStreamKey();
}
\ No newline at end of file
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.OrderCloseMapping;
import com.liquidnet.service.consumer.kylin.Utils.KylinUtils;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
@Slf4j
public abstract class AbstractSqlOptOrderCloseRedisReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Autowired
StringRedisTemplate stringRedisTemplate;
@Autowired
private RedisUtil redisUtil;
@Autowired
private KylinUtils kylinUtils;
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("CONSUMER SQL[streamKey:{},messageId:{},stream:{},body:{}]",
this.getRedisStreamKey(), message.getId(), message.getStream(), message.getValue());
boolean result = this.consumerSqlOperationOrderCloseHandler(message.getValue().get("message"));
log.debug("CONSUMER SQL RESULT:{}", result);
// 消费成功确认,消息删除和消息确认是一个事务
if (result) {
log.info("CONSUMER SMS SUCC ==> MESSAGE_ID:{}", message.getId());
try {
stringRedisTemplate.opsForStream().delete(this.getRedisStreamKey(), message.getId());
} catch (Exception e) {
log.error("CONSUMER SMS SUCC ==> DEL_REDIS_QUEUE_MSG_EXCEPTION[MESSAGE_ID:{}]", message.getId(), e);
}
}
}
private boolean consumerSqlOperationOrderCloseHandler(String msg) {
try {
OrderCloseMapping.orderCloseMessage mqMessage = JsonUtils.fromJson(msg, OrderCloseMapping.orderCloseMessage.class);
for (int x = 0; x < mqMessage.getOrderTicketIds().size(); x++) {
String t = mqMessage.getOrderTicketIds().get(x);
String orderTicketId = t.split(",")[0];
String uid = t.split(",")[1];
KylinOrderTicketVo vo = kylinUtils.getOrderTicketVo(orderTicketId);
vo.setStatus(2);
redisUtil.set("kylin:order:id:" + orderTicketId, vo);
kylinUtils.resetOrderListVo(uid, 2, orderTicketId, vo);
// redis 限购
for (int i = 0; i < vo.getEntitiesVoList().size(); i++) {
KylinOrderTicketEntitiesVo items = vo.getEntitiesVoList().get(i);
kylinUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
}
}
return true;
} catch (Exception e) {
log.error("CONSUMER SMS FAIL ==> {}", e.getMessage(), e);
return false;
}
}
protected abstract String getRedisStreamKey();
}
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.service.IBaseDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
@Slf4j
public abstract class AbstractSqlRedisReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Autowired
private IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("CONSUMER SQL[streamKey:{},messageId:{},stream:{},body:{}]",
this.getRedisStreamKey(), message.getId(), message.getStream(), message.getValue());
boolean result = this.consumerSqlDaoHandler(message.getValue().get("message"));
log.debug("CONSUMER SQL RESULT:{}", result);
// 消费成功确认,消息删除和消息确认是一个事务
if (result) {
log.info("CONSUMER SMS SUCC ==> MESSAGE_ID:{}", message.getId());
try {
stringRedisTemplate.opsForStream().delete(this.getRedisStreamKey(), message.getId());
} catch (Exception e) {
log.error("CONSUMER SMS SUCC ==> DEL_REDIS_QUEUE_MSG_EXCEPTION[MESSAGE_ID:{}]", message.getId(), e);
}
}
}
private boolean consumerSqlDaoHandler(String msg) {
try {
SqlMapping.SqlMessage sqlMessage = JsonUtils.fromJson(msg, SqlMapping.SqlMessage.class);
return baseDao.batchSqls(sqlMessage.getSqls(), sqlMessage.getArgs());
} catch (Exception e) {
log.error("CONSUMER SMS FAIL ==> {}", e.getMessage(), e);
return false;
}
}
protected abstract String getRedisStreamKey();
}
\ No newline at end of file
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSmsNoticeRdsReceiver extends AbstractSmsRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.KylinQueue.SMS_NOTICE.getKey();
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlOptOrderCloseRedisReceiver extends AbstractSqlOptOrderCloseRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.KylinQueue.SQL_ORDER_CLOSE.getKey();
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlOrderAgainRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlOrderCreateRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlOrderOvertimeRefundRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlOrderPayRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlOrderRefundRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlOrderWithdrawRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlPerformanceLackRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinSqlStationRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return null;
}
}
......@@ -5,7 +5,7 @@ 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.kylin.service.Utils.KylinUtils;
import com.liquidnet.service.consumer.kylin.Utils.KylinUtils;
import com.liquidnet.service.consumer.service.IBaseDao;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
......
......@@ -11,4 +11,4 @@ liquidnet:
spring:
profiles:
include: service-consumer
include: service-consumer-kylin
......@@ -11,4 +11,4 @@ liquidnet:
spring:
profiles:
include: service-consumer
\ No newline at end of file
include: service-consumer-kylin
\ No newline at end of file
......@@ -11,4 +11,4 @@ liquidnet:
spring:
profiles:
include: service-consumer
\ No newline at end of file
include: service-consumer-kylin
\ No newline at end of file
spring:
application:
name: liquidnet-service-consumer
name: liquidnet-service-consumer-kylin
profiles:
active: dev
\ No newline at end of file
package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.entity.KylinLackRegisters;
import com.liquidnet.service.kylin.mapper.KylinLackRegistersMapper;
import com.liquidnet.service.kylin.service.IKylinLackRegistersService;
import com.liquidnet.service.kylin.utils.QueueUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -37,8 +34,7 @@ public class KylinLackRegistersServiceImpl implements IKylinLackRegistersService
lackRegisters.setUserMobile(StringUtils.defaultString(((String) token.get("mobile")), ""));
lackRegisters.setIpAddress(CurrentUtil.getCliIpAddr());
lackRegisters.setCreatedAt(LocalDateTime.now());
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_PERFORMANCE_LACK, MQConst.ROUTING_KEY_SQL_PERFORMANCE_LACK,
SqlMapping.get("kylin_lack_register.insert", lackRegisters.getInsertObj()));
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_PERFORMANCE_LACK.getKey(),SqlMapping.get("kylin_lack_register.insert", lackRegisters.getInsertObj()));
return ResponseDto.success("登记成功");
}catch (Exception e){
e.printStackTrace();
......
package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.param.KylinStationUploadParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.liquidnet.service.kylin.utils.QueueUtils;
import com.mongodb.bulk.BulkWriteResult;
......@@ -16,7 +13,6 @@ import com.mongodb.client.model.UpdateOneModel;
import com.mongodb.client.model.WriteModel;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
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.query.Criteria;
......@@ -82,8 +78,7 @@ public class KylinOrderTicketEntitiesServiceImpl implements IKylinOrderTicketEn
});
BulkWriteResult bulkWriteResult = mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).bulkWrite(list);
log.info("bulkWriteResult:{}", JsonUtils.toJson(bulkWriteResult));
queueUtils.sendSqlRabbit(MQConst.EX_LNS_SQL_STATION, MQConst.RK_SQL_STATION,
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_STATION.getKey(),
SqlMapping.get("kylin_order_ticket_entities.updateStatusByStation", paramsList));
}
}
......@@ -2,7 +2,6 @@ package com.liquidnet.service.kylin.service.impl;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
......@@ -10,6 +9,7 @@ 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.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
......@@ -29,7 +29,6 @@ import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.bson.Document;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
......@@ -538,8 +537,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
sqls.add(SqlMapping.get("kylin_order_ticket_status.withDraw"));
sqls.add(SqlMapping.get("kylin_order_ticket_entities.withDraw"));
sqls.add(SqlMapping.get("kylin_order_refund.withDraw"));
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW, MQConst.ROUTING_KEY_SQL_ORDER_WITHDRAW,
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_WITHDRAW.getKey(),
SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC));
return ResponseDto.success(true);
} catch (Exception e) {
......
package com.liquidnet.service.kylin.service.impl;
import com.alibaba.fastjson.JSON;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.mongo.*;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
......@@ -15,7 +15,6 @@ import com.mongodb.BasicDBObject;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
......@@ -189,7 +188,7 @@ public class KylinRefundsStatusServiceImpl {
kylinOrderRefunds.getRefundCate(), kylinOrderRefunds.getCreatedAt()
});
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_OVERTIME_REFUND, MQConst.ROUTING_KEY_SQL_ORDER_OVERTIME_REFUND,
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_OVERTIME_REFUND.getKey(),
SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD));
return true;
......@@ -337,8 +336,7 @@ public class KylinRefundsStatusServiceImpl {
orderRefundPic.getOrderRefundsId(), orderRefundPic.getOrderRefundsId(), orderRefundPic.getPicUrl(), orderRefundPic.getCreatedAt()
});
//TODO 生成新QUERY
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND, MQConst.ROUTING_KEY_SQL_ORDER_REFUND,
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_REFUND.getKey(),
SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD, sqlsDataE));
return kylinOrderRefunds.getOrderRefundsId();
......
......@@ -421,7 +421,6 @@ public class DataUtils {
canRefundSinglePrice = singlePrice.subtract(item.getRefundPrice() == null ? BigDecimal.valueOf(0.00) : item.getRefundPrice());
}
}
System.out.println("单票剩余未退款金额 : " + canRefundSinglePrice);
//订单锁定金额
BigDecimal orderLockPrice = new BigDecimal("0.00");
for (KylinOrderRefundsVo refundVo : kylinOrderRefundsVoBaseList) {
......@@ -435,10 +434,8 @@ public class DataUtils {
}
}
}
System.out.println("订单锁定金额 : " + orderLockPrice);
//订单可退金额
BigDecimal refundSinglePrice = canRefundSinglePrice.subtract(orderLockPrice);
System.out.println("订单可退金额 : " + refundSinglePrice);
//是否包含快递费
if (orderTicketVo.getPriceActual().subtract(orderTicketVo.getPriceExpress()).subtract(orderTicketVo.getPriceRefund()).compareTo(canRefundSinglePrice) == 0) {
refundSinglePrice = refundSinglePrice.add(orderTicketVo.getPriceExpress());
......
package com.liquidnet.service.kylin.utils;
import com.liquidnet.common.exception.LiquidnetServiceException;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
......@@ -19,27 +17,25 @@ public class QueueUtils {
StringRedisTemplate stringRedisTemplate;
/**
* 发送 SqlMapping Json 字符串
* 发送消息 - RABBIT
*
* @param exchange 交换机
* @param route 路径
* @param sqlStr Json字符串
* @param routeKey 路径
* @param jsonMsg Json字符串
*/
public void sendSqlRabbit(String exchange, String route, String sqlStr) {
rabbitTemplate.convertAndSend(exchange, route, sqlStr);
public void sendSqlRabbit(String exchange, String routeKey, String jsonMsg) {
rabbitTemplate.convertAndSend(exchange, routeKey, jsonMsg);
}
/**
* 给 REDIS 队列发送消息 数据库相关
* 发送消息 - REDIS
*
* @param redisKey RedisKey 消费Key
* @param sqlStr Json字符串
* @return
* @param streamKey Redis消费Key
* @param jsonMsg Json字符串
*/
public void sendSqlRedis(String redisKey, String sqlStr) {
HashMap<String, String> map = new HashMap<>();
map.put("message", sqlStr);
MapRecord<String, String, String> record = StreamRecords.mapBacked(map).withStreamKey(redisKey);
stringRedisTemplate.opsForStream().add(record);
public void sendMsgByRedis(String streamKey, String jsonMsg) {
HashMap<String, String> map = new HashMap<>();
map.put("message", jsonMsg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(streamKey));
}
}
......@@ -24,25 +24,25 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("refund")
public class OrderRefundOvertimeController {
@Autowired
private OrderRefundOvertimeServiceImpl orderRefundOvertimeServiceImpl;
@PostMapping("apply")
@ApiOperation("超时退款")
@ApiImplicitParams({
@ApiImplicitParam(type = "body", dataType = "String", name = "orderTicketsId", value = "订单ID", required = true),
})
public Boolean refundApply(@RequestParam() String orderTicketsId) {
try {
Boolean res = orderRefundOvertimeServiceImpl.refundApply(orderTicketsId);
if (res) {
return true;
} else {
return false;
}
} catch (Exception e) {
return false;
}
}
// @Autowired
// private OrderRefundOvertimeServiceImpl orderRefundOvertimeServiceImpl;
//
// @PostMapping("apply")
// @ApiOperation("超时退款")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "body", dataType = "String", name = "orderTicketsId", value = "订单ID", required = true),
// })
// public Boolean refundApply(@RequestParam() String orderTicketsId) {
// try {
// Boolean res = orderRefundOvertimeServiceImpl.refundApply(orderTicketsId);
// if (res) {
// return true;
// } else {
// return false;
// }
// } catch (Exception e) {
// return false;
// }
// }
}
package com.liquidnet.service.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.common.sms.constant.SmsEnum;
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.*;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.PayAgainParam;
......@@ -28,14 +27,11 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsOrderService;
import com.liquidnet.service.order.utils.*;
import com.mongodb.BasicDBObject;
import com.taobao.api.TaobaoClient;
import com.taobao.api.request.AlibabaDamaiMevOpenBatchpushticketRequest;
import com.taobao.api.response.AlibabaDamaiMevOpenBatchpushticketResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateUtils;
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.Value;
......@@ -588,7 +584,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
// 执行sql
String sqlData = SqlMapping.gets(sqls, sqlsDataB, sqlsDataC, sqlsDataD, sqlsDataA);
currentTime = System.currentTimeMillis();
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE, MQConst.ROUTING_KEY_SQL_ORDER_CREATE,
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_CREATE.getKey(),
sqlData);
currentTime = System.currentTimeMillis() - currentTime;
log.debug("MQ 发送 -> time:" + (currentTime) + "毫秒");
......@@ -711,7 +707,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
sqlsDataD.add(objectD);
String sqlData = SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD);
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_AGAIN, MQConst.ROUTING_KEY_SQL_ORDER_AGAIN, sqlData);
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_AGAIN.getKey(), sqlData);
log.info(UserPathDto.setData("再次支付", payAgainParam, payResultVo.getData()));
return ResponseDto.success(payResultVo.getData());
}
......@@ -772,10 +768,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (orderTicketData.getStatus() == 2) {
orderUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null);
log.error("订单号 {} 的订单超时支付", syncOrderParam.getOrderCode());
orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId());
log.error("订单号 {} 的订单超时支付", syncOrderParam.getOrderCode());
orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId(),syncOrderParam.getPaymentId());
} else if (orderTicketData.getStatus() == 3 || orderTicketData.getStatus() == 4) {
log.error("订单号 {} 的订单正在退款 或者已退款", syncOrderParam.getOrderCode());
log.error("订单号 {} 的订单正在退款 或者已退款", syncOrderParam.getOrderCode());
} else {
orderTickets.setOrderTicketsId(orderTicketData.getOrderTicketsId());
orderTickets.setPaymentType(syncOrderParam.getPaymentType());
......@@ -833,7 +829,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
ObjectUtil.cloneBasicDBObject().append("$set", mongoConverter.convertToMongoType(orderTicketEntitiesVo))
);
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_PAY, MQConst.ROUTING_KEY_SQL_ORDER_PAY,
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_PAY.getKey(),
SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD));
//生成vo redis
......@@ -867,12 +863,11 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
adTemplate = SmsEnum.ADTemplate.SMS_181490473;
} else if (orderTicketData.getGetTicketType().equals("electronic")) {
adTemplate = ticketData.getIsShowCode() == 1 ? SmsEnum.ADTemplate.SMS_171358560 : SmsEnum.ADTemplate.SMS_181500419;
}
if (null != adTemplate) {
queueUtils.sendSqlRabbit(MQConst.EX_LNS_SMS_SENDER, MQConst.RK_SMS_NOTICE,
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SMS_NOTICE.getKey(),
SmsMessage.builder().setPhone(orderTicketData.getUserMobile())
.setSignName(SmsEnum.ADSignName.M02.getVal())
.setTemplateCode(adTemplate.name())
......
package com.liquidnet.service.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderRefundEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderRefundPicVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
......@@ -19,10 +18,8 @@ import com.liquidnet.service.order.utils.ObjectUtil;
import com.liquidnet.service.order.utils.OrderUtils;
import com.liquidnet.service.order.utils.QueueUtils;
import com.mongodb.BasicDBObject;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
......@@ -61,7 +58,7 @@ public class KylinRefundsStatusServiceImpl {
public Boolean orderTicketRefunding(
KylinOrderTicketVo orderInfo, String orderTicketsId,
BigDecimal RefundPriceExpress,
List<String> ticketEntityIds, List<BigDecimal> entitiesPrice
List<String> ticketEntityIds, List<BigDecimal> entitiesPrice,String paymentId
) {
if (CollectionUtil.isEmpty(ticketEntityIds)) {
return false;
......@@ -179,11 +176,21 @@ public class KylinRefundsStatusServiceImpl {
LinkedList<String> sqls = ObjectUtil.cloneLinkedListStr();
LinkedList<Object[]> sqlsDataA = ObjectUtil.cloneLinkedListObj();
LinkedList<Object[]> sqlsDataC = ObjectUtil.cloneLinkedListObj();
LinkedList<Object[]> sqlsDataE = ObjectUtil.cloneLinkedListObj();
sqls.add(SqlMapping.get("kylin_order_ticket_status.overtimeRefund"));
sqls.add(SqlMapping.get("kylin_order_ticket_entities.overtimeRefund"));
sqls.add(SqlMapping.get("kylin_order_refund.overtimeRefund"));
sqls.add(SqlMapping.get("kylin_order_refund_entities.overtimeRefund"));
sqls.add(SqlMapping.get("kylin_order_tickets.overtimeRefund"));
Object[] objectE = ObjectUtil.cloneObjectsArray();
objectE[0]=paymentId;
objectE[1]=orderStatusTable.getUpdatedAt();
objectE[2]=orderInfo.getOrderTicketsId();
objectE[3]=orderInfo.getChangeDate();
objectE[4]=orderInfo.getChangeDate();
sqlsDataE.add(objectE);
Object[] objectA = ObjectUtil.cloneObjectsArray();
objectA[0]=orderStatusTable.getStatus();
......@@ -209,8 +216,8 @@ public class KylinRefundsStatusServiceImpl {
objectC[12]=kylinOrderRefunds.getCreatedAt();
sqlsDataC.add(objectC);
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_OVERTIME_REFUND, MQConst.ROUTING_KEY_SQL_ORDER_OVERTIME_REFUND,
SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD));
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_OVERTIME_REFUND.getKey(),
SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD,sqlsDataE));
return true;
}
......
......@@ -34,7 +34,7 @@ public class OrderRefundOvertimeServiceImpl implements IKylinOrderRefundsService
@Autowired
private DataUtils dataUtils;
public Boolean refundApply(String orderTicketsId) {
public Boolean refundApply(String orderTicketsId,String paymentId) {
KylinOrderTicketVo orderInfo = dataUtils.getOrderTicketVo(orderTicketsId);
// 快递费 未进行判断
BigDecimal RefundPriceExpress = orderInfo.getPriceExpress();
......@@ -57,7 +57,7 @@ public class OrderRefundOvertimeServiceImpl implements IKylinOrderRefundsService
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding(
orderInfo, orderTicketsId,
RefundPriceExpress,
ticketEntityIds, entitiesPrice
ticketEntityIds, entitiesPrice,paymentId
);
if (res) {
// 超时直接退还库存
......
......@@ -29,16 +29,14 @@ public class QueueUtils {
}
/**
* 给 REDIS 队列发送消息 数据库相关
* 发送消息 - REDIS
*
* @param redisKey RedisKey 消费Key
* @param sqlStr Json字符串
* @return
* @param streamKey Redis消费Key
* @param jsonMsg Json字符串
*/
public void sendSqlRedis(String redisKey, String sqlStr) {
HashMap<String, String> map = ObjectUtil.cloneHashMapStringAndString();
map.put("message", sqlStr);
MapRecord<String, String, String> record = StreamRecords.mapBacked(map).withStreamKey(redisKey);
stringRedisTemplate.opsForStream().add(record);
public void sendMsgByRedis(String streamKey, String jsonMsg) {
HashMap<String, String> map = new HashMap<>();
map.put("message", jsonMsg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(streamKey));
}
}
......@@ -46,9 +46,11 @@ kylin_order_refund.withDraw=UPDATE kylin_order_refunds SET status = ? ,updated_a
# ------------------------超时支付申请退款----------------------------
kylin_order_ticket_status.overtimeRefund=UPDATE kylin_order_ticket_status SET status = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?)
kylin_order_tickets.overtimeRefund=UPDATE kylin_order_tickets SET payment_id = ? ,updated_at = ? WHERE order_tickets_id = ? and (updated_at <= ? or created_at = ?)
kylin_order_ticket_entities.overtimeRefund=UPDATE kylin_order_ticket_entities SET is_payment = ? ,updated_at = ? WHERE order_ticket_entities_id = ? and (updated_at <= ? or created_at = ?)
kylin_order_refund.overtimeRefund=INSERT INTO kylin_order_refunds (order_refunds_id,order_tickets_id,order_refund_code,price,price_express,status,type,applicant_id,applicant_name,applicant_at,reason,refund_cate,created_at) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_refund_entities.overtimeRefund=INSERT INTO kylin_order_refund_entities (order_refunds_entities_id,order_refunds_id,refund_price,order_ticket_entities_id,created_at) VALUES(?,?,?,?,?)
......@@ -2,9 +2,9 @@ package com.liquidnet.service.platform.service.impl.kylin;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.OrderCloseMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderScriptDto;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
......@@ -57,7 +57,6 @@ public class DMCheckOrderTimeImpl extends ServiceImpl<KylinOrderTicketsMapper, K
private KylinOrderTicketRelationsMapper orderTicketRelationsMapper;
public boolean checkOrderTime(String userId) {
String lock = "order_lock:checkOrderTime:" + userId;
List<OrderScriptDto> dtoData = orderTicketsMapper.orderScriptDto(userId);
LocalDateTime now = LocalDateTime.now();
Long currentTime = System.currentTimeMillis();
......@@ -137,7 +136,7 @@ public class DMCheckOrderTimeImpl extends ServiceImpl<KylinOrderTicketsMapper, K
}
}
log.debug("MQLIST SIZE = " + mqList.size());
queueUtils.sendSqlRabbit(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, OrderCloseMapping.get(mqList));
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_ORDER_CLOSE.getKey(), OrderCloseMapping.get(mqList));
}
}
return true;
......
......@@ -460,7 +460,6 @@ 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 status != -1 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);
pstmt = con.prepareStatement(sqlAllCount);
ResultSet allCount = pstmt.executeQuery();
int allCountResult = 0;//共多少条
......@@ -482,7 +481,6 @@ public class DataImpl {
//订单
String sql = "select * from order_tickets where performance_id > 5721 and status != 2 and status != -1 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);
pstmt = con.prepareStatement(sql);
ResultSet orderData = pstmt.executeQuery();
while (orderData.next()) {
......@@ -554,6 +552,7 @@ public class DataImpl {
orderTickets.setPriceVoucher(orderData.getBigDecimal("price_voucher"));
orderTickets.setPriceActual(orderData.getBigDecimal("price_actual"));
orderTickets.setPriceExpress(orderData.getBigDecimal("price_express"));
orderTickets.setPaymentId(orderData.getString("in_pay_code"));
orderTickets.setPriceRefund(refundPrice);
orderTickets.setRefundNumber(refundNumber);
......
......@@ -306,6 +306,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
return ResponseDto.success("保存成功");
}
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20115));
}
}
......@@ -542,6 +543,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20109));
}
}
......@@ -576,6 +578,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
}
return performancePartnerVo.getPerformancesId();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
......@@ -666,6 +669,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
return ResponseDto.failure(ErrorMapping.get(20116));
}
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20117));
}
}
......
......@@ -239,7 +239,6 @@ public class DataUtils {
e.printStackTrace();
}
} else {
System.out.println("创建Vo异常");
}
}
......
......@@ -39,9 +39,6 @@ public class OrderUtils {
} else {
integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
}
System.out.println("integers PERFORMANCE= " + integers[0]);
System.out.println("integers TICKETS= " + integers[1]);
return judgeMemberType(performanceLimitCount, performanceMemberLimitCount, ticketLimitCount, ticketMemberLimitCount, memberType, integers[0], integers[1]);
}
......
......@@ -28,17 +28,16 @@ public class QueueUtils {
rabbitTemplate.convertAndSend(exchange, route, sqlStr);
}
/**
* 给 REDIS 队列发送消息 数据库相关
* 发送消息 - REDIS
*
* @param redisKey RedisKey 消费Key
* @param sqlStr Json字符串
* @return
* @param streamKey Redis消费Key
* @param jsonMsg Json字符串
*/
public void sendSqlRedis(String redisKey, String sqlStr) {
public void sendMsgByRedis(String streamKey, String jsonMsg) {
HashMap<String, String> map = new HashMap<>();
map.put("message", sqlStr);
MapRecord<String, String, String> record = StreamRecords.mapBacked(map).withStreamKey(redisKey);
stringRedisTemplate.opsForStream().add(record);
map.put("message", jsonMsg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(streamKey));
}
}
......@@ -27,9 +27,5 @@ public class SweetConstant {
public String getMessage() {
return message;
}
public String getMessageByCode(String code) {
return ManualPosition.valueOf(code).getMessage();
}
}
}
package com.liquidnet.service.sweet.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.entity.SweetRichtext;
import com.liquidnet.service.sweet.entity.SweetStage;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "小程序")
@RestController
@RequestMapping("/sweet-applet")
public class SweetAppletController {
@Autowired
private RedisDataUtils redisDataUtils;
@GetMapping("timeSelect")
@ApiOperation("场次选择")
public ResponseDto<List<SweetManualAppletDto>> timeSelect() {
return ResponseDto.success(redisDataUtils.getPushList());
}
@GetMapping("details")
@ApiOperation("详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
})
public ResponseDto<SweetManualAppletDto> details(@RequestParam(defaultValue = "1") String manualId) {
return ResponseDto.success(redisDataUtils.getAppletPerformance(manualId));
}
@GetMapping("notify")
@ApiOperation("通知")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
})
public ResponseDto<List<SweetManualNotify>> notify(@RequestParam(defaultValue = "1") String manualId) {
return ResponseDto.success(redisDataUtils.getNotifyRedisData(manualId));
}
@GetMapping("tags")
@ApiOperation("标签")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
})
public ResponseDto<List<String>> tag(@RequestParam(defaultValue = "1") String manualId) {
return ResponseDto.success(redisDataUtils.getTagRedisData(manualId));
}
@GetMapping("timeList")
@ApiOperation("时间表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "dateTime", value = "时间 全部传 \"\"", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "stage", value = "舞台 全部传 \"\"", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isSign", value = "是否签名(1是0否)", required = true),
})
public ResponseDto<SweetManualArtistList2Dto> timeList(@RequestParam(defaultValue = "1") String manualId,
@RequestParam(defaultValue = "2021-12-01") String dateTime,
@RequestParam(defaultValue = "测试舞台") String stage,
@RequestParam(defaultValue = "isSign") Integer isSign) {
SweetManualArtistList2Dto data = redisDataUtils.getTimeList(manualId, dateTime);
List<SweetManualArtistListDto> artistData = data.getData();
List<SweetManualArtistListDto> returnArtist = data.getData();
for (SweetManualArtistListDto item : artistData) {
boolean isSave = false;
if (isSign == 1) {
if (item.getSignatureStart() != null) {
//保留
isSave = true;
}
}
if (!dateTime.isEmpty()) {
if (item.getPerformanceStart().contains(dateTime)) {
//保留
isSave = true;
}
}
if (!stage.isEmpty()) {
if (item.getTitle().equalsIgnoreCase(stage)) {
//保留
isSave = true;
}
}
if (isSave) {
returnArtist.add(item);
}
}
data.setData(returnArtist);
return ResponseDto.success(data);
}
@GetMapping("richText")
@ApiOperation("富文本")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "type", value = "类型 (1签售时间 2现场地图 3官方大巴 4公共交通 5自驾导航坐标 6官方支持 7观众须知 8防疫指南 9观演攻略)", required = true),
})
public ResponseDto<SweetRichtext> richText(@RequestParam(defaultValue = "1") String manualId,
@RequestParam(defaultValue = "1") String type) {
return ResponseDto.success(redisDataUtils.getRichTextRedisData(manualId, type));
}
@GetMapping("artistDetails")
@ApiOperation("艺人详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "type", value = "类型 (1签售时间 2现场地图 3官方大巴 4公共交通 5自驾导航坐标 6官方支持 7观众须知 8防疫指南 9观演攻略)", required = true),
})
public ResponseDto<SweetRichtext> artistDetails(@RequestParam(defaultValue = "1") String manualId,
@RequestParam(defaultValue = "1") String type) {
return ResponseDto.success(redisDataUtils.getRichTextRedisData(manualId, type));
}
}
......@@ -58,7 +58,7 @@ public class SweetArtistsController {
return sweetArtistsService.add(picUrl, name, pinyin, describe);
}
@PostMapping("detail")
@GetMapping("detail")
@ApiOperation("艺人详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "artistsId", value = "艺人Id", required = true),
......
......@@ -12,11 +12,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* <p>
......@@ -56,7 +52,7 @@ public class SweetManualArtistsController {
return sweetManualArtistsService.details(manualRelationId);
}
@GetMapping("add")
@PostMapping("add")
@ApiOperation("宣传手册艺人添加")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "手册id", required = true),
......@@ -77,7 +73,7 @@ public class SweetManualArtistsController {
return sweetManualArtistsService.add(manualId, artistId, stageId, performanceStart, performanceEnd, signatureStart, signatureEnd);
}
@GetMapping("change")
@PostMapping("change")
@ApiOperation("宣传手册艺人修改")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualRelationId", value = "手册艺人id", required = true),
......@@ -98,7 +94,7 @@ public class SweetManualArtistsController {
return sweetManualArtistsService.change(manualRelationId, artistId, stageId, performanceStart, performanceEnd, signatureStart, signatureEnd);
}
@GetMapping("delete")
@DeleteMapping("delete")
@ApiOperation("宣传手册艺人删除")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualRelationId", value = "手册艺人id", required = true)
......
......@@ -12,11 +12,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* <p>
......@@ -47,7 +43,7 @@ public class SweetManualController {
return sweetManualService.getManualList(page, size, name);
}
@GetMapping("changeRelease")
@PostMapping("changeRelease")
@ApiOperation("修改是否发布")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "Integer", name = "page", value = "页数", required = true),
......@@ -58,7 +54,7 @@ public class SweetManualController {
return sweetManualService.changeRelease(manualId, isRelease);
}
@GetMapping("changeStatus")
@PostMapping("changeStatus")
@ApiOperation("修改是否开启")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
......
......@@ -59,7 +59,7 @@ public class SweetManualNotifyController {
return sweetManualNotifyService.add(manualId, title, content);
}
@PostMapping("detail")
@GetMapping("detail")
@ApiOperation("通知详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "手册id", required = true),
......@@ -81,7 +81,7 @@ public class SweetManualNotifyController {
return sweetManualNotifyService.change(manualId, title, content);
}
@PostMapping("delete")
@DeleteMapping("delete")
@ApiOperation("删除通知")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualNotifyId", value = "手册通知id", required = true),
......
......@@ -9,11 +9,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* <p>
......@@ -32,7 +28,7 @@ public class SweetManualSortController {
private ISweetManualSortService sweetManualSortService;
@GetMapping("add")
@PostMapping("add")
@ApiOperation("操作 电子手册tag")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
......
......@@ -12,11 +12,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* <p>
......@@ -62,7 +58,7 @@ public class SweetRichtextController {
return sweetRichtextService.add(manualId, details, local, picUrl, type);
}
@GetMapping("change")
@PostMapping("change")
@ApiOperation("修改富文本")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "Integer", name = "manualId", value = "页数", required = true),
......
......@@ -50,7 +50,7 @@ public class SweetStageController {
return sweetStageService.add(name);
}
@PostMapping("detail")
@GetMapping("detail")
@ApiOperation("舞台详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "stageId", value = "舞台Id", required = true),
......
package com.liquidnet.service.sweet.dto;
import lombok.Data;
import java.io.Serializable;
@Data
public class SweetManualAppletDto implements Serializable {
private String manualId;
private String performancesId;
private String title;
private String fieldId;
private String fieldName;
private String cityName;
private String timeStart;
private String timeEnd;
private String longitude;
private String latitude;
}
package com.liquidnet.service.sweet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class SweetManualArtistList2Dto implements Serializable {
private List<SweetManualArtistListDto> data;
private List<String> date;
private List<SweetManualArtistStageListDto> stage;
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.sweet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
@Data
public class SweetManualArtistListDto implements Serializable {
......@@ -15,4 +16,5 @@ public class SweetManualArtistListDto implements Serializable {
private String signatureStart;
private String signatureEnd;
private ArrayList<String> date;
}
package com.liquidnet.service.sweet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
@Data
public class SweetManualArtistStageListDto implements Serializable {
private String title;
}
......@@ -16,5 +16,4 @@ public class SweetManualDto implements Serializable {
private Integer status;
private Integer manualStatus;
private Integer isRelease;
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto;
import com.liquidnet.service.sweet.dto.SweetManualDto;
import com.liquidnet.service.sweet.entity.SweetManualArtists;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......@@ -22,4 +23,5 @@ public interface SweetManualArtistsMapper extends BaseMapper<SweetManualArtists>
SweetManualArtistListDto getManualDetails(Map<String, Object> map);
List<SweetManualArtistStageListDto> getStageNameList(Map<String, Object> map);
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import com.liquidnet.service.sweet.dto.SweetManualDto;
import com.liquidnet.service.sweet.entity.SweetManual;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......@@ -19,4 +20,5 @@ public interface SweetManualMapper extends BaseMapper<SweetManual> {
List<SweetManualDto> getManualList(Map<String,Object> map);
List<SweetManualAppletDto> getManualAppletDto();
}
package com.liquidnet.service.sweet.utils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto;
import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.entity.SweetManualSort;
import com.liquidnet.service.sweet.entity.SweetRichtext;
import com.liquidnet.service.sweet.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Component
public class RedisDataUtils {
@Autowired
private RedisUtil redisUtil;
@Autowired
private SweetManualMapper sweetManualMapper;
@Autowired
private SweetManualArtistsMapper sweetManualArtistsMapper;
@Autowired
private SweetRichtextMapper sweetRichtextMapper;
@Autowired
private SweetManualSortMapper sweetManualSortMapper;
@Autowired
private SweetManualNotifyMapper sweetManualNotifyMapper;
public List<SweetManualAppletDto> setPushList() {
String redisKey = "";
List<SweetManualAppletDto> data = sweetManualMapper.getManualAppletDto();
for (SweetManualAppletDto item : data) {
item.setFieldName((String) redisUtil.hget("kylin:fields:id" + ":" + item.getFieldId(), "name"));
item.setLatitude((String) redisUtil.hget("kylin:fields:id" + ":" + item.getFieldId(), "latitude"));
item.setLongitude((String) redisUtil.hget("kylin:fields:id" + ":" + item.getFieldId(), "longitude"));
}
redisUtil.set(redisKey, data);
return data;
}
public List<SweetManualAppletDto> getPushList() {
String redisKey = "";
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return setPushList();
} else {
return (List<SweetManualAppletDto>) obj;
}
}
public SweetManualAppletDto getAppletPerformance(String manualId) {
List<SweetManualAppletDto> data = getPushList();
SweetManualAppletDto returnData = new SweetManualAppletDto();
for (SweetManualAppletDto item : data) {
if (item.getManualId().equalsIgnoreCase(manualId)) {
returnData = item;
break;
}
}
return returnData;
}
public SweetManualArtistList2Dto setTimeList(String manualId, String dateTime) {
String redisKey = "".concat(manualId).concat(dateTime);
HashMap<String, Object> map = new HashMap<>();
map.put("manualId", manualId);
List<SweetManualArtistListDto> data = sweetManualArtistsMapper.getManualList(map);
//获取时间
SweetManualAppletDto sweetManualAppletDto = getAppletPerformance(manualId);
int intervalDay = (int) DateUtil.intervalDays(DateUtil.parse(sweetManualAppletDto.getTimeStart(), "yyyyMMdd"), (DateUtil.parse(sweetManualAppletDto.getTimeEnd(), "yyyyMMdd")));
Date timeStartDate = DateUtil.parse(sweetManualAppletDto.getTimeStart(), "yyyyMMdd");
ArrayList<String> list = new ArrayList<>();
list.add(DateUtil.format(timeStartDate, DateUtil.Formatter.yyyy_MM_dd));
for (int i = 0; i < intervalDay; i++) {
list.add(DateUtil.format(DateUtil.addDay(timeStartDate, 1), DateUtil.Formatter.yyyy_MM_dd));
}
//获取舞台
List<SweetManualArtistStageListDto> stageData = sweetManualArtistsMapper.getStageNameList(map);
SweetManualArtistList2Dto returnData = new SweetManualArtistList2Dto();
returnData.setDate(list);
returnData.setData(data);
returnData.setStage(stageData);
redisUtil.set(redisKey, returnData);
return returnData;
}
public SweetManualArtistList2Dto getTimeList(String manualId, String dateTime) {
String redisKey = "".concat(manualId).concat(dateTime);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return setTimeList(manualId, dateTime);
} else {
return (SweetManualArtistList2Dto) obj;
}
}
public SweetRichtext setRichTextRedisData(String manualId, String type) {
String redisKey = "".concat(manualId).concat(type);
SweetRichtext sweetRichtext = sweetRichtextMapper.selectOne(Wrappers.lambdaQuery(SweetRichtext.class).eq(SweetRichtext::getManualId, manualId).eq(SweetRichtext::getType, type));
redisUtil.set(redisKey, sweetRichtext);
return sweetRichtext;
}
public SweetRichtext getRichTextRedisData(String manualId, String type) {
String redisKey = "".concat(manualId).concat(type);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return setRichTextRedisData(manualId, type);
} else {
return (SweetRichtext) obj;
}
}
public List<String> setTagRedisData(String manualId) {
String redisKey = "".concat(manualId);
SweetManualSort data = sweetManualSortMapper.selectOne(Wrappers.lambdaQuery(SweetManualSort.class).eq(SweetManualSort::getManualId, manualId));
String[] arrays = data.getShowPosition().split(",");
List<String> returnData = new ArrayList<>();
for (String item : arrays) {
returnData.add(SweetConstant.ManualPosition.valueOf(item).getMessage());
}
redisUtil.set(redisKey, returnData);
return returnData;
}
public List<String> getTagRedisData(String manualId) {
String redisKey = "".concat(manualId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return setTagRedisData(manualId);
} else {
return (List<String>) obj;
}
}
public List<SweetManualNotify> setNotifyRedisData(String manualId) {
String redisKey = "".concat(manualId);
List<SweetManualNotify> data = sweetManualNotifyMapper.selectList(Wrappers.lambdaQuery(SweetManualNotify.class).eq(SweetManualNotify::getManualId, manualId).eq(SweetManualNotify::getStatus, 1));
redisUtil.set(redisKey, data);
return data;
}
public List<SweetManualNotify> getNotifyRedisData(String manualId) {
String redisKey = "".concat(manualId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return setNotifyRedisData(manualId);
} else {
return (List<SweetManualNotify>) obj;
}
}
}
......@@ -12,7 +12,27 @@
<result column="signature_end" property="signatureEnd"/>
</resultMap>
<resultMap id="getStageNameListResult" type="com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto">
<result column="title" property="title"/>
</resultMap>
<select id="getManualList" parameterType="java.util.Map" resultMap="getManualListResult">
select manual_relation_id,
sa.`name`,
ss.title,
performance_start,
performance_end,
signature_start,
signature_end
from sweet_manual_artists as sma
left join sweet_artists as sa on sa.artists_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
<where>
sma.status = 1 and manual_id = #{manualId}
</where>
</select>
<select id="getManualDetails" parameterType="java.util.Map" resultMap="getManualListResult">
select manual_relation_id,
sa.`name`,
ss.title,
......@@ -23,20 +43,17 @@
from sweet_manual_artists as sma
left join sweet_artists as sa on sa.artists_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where manual_id = #{manualId}
where manual_relation_id = #{manualRelationId}
</select>
<select id="getManualDetails" parameterType="java.util.Map" resultMap="getManualListResult">
select manual_relation_id,
sa.`name`,
ss.title,
performance_start,
performance_end,
signature_start,
signature_end
from sweet_manual_artists as sma
left join sweet_artists as sa on sa.artists_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where manual_relation_id = #{manualRelationId}
</select>
<select id="getStageNameList" parameterType="java.util.Map" resultMap="getStageNameListResult">
select ss.title
from sweet_manual_artists as sma
left join sweet_artists as sa on sa.artists_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where sma.status = 1
and manual_id = #{manualId}
group by ss.title;
</select>
</mapper>
......@@ -14,6 +14,16 @@
<result column="is_release" property="isRelease"/>
</resultMap>
<resultMap id="getManualAppletListResult" type="com.liquidnet.service.sweet.dto.SweetManualAppletDto">
<result column="manual_id" property="manualId"/>
<result column="performances_id" property="performancesId"/>
<result column="title" property="title"/>
<result column="field_id" property="fieldId"/>
<result column="city_name" property="cityName"/>
<result column="time_start" property="timeStart"/>
<result column="time_end" property="timeEnd"/>
</resultMap>
<!-- 电子手册列表 -->
<select id="getManualList" parameterType="java.util.Map" resultMap="partnerPerformanceListResult">
SELECT
......@@ -57,4 +67,13 @@
ORDER BY p.created_at desc
</select>
<select id="getManualAppletList" resultMap="getManualAppletListResult">
select manual_id, performances_id, title, field_id, city_name, time_start, time_end
from kylin_performances as kp
left join sweet_manual as sw on sw.performance_id = kp.performances_id
left join kylin_performance_relations as kpr on kpr.performance_id = kp.performances_id
where sw.`status` = 1
and sw.is_release = 1
</select>
</mapper>
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