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

Commit 045d45a3 authored by 胡佳晨's avatar 胡佳晨

Merge branch 'dev' into test

parents b976ea80 013d88a0
...@@ -64,6 +64,7 @@ public class KylinTableStatusConst { ...@@ -64,6 +64,7 @@ public class KylinTableStatusConst {
public static final Integer ENTITIES_IS_PAYMENT1 = 1; // 已支付 public static final Integer ENTITIES_IS_PAYMENT1 = 1; // 已支付
public static final Integer ENTITIES_IS_PAYMENT2 = 2; // 退款中 public static final Integer ENTITIES_IS_PAYMENT2 = 2; // 退款中
public static final Integer ENTITIES_IS_PAYMENT3 = 3; // 已退款 public static final Integer ENTITIES_IS_PAYMENT3 = 3; // 已退款
public static final Integer ENTITIES_IS_PAYMENT4 = 4; // 部分退款
// 出票状态 // 出票状态
public static final Integer ENTITIES_STATUS0 = 0; // 未出票 public static final Integer ENTITIES_STATUS0 = 0; // 未出票
public static final Integer ENTITIES_STATUS1 = 1; // 已出票 public static final Integer ENTITIES_STATUS1 = 1; // 已出票
......
...@@ -26,7 +26,7 @@ public class RefundApplyParam implements Serializable { ...@@ -26,7 +26,7 @@ public class RefundApplyParam implements Serializable {
private Double RefundPriceExpress; private Double RefundPriceExpress;
private List<String> ticketEntityIds; private List<String> ticketEntityIds;
private List<BigDecimal> entitiesPrice; private List<Double> entitiesPrice;
private List<String> ids; private List<String> ids;
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.dto.vo.mongo; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.dto.vo.mongo;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
...@@ -36,6 +37,8 @@ public class KylinOrderTicketEntitiesVo implements Serializable, Cloneable { ...@@ -36,6 +37,8 @@ public class KylinOrderTicketEntitiesVo implements Serializable, Cloneable {
private Integer ticketsmId; private Integer ticketsmId;
private Integer timemId; private Integer timemId;
private BigDecimal refundPrice;
private String checkType; private String checkType;
private String checkedAt; private String checkedAt;
private String checkUserId; private String checkUserId;
......
...@@ -98,9 +98,6 @@ public class KylinOrderRefundsVo implements Serializable { ...@@ -98,9 +98,6 @@ public class KylinOrderRefundsVo implements Serializable {
private String refundType; private String refundType;
private Integer refundCate; private Integer refundCate;
@ApiModelProperty(value = "订单入场人/搭售款式表 id 多个 ,分割")
private String orderTicketEntitiesIds;
@ApiModelProperty(value = "添加时间") @ApiModelProperty(value = "添加时间")
private LocalDateTime createdAt; private LocalDateTime createdAt;
......
package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.entity.KylinOrderRefundEntities;
/**
* <p>
* 订单退款入场人表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-06-16
*/
public interface IKylinOrderRefundsEntitiesService extends IService<KylinOrderRefundEntities> {
}
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
<ul> <ul>
<li class="select-time"> <li class="select-time">
<label th:style="'width:120px'">请选择时间范围: </label> <label th:style="'width:120px'">请选择时间范围: </label>
<input th:field="${requestParam.timeBegin}" type="text" class="input-sm form-control" id="perStartTime" placeholder="开始日期" name="timeBegin"/> <input th:field="${requestParam.timeBegin}" type="text" class="input-sm form-control" id="startTime" placeholder="开始日期" name="timeBegin" required/>
<span>-</span> <span>-</span>
<input th:field="${requestParam.timeEnd}" type="text" class="input-sm form-control" id="perEndTime" placeholder="结束日期" name="timeEnd" readonly/> <input th:field="${requestParam.timeEnd}" type="text" class="input-sm form-control" id="endTime" placeholder="结束日期" name="timeEnd" required/>
</li> </li>
<li> <li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="submit()"><i class="fa fa-search"></i>&nbsp;搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="submit()"><i class="fa fa-search"></i>&nbsp;搜索</a>
...@@ -275,65 +275,88 @@ ...@@ -275,65 +275,88 @@
var prefix = ctx + "kylin/performanceCalendar"; var prefix = ctx + "kylin/performanceCalendar";
var selectListUrl = ctx + "kylin/performanceCalendar/list"; var selectListUrl = ctx + "kylin/performanceCalendar/list";
function submit(){ function submit(){
var form = $("#formId"); if ($.validate.form()) {
form.action = selectListUrl; var form = $("#formId");
form.submit(); form.action = selectListUrl;
form.submit();
}
} }
$(function() {
<!-- laydate示例 -->
layui.use(['laydate'], function(){
var laydate = layui.laydate;
var monday = getMonday(new Date());
var mm = GetDateStr(monday,0);
var minSunday = GetDateStr(monday,6);
var maxSunday = GetDateStr(monday,7);
var startDate = laydate.render({
elem: '#perStartTime',
type:'date',
format: 'yyyy-MM-dd', //格式
min: mm, //最小可选择日期
range:false, //设置启用日期范围
// max: $('#perEndTime').val(),
// max: maxSunday,
theme: 'molv',
trigger: 'focus',
done: function(value, date) {
// 结束时间大于开始时间
if (value !== '') {
endDate.config.min.year = date.year;
endDate.config.min.month = date.month - 1;
endDate.config.min.date = date.date;
} else {
endDate.config.min.year = '';
endDate.config.min.month = '';
endDate.config.min.date = '';
}
}
});
var endDate = laydate.render({ var validate = $("#formId").validate({
elem: '#perEndTime', onkeyup: false,
min: $('#perStartTime').val(), rules:{
// max: maxSunday, timeBegin:{
theme: 'molv', required:true
trigger: 'focus', },
done: function(value, date) { timeEnd:{
// 开始时间小于结束时间 required:true
if (value !== '') { }
startDate.config.max.year = date.year; },
startDate.config.max.month = date.month - 1; messages:{
startDate.config.max.date = date.date; timeBegin: {
} else { required:"开始日期不为空!"
startDate.config.max.year = ''; },
startDate.config.max.month = ''; timeEnd:{
startDate.config.max.date = ''; required:"结束日期为空!"
} }
} }
}); });
}); // $(function() {
}); // <!-- laydate示例 -->
// layui.use(['laydate'], function(){
// var laydate = layui.laydate;
// var monday = getMonday(new Date());
// var mm = GetDateStr(monday,0);
// var minSunday = GetDateStr(monday,6);
// var maxSunday = GetDateStr(monday,7);
//
// var startDate = laydate.render({
// elem: '#perStartTime',
// type:'date',
// format: 'yyyy-MM-dd', //格式
// min: mm, //最小可选择日期
// range:false, //设置启用日期范围
// // max: $('#perEndTime').val(),
// // max: maxSunday,
// theme: 'molv',
// trigger: 'focus',
// done: function(value, date) {
// // 结束时间大于开始时间
// if (value !== '') {
// endDate.config.min.year = date.year;
// endDate.config.min.month = date.month - 1;
// endDate.config.min.date = date.date;
// } else {
// endDate.config.min.year = '';
// endDate.config.min.month = '';
// endDate.config.min.date = '';
// }
// }
// });
//
// var endDate = laydate.render({
// elem: '#perEndTime',
// min: $('#perStartTime').val(),
// // max: maxSunday,
// theme: 'molv',
// trigger: 'focus',
// done: function(value, date) {
// // 开始时间小于结束时间
// if (value !== '') {
// startDate.config.max.year = date.year;
// startDate.config.max.month = date.month - 1;
// startDate.config.max.date = date.date;
// } else {
// startDate.config.max.year = '';
// startDate.config.max.month = '';
// startDate.config.max.date = '';
// }
// }
// });
// });
// });
//获取当前日期的周一日期 //获取当前日期的周一日期
function getMonday( date ) { function getMonday( date ) {
var day = date.getDay() || 7; var day = date.getDay() || 7;
......
...@@ -5,6 +5,8 @@ import com.liquidnet.common.cache.redis.util.RedisUtil; ...@@ -5,6 +5,8 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.*; import com.liquidnet.service.kylin.dto.vo.*;
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.KylinOrderTicketEntitiesVo; 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.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
...@@ -18,6 +20,8 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -18,6 +20,8 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
@Component @Component
...@@ -215,4 +219,131 @@ public class DataUtils { ...@@ -215,4 +219,131 @@ public class DataUtils {
System.out.println("创建Vo异常"); System.out.println("创建Vo异常");
} }
} }
/**
* 获取巡演列表redis
*/
public List<KylinPerformanceVo> getRoadList(String roadShowId) {
String redisKey = KylinRedisConst.PERFORMANCES_ROADLIST.concat(roadShowId);
if (!redisUtil.hasKey(redisKey)) {
List<KylinPerformanceVo> roadList = mongoTemplate.find(
Query.query(Criteria.where("roadShowId").is(roadShowId)),
KylinPerformanceVo.class,
KylinPerformanceVo.class.getSimpleName()
);
redisUtil.set(redisKey, roadList);
}
return (List<KylinPerformanceVo>) redisUtil.get(redisKey);
}
/**
* 根据演出id 获取 演出vo 详情
*
* @param performanceId
* @return
*/
public KylinPerformanceVo getPerformanceVo(String performanceId) {
if (redisUtil.hasKey(KylinRedisConst.PERFORMANCES + performanceId)) {
} else {
KylinPerformanceVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
List<KylinPerformanceVo> roadList = new ArrayList();
if (Integer.parseInt(performanceData.getRoadShowId()) > 0) {
roadList = getRoadList(performanceData.getRoadShowId());
}
redisUtil.set(KylinRedisConst.PERFORMANCES + performanceId, performanceData);
performanceData.setRoadList(roadList); // 不一起存到演出详情
}
return (KylinPerformanceVo) redisUtil.get(KylinRedisConst.PERFORMANCES + performanceId);
}
/**
* @param performanceId 演出id
* @param ticketId 票种id
* @param buyCount 购买数量 大于 0 增加 小于 0 减少 对应 支付 退款表
*/
public void changeBuyInfo(String userId, String idCard, String performanceId, String ticketId, int buyCount) {
String redisKey;
KylinPerformanceVo vo = getPerformanceVo(performanceId);
int isTrueName = vo.getIsTrueName();
int ticketType = 0;
String useTime = "";
HashMap<String, ArrayList<String>> allTicketId = new HashMap<>();
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
KylinTicketTimesVo timeItem = vo.getTicketTimeList().get(x);
ArrayList<String> ticketList = new ArrayList<>();
for (int y = 0; y < timeItem.getTicketList().size(); y++) {
KylinTicketVo ticketItem = timeItem.getTicketList().get(y);
if (ticketItem.getType() == 1) {
ticketList.add(ticketItem.getTicketsId());
}
if (ticketItem.getTicketsId().equals(ticketId)) {
useTime = ticketItem.getUseStart();
ticketType = ticketItem.getType();
}
}
allTicketId.put(timeItem.getUseStart(), ticketList);
}
if (0 == isTrueName) {
redisKey = KylinRedisConst.USERID_BUY_INFO + userId;
} else {
redisKey = KylinRedisConst.IDCARD_BUY_INFO + idCard;
}
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);
if (1 == ticketType) {
int count = 0;
for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
String item = allTicketId.get(useTime).get(i);
if (allTicketId.get(useTime).size() == 1) {
redisUtil.incr(performanceIdKey, buyCount);
break;
}
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 + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.incr(performanceIdKey, buyCount);
break;
}
}
}
} else {
redisUtil.incr(performanceIdKey, buyCount);
}
} else {
redisUtil.decr(ticketIdKey, Math.abs(buyCount));
if (1 == ticketType) {
int count = 0;
for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
String item = allTicketId.get(useTime).get(i);
if (allTicketId.get(useTime).size() == 1) {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
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 + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
}
}
} else {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
}
}
}
} }
...@@ -2,9 +2,11 @@ package com.liquidnet.client.admin.zhengzai.kylin.utils; ...@@ -2,9 +2,11 @@ package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
...@@ -47,6 +49,8 @@ public class PerformanceVoUtils { ...@@ -47,6 +49,8 @@ public class PerformanceVoUtils {
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private MongoVoUtils mongoVoUtils; private MongoVoUtils mongoVoUtils;
@Autowired
private RedisUtil redisUtil;
@Autowired @Autowired
private KylinPerformancesMapper performancesMapper; private KylinPerformancesMapper performancesMapper;
...@@ -226,6 +230,8 @@ public class PerformanceVoUtils { ...@@ -226,6 +230,8 @@ public class PerformanceVoUtils {
KylinPerformanceRelations performanceRelations = new KylinPerformanceRelations(); KylinPerformanceRelations performanceRelations = new KylinPerformanceRelations();
BeanUtils.copyProperties(performanceUpdateMisVo, performanceRelations); BeanUtils.copyProperties(performanceUpdateMisVo, performanceRelations);
performances.setCityName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performanceRelations.getFieldId(), "city_name"));
performances.setCityId(Integer.parseInt((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performanceRelations.getFieldId(), "city_id")));
performances.setCreatedAt(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(performanceUpdateMisVo.getCreatedAt()))); performances.setCreatedAt(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(performanceUpdateMisVo.getCreatedAt())));
performances.setTimeStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(performanceUpdateMisVo.getTimeStart()))); performances.setTimeStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(performanceUpdateMisVo.getTimeStart())));
performances.setTimeEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(performanceUpdateMisVo.getTimeEnd()))); performances.setTimeEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(performanceUpdateMisVo.getTimeEnd())));
......
...@@ -25,7 +25,7 @@ liquidnet: ...@@ -25,7 +25,7 @@ liquidnet:
url-pay: url-pay:
pay: http://testpay.zhengzai.tv pay: http://testpay.zhengzai.tv
check: http://testpay.zhengzai.tv/order/verify check: http://testpay.zhengzai.tv/order/verify
callback: http://devzuul.zhengzai.tv/adam/member/order/callback callback: http://devadam.zhengzai.tv/adam/member/order/callback
url-service: url-service:
url: http://testservice.zhengzai.tv url: http://testservice.zhengzai.tv
aliyun: aliyun:
......
...@@ -29,6 +29,8 @@ public class KylinOrderTicketEntitiesDao { ...@@ -29,6 +29,8 @@ public class KylinOrderTicketEntitiesDao {
private String useEnd; private String useEnd;
private BigDecimal canRefundedPrice;
/** /**
* 订单 * 订单
*/ */
......
...@@ -60,8 +60,6 @@ public class OrderRefundDao implements Serializable { ...@@ -60,8 +60,6 @@ public class OrderRefundDao implements Serializable {
private String refundType; private String refundType;
private String refundCate; private String refundCate;
private String orderTicketEntitiesIds;
private String createdAt; private String createdAt;
private String updatedAt; private String updatedAt;
......
...@@ -22,14 +22,14 @@ public class PerformanceOrderStatisticalDao { ...@@ -22,14 +22,14 @@ public class PerformanceOrderStatisticalDao {
private BigDecimal price; private BigDecimal price;
private Integer type; private Integer type;
private LocalDateTime useStart; private LocalDateTime useStart;
private BigDecimal totalGeneral; private BigDecimal totalGeneral = BigDecimal.ZERO;
private BigDecimal saleGeneral; private BigDecimal saleGeneral = BigDecimal.ZERO;
private BigDecimal surplusGeneral; private BigDecimal surplusGeneral = BigDecimal.ZERO;
private BigDecimal totalSalePrice; private BigDecimal totalSalePrice = BigDecimal.ZERO;
private BigDecimal totalExchange; private BigDecimal totalExchange = BigDecimal.ZERO;
private BigDecimal totalRefundGeneral; private BigDecimal totalRefundGeneral = BigDecimal.ZERO;
private BigDecimal totalRefundPrice; private BigDecimal totalRefundPrice = BigDecimal.ZERO;
private BigDecimal totalMemberNumber; private BigDecimal totalMemberNumber = BigDecimal.ZERO;
private BigDecimal totalPayingNumber; private BigDecimal totalPayingNumber = BigDecimal.ZERO;
private BigDecimal totalBuyUsers; private BigDecimal totalBuyUsers = BigDecimal.ZERO;
} }
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 订单退款入场人表
* </p>
*
* @author jiangxiulong
* @since 2021-06-16
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinOrderRefundEntities implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
private String orderRefundsEntitiesId;
private String orderRefundsId;
private String orderTicketEntitiesId;
private BigDecimal refundPrice;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}
...@@ -69,6 +69,7 @@ public class KylinOrderRefunds implements Serializable { ...@@ -69,6 +69,7 @@ public class KylinOrderRefunds implements Serializable {
* 退款总金额 * 退款总金额
*/ */
private BigDecimal price; private BigDecimal price;
private BigDecimal priceExpress;
/** /**
* 退款状态: 0请求退款 2取消退款 1审核通过 5驳回退款 7等待退款 3正在退款 4完成退款 6退款失败 * 退款状态: 0请求退款 2取消退款 1审核通过 5驳回退款 7等待退款 3正在退款 4完成退款 6退款失败
...@@ -146,11 +147,6 @@ public class KylinOrderRefunds implements Serializable { ...@@ -146,11 +147,6 @@ public class KylinOrderRefunds implements Serializable {
private String refundType; private String refundType;
private Integer refundCate; private Integer refundCate;
/**
* 订单入场人/搭售款式表 id 多个 ,分割
*/
private String orderTicketEntitiesIds;
private LocalDateTime createdAt; private LocalDateTime createdAt;
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
......
package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.entity.KylinOrderRefundEntities;
/**
* <p>
* 订单退款入场人表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-06-16
*/
public interface KylinOrderRefundsEntitiesMapper extends BaseMapper<KylinOrderRefundEntities> {
}
...@@ -29,4 +29,14 @@ public interface KylinOrderRefundsMapper extends BaseMapper<KylinOrderRefunds> { ...@@ -29,4 +29,14 @@ public interface KylinOrderRefundsMapper extends BaseMapper<KylinOrderRefunds> {
List<OrderRefundDao> misRefundList(Map<String,Object> map); List<OrderRefundDao> misRefundList(Map<String,Object> map);
int selectRefundingCount(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatusCancel") Integer orderRefundStatusCancel,
@Param("ticketEntityIds") List<String> ticketEntityIds
);
double RefundPriceExpressSum(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatusCancel") Integer orderRefundStatusCancel
);
} }
...@@ -18,7 +18,19 @@ import java.util.List; ...@@ -18,7 +18,19 @@ import java.util.List;
*/ */
public interface KylinOrderTicketEntitiesMapper extends BaseMapper<KylinOrderTicketEntities> { public interface KylinOrderTicketEntitiesMapper extends BaseMapper<KylinOrderTicketEntities> {
List<KylinOrderRefundsEntitiesDao> selectEntitiesList(@Param("orderTicketEntitiesIdS") String[] orderTicketEntitiesIdS); List<KylinOrderRefundsEntitiesDao> selectEntitiesList(@Param("orderTicketEntitiesIdS") List<String> orderTicketEntitiesIdS);
List<KylinOrderTicketEntitiesDao> getRefundEntitiesList(String orderTicketsId); List<KylinOrderTicketEntitiesDao> getRefundEntitiesList(String orderTicketsId);
Double getRefundEntitiesPrice(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatusCancel") Integer orderRefundStatusCancel,
@Param("orderTicketEntitiesId") String orderTicketEntitiesId
);
Double getRefundOverEntitiesPrice(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatus") Integer orderRefundStatus,
@Param("entitiesId") String entitiesId
);
} }
...@@ -48,4 +48,25 @@ ...@@ -48,4 +48,25 @@
</if> </if>
</where> </where>
</select> </select>
<select id="selectRefundingCount" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM kylin_order_refunds AS a
JOIN kylin_order_refund_entities AS b ON a.order_refunds_id = b.order_refunds_id
<where>
AND a.order_tickets_id = #{orderTicketsId}
AND a.status != ${orderRefundStatusCancel}
AND b.order_ticket_entities_id IN
<foreach collection="ticketEntityIds" item="entityIds" index="index" open="(" close=")" separator=",">
${entityIds}
</foreach>
</where>
</select>
<select id="RefundPriceExpressSum" resultType="java.lang.Double">
SELECT SUM(price_express)
FROM kylin_order_refunds
<where>
AND order_tickets_id = #{orderTicketsId}
AND status != ${orderRefundStatusCancel}
</where>
</select>
</mapper> </mapper>
...@@ -22,6 +22,27 @@ ...@@ -22,6 +22,27 @@
JOIN kylin_order_tickets AS c ON c.order_tickets_id = a.order_id JOIN kylin_order_tickets AS c ON c.order_tickets_id = a.order_id
<where> <where>
a.order_id = #{orderTicketsId} a.order_id = #{orderTicketsId}
AND a.is_payment != 0
</where>
</select>
<select id="getRefundEntitiesPrice" resultType="java.lang.Double">
SELECT SUM(b.refund_price)
FROM kylin_order_refunds AS a
JOIN kylin_order_refund_entities AS b ON a.order_refunds_id = b.order_refunds_id
<where>
AND a.order_tickets_id = #{orderTicketsId}
AND a.status != ${orderRefundStatusCancel}
AND b.order_ticket_entities_id = #{orderTicketEntitiesId}
</where>
</select>
<select id="getRefundOverEntitiesPrice" resultType="java.lang.Double">
SELECT SUM(b.refund_price)
FROM kylin_order_refunds AS a
JOIN kylin_order_refund_entities AS b ON a.order_refunds_id = b.order_refunds_id
<where>
AND a.order_tickets_id = #{orderTicketsId}
AND a.status = ${orderRefundStatus}
AND b.order_ticket_entities_id = #{orderTicketEntitiesId}
</where> </where>
</select> </select>
</mapper> </mapper>
...@@ -149,17 +149,16 @@ ...@@ -149,17 +149,16 @@
) AS t ON p.performances_id = t.performance_id ) AS t ON p.performances_id = t.performance_id
LEFT JOIN( LEFT JOIN(
SELECT SELECT
sum(ot.number) AS 'sale_general' , (sum(ot.number)- sum(ot.refund_number)) AS 'sale_general' ,
sum(ot.price_actual) AS 'total_sale_price' , (sum(ot.price_actual) - sum(ot.price_refund)) AS 'total_sale_price' ,
ote.performance_id AS 'performance_id' otr.performance_id AS 'performance_id'
FROM FROM
kylin_order_tickets AS ot kylin_order_tickets AS ot
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_entities AS ote ON ote.order_id = ot.order_tickets_id LEFT JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id
WHERE WHERE
ots.`status` = 0 ots.`status` = 1 and coupon_type ='no'
OR ots.`status` = 1 GROUP BY otr.performance_id
GROUP BY ote.performance_id
) AS ot ON ot.performance_id = p.performances_id ) AS ot ON ot.performance_id = p.performances_id
<where> <where>
<if test="title!=''"> <if test="title!=''">
...@@ -228,17 +227,16 @@ ...@@ -228,17 +227,16 @@
) AS t ON p.performances_id = t.performance_id ) AS t ON p.performances_id = t.performance_id
LEFT JOIN( LEFT JOIN(
SELECT SELECT
sum(ot.number) AS 'sale_general' , (sum(ot.number)- sum(ot.refund_number)) AS 'sale_general' ,
sum(ot.price_actual) AS 'total_sale_price' , (sum(ot.price_actual) - sum(ot.price_refund)) AS 'total_sale_price' ,
ote.performance_id AS 'performance_id' otr.performance_id AS 'performance_id'
FROM FROM
kylin_order_tickets AS ot kylin_order_tickets AS ot
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_entities AS ote ON ote.order_id = ot.order_tickets_id LEFT JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id
WHERE WHERE
ots.`status` = 0 ots.`status` = 1 and coupon_type ='no'
OR ots.`status` = 1 GROUP BY otr.performance_id
GROUP BY ote.performance_id
) AS ot ON ot.performance_id = p.performances_id ) AS ot ON ot.performance_id = p.performances_id
<where> <where>
<if test="title!=''"> <if test="title!=''">
...@@ -381,7 +379,7 @@ ...@@ -381,7 +379,7 @@
(select t.performances_id from kylin_performances t where t.performances_id = ${performancesId}) AS kp (select t.performances_id from kylin_performances t where t.performances_id = ${performancesId}) AS kp
inner JOIN( inner JOIN(
SELECT SELECT
kote.performance_id AS 'performance_id', kotr.performance_id AS 'performance_id',
kotr.ticket_id, kotr.ticket_id,
sum(kot.number) AS 'total_sale_general' , sum(kot.number) AS 'total_sale_general' ,
sum(kot.price_actual) AS 'total_sale_price', sum(kot.price_actual) AS 'total_sale_price',
...@@ -391,26 +389,24 @@ ...@@ -391,26 +389,24 @@
sum(case when kots.`status` = 0 then kot.number else 0 end) total_paying_number sum(case when kots.`status` = 0 then kot.number else 0 end) total_paying_number
FROM FROM
kylin_order_ticket_relations kotr kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.ticket_id = kot.order_tickets_id inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_entities AS kote ON kote.order_id = kot.order_tickets_id
WHERE kotr.performance_id = ${performancesId} and (kots.`status` = 0 OR kots.`status` = 1) WHERE kotr.performance_id = ${performancesId} and (kots.`status` = 0 OR kots.`status` = 1)
) AS ot ON ot.performance_id = kp.performances_id ) AS ot ON ot.performance_id = kp.performances_id
inner join kylin_tickets kt on kt.tickets_id = ot.ticket_id inner join kylin_tickets kt on kt.tickets_id = ot.ticket_id
inner join kylin_ticket_status kts on kts.ticket_id = kt.tickets_id inner join kylin_ticket_status kts on kts.ticket_id = kt.tickets_id
inner JOIN( inner JOIN(
select t.performance_id,count(t.user_id) as 'total_buy_users' from( select t.performance_id,count(t.user_id) as 'total_buy_users' from(
SELECT SELECT
kotr.performance_id, kotr.performance_id,
kot.user_id kot.user_id
FROM FROM
kylin_order_ticket_relations kotr kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.ticket_id = kot.order_tickets_id inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_entities AS kote ON kote.order_id = kot.order_tickets_id WHERE kotr.performance_id = ${performancesId} and (kots.`status` = 0 OR kots.`status` = 1)
WHERE kotr.performance_id = ${performancesId} and (kots.`status` = 0 OR kots.`status` = 1) group by kotr.performance_id,kot.user_id
group by kotr.performance_id,kot.user_id ) t
) t
) AS ut ON ut.performance_id = kp.performances_id ) AS ut ON ut.performance_id = kp.performances_id
</select> </select>
<select id="orderList" resultMap="performanceOrderListDaoResult"> <select id="orderList" resultMap="performanceOrderListDaoResult">
......
...@@ -81,7 +81,7 @@ create table adam_user_info ...@@ -81,7 +81,7 @@ create table adam_user_info
qr_code varchar(255) comment '身份二维码', qr_code varchar(255) comment '身份二维码',
qr_pic varchar(255) comment '身份二维码', qr_pic varchar(255) comment '身份二维码',
tag_me json comment '音乐标签', tag_me json comment '音乐标签',
rong_cloud_token varchar(64), rong_cloud_token varchar(255),
rong_cloud_tag tinyint, rong_cloud_tag tinyint,
comment text comment text
) engine = InnoDB comment '用户信息'; ) engine = InnoDB comment '用户信息';
......
...@@ -507,10 +507,11 @@ CREATE TABLE `kylin_order_ticket_entities` ...@@ -507,10 +507,11 @@ CREATE TABLE `kylin_order_ticket_entities`
`status` int(11) NOT NULL DEFAULT 0 COMMENT '出票状态: 0未出票 1已出票', `status` int(11) NOT NULL DEFAULT 0 COMMENT '出票状态: 0未出票 1已出票',
`sys_damai` int(11) NOT NULL DEFAULT 0 COMMENT '大麦同步状态: 0不同步 1待同步 2同步完成 3同步失败', `sys_damai` int(11) NOT NULL DEFAULT 0 COMMENT '大麦同步状态: 0不同步 1待同步 2同步完成 3同步失败',
`check_client` varchar(255) NOT NULL DEFAULT '' COMMENT '出票端 例如 pda 验票app android/ios 大麦出票', `check_client` varchar(255) NOT NULL DEFAULT '' COMMENT '出票端 例如 pda 验票app android/ios 大麦出票',
`is_payment` int(11) NOT NULL DEFAULT 0 COMMENT '支付状态: 0未支付 1已支付 2退款中 3已退款 ', `is_payment` int(11) NOT NULL DEFAULT 0 COMMENT '支付状态: 0未支付 1已支付 2退款中 3已退款 4部分退款',
`refund_price` decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '已退款金额',
`comment` varchar(255) NULL DEFAULT '' COMMENT 'comment', `comment` varchar(255) NULL DEFAULT '' COMMENT 'comment',
`created_at` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', `created_at` datetime(3) NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', `updated_at` datetime(3) NULL DEFAULT NULL COMMENT '修改时间',
KEY `kylin_order_ticket_entities_uid_index` (`order_ticket_entities_id`), KEY `kylin_order_ticket_entities_uid_index` (`order_ticket_entities_id`),
PRIMARY KEY (`mid`) PRIMARY KEY (`mid`)
) ENGINE = InnoDB ) ENGINE = InnoDB
...@@ -658,9 +659,10 @@ CREATE TABLE `kylin_order_refunds` ...@@ -658,9 +659,10 @@ CREATE TABLE `kylin_order_refunds`
`refund_at` timestamp NULL DEFAULT NULL COMMENT '成功退款时间', `refund_at` timestamp NULL DEFAULT NULL COMMENT '成功退款时间',
`refund_id` varchar(50) NOT NULL DEFAULT '' COMMENT '第三方退款编号', `refund_id` varchar(50) NOT NULL DEFAULT '' COMMENT '第三方退款编号',
`refund_error` varchar(100) NOT NULL DEFAULT '' COMMENT '退款失败原因', `refund_error` varchar(100) NOT NULL DEFAULT '' COMMENT '退款失败原因',
`price` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '退款总金额', `price` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '退款票总金额',
`price_express` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '退款快递费',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '退款状态: 0请求退款 2取消退款 1审核通过 5驳回退款 7等待退款 3正在退款 4完成退款 6退款失败', `status` tinyint NOT NULL DEFAULT '0' COMMENT '退款状态: 0请求退款 2取消退款 1审核通过 5驳回退款 7等待退款 3正在退款 4完成退款 6退款失败',
`type` tinyint NOT NULL DEFAULT '0' COMMENT '退款差异: 0申请退款返还库存 1自动退款无法取消退款不返还库存', `type` tinyint NOT NULL DEFAULT '0' COMMENT '退款差异: 0客服或票务申请 1超时自动退款不占库存',
`applicant_id` varchar(255) NOT NULL DEFAULT '' COMMENT '申请人id', `applicant_id` varchar(255) NOT NULL DEFAULT '' COMMENT '申请人id',
`applicant_name` varchar(100) NOT NULL DEFAULT '' COMMENT '申请人名称', `applicant_name` varchar(100) NOT NULL DEFAULT '' COMMENT '申请人名称',
`applicant_at` timestamp NULL DEFAULT NULL COMMENT '申请时间', `applicant_at` timestamp NULL DEFAULT NULL COMMENT '申请时间',
...@@ -675,7 +677,6 @@ CREATE TABLE `kylin_order_refunds` ...@@ -675,7 +677,6 @@ CREATE TABLE `kylin_order_refunds`
`refuse` varchar(200) NOT NULL DEFAULT '' COMMENT '回绝原因', `refuse` varchar(200) NOT NULL DEFAULT '' COMMENT '回绝原因',
`refund_type` varchar(200) NOT NULL DEFAULT '' COMMENT '退款方式', `refund_type` varchar(200) NOT NULL DEFAULT '' COMMENT '退款方式',
`refund_cate` tinyint NOT NULL DEFAULT '0' COMMENT '1票务2快递费3票和快递费', `refund_cate` tinyint NOT NULL DEFAULT '0' COMMENT '1票务2快递费3票和快递费',
`order_ticket_entities_ids` text COMMENT '订单入场人/搭售款式表 id 多个 ,分割',
`created_at` timestamp NULL DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`mid`), PRIMARY KEY (`mid`),
...@@ -685,4 +686,20 @@ CREATE TABLE `kylin_order_refunds` ...@@ -685,4 +686,20 @@ CREATE TABLE `kylin_order_refunds`
KEY `kylin_order_refunds_order_refunds_id_index` (`order_refunds_id`) KEY `kylin_order_refunds_order_refunds_id_index` (`order_refunds_id`)
) ENGINE = InnoDB ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT ='订单退款表' COLLATE = utf8mb4_unicode_ci COMMENT ='订单退款表';
drop TABLE if exists `kylin_order_refund_entities`;
CREATE TABLE `kylin_order_refund_entities`
(
`mid` int unsigned NOT NULL AUTO_INCREMENT,
`order_refunds_entities_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_refunds_entities_id',
`order_refunds_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_refunds_id',
`order_ticket_entities_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_ticket_entities_id',
`refund_price` decimal(11, 2) NOT NULL DEFAULT '0.00' COMMENT '退款金额',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
KEY `kylin_order_refunds_entities_id_index` (`order_refunds_entities_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT '退款入场人表';
...@@ -25,4 +25,12 @@ public class DataController { ...@@ -25,4 +25,12 @@ public class DataController {
Boolean result = data.performance(); Boolean result = data.performance();
return ResponseDto.success(result); return ResponseDto.success(result);
} }
@PostMapping("order")
@ApiOperation("订单数据迁移")
public ResponseDto<Boolean> order(int month) {
Boolean result = data.order(month);
return ResponseDto.success(result);
}
} }
...@@ -3,11 +3,13 @@ package com.liquidnet.service.kylin.controller; ...@@ -3,11 +3,13 @@ package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam; import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.service.impl.OrderRefundsCallbackServiceImpl; import com.liquidnet.service.kylin.service.impl.OrderRefundsCallbackServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; 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.RestController;
/** /**
...@@ -21,12 +23,29 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -21,12 +23,29 @@ import org.springframework.web.bind.annotation.RestController;
@Api(tags = "前端-退款回调") @Api(tags = "前端-退款回调")
@RestController @RestController
@RequestMapping("refund") @RequestMapping("refund")
@Validated
public class OrderRefundCallbackController { public class OrderRefundCallbackController {
@Autowired @Autowired
private OrderRefundsCallbackServiceImpl orderRefundsCallbackServiceImpl; private OrderRefundsCallbackServiceImpl orderRefundsCallbackServiceImpl;
@PostMapping("apply")
@ApiOperation("超时退款")
@ApiImplicitParams({
@ApiImplicitParam(type = "body", dataType = "String", name = "orderTicketsId", value = "订单ID", required = true),
})
public Boolean refundApply(@RequestParam() String orderTicketsId) {
try {
Boolean res = orderRefundsCallbackServiceImpl.refundApply(orderTicketsId);
if (res) {
return true;
} else {
return false;
}
} catch (Exception e) {
return false;
}
}
@PostMapping("callback") @PostMapping("callback")
@ApiOperation("退款回调") @ApiOperation("退款回调")
public String refundCallback(RefundCallbackParam refundCallbackParam) { public String refundCallback(RefundCallbackParam refundCallbackParam) {
......
...@@ -314,11 +314,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -314,11 +314,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTickets.setPriceTotal(ticketData.getPrice().multiply(new BigDecimal(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : new BigDecimal("0"))); orderTickets.setPriceTotal(ticketData.getPrice().multiply(new BigDecimal(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : new BigDecimal("0")));
} }
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) { /*if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
orderTickets.setPriceActual(new BigDecimal("0.01")); orderTickets.setPriceActual(new BigDecimal("0.01"));
} else { } else {*/
orderTickets.setPriceActual(orderTickets.getPriceTotal()); orderTickets.setPriceActual(orderTickets.getPriceTotal());
} // }
orderTickets.setPriceVoucher(new BigDecimal("0.0")); orderTickets.setPriceVoucher(new BigDecimal("0.0"));
orderTickets.setPriceExpress(ticketData.getPriceExpress()); orderTickets.setPriceExpress(ticketData.getPriceExpress());
...@@ -383,12 +383,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -383,12 +383,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//生成票 //生成票
KylinOrderTicketEntities orderTicketEntities = new KylinOrderTicketEntities(); KylinOrderTicketEntities orderTicketEntities = new KylinOrderTicketEntities();
String orderTicketEntitiesId = IDGenerator.nextSnowId().toString();
LinkedList<Object[]> sqlsDataD = null; LinkedList<Object[]> sqlsDataD = null;
sqlsDataD = new LinkedList<Object[]>(); sqlsDataD = new LinkedList<Object[]>();
sqls.add(SqlMapping.get("kylin_order_ticket_entities.add")); sqls.add(SqlMapping.get("kylin_order_ticket_entities.add"));
if (isTrueName == 1) { if (isTrueName == 1) {
for (AdamEntersVo enters : entersVoList) { for (AdamEntersVo enters : entersVoList) {
String orderTicketEntitiesId = IDGenerator.nextSnowId().toString();
orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId); orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId);
orderTicketEntities.setOrderId(orderTicketId); orderTicketEntities.setOrderId(orderTicketId);
orderTicketEntities.setTicketId(payOrderParam.getTicketId()); orderTicketEntities.setTicketId(payOrderParam.getTicketId());
...@@ -424,6 +424,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -424,6 +424,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
} else { } else {
for (int i = 0; i < payOrderParam.getNumber(); i++) { for (int i = 0; i < payOrderParam.getNumber(); i++) {
String orderTicketEntitiesId = IDGenerator.nextSnowId().toString();
orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId); orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId);
orderTicketEntities.setOrderId(orderTicketId); orderTicketEntities.setOrderId(orderTicketId);
orderTicketEntities.setTicketId(payOrderParam.getTicketId()); orderTicketEntities.setTicketId(payOrderParam.getTicketId());
...@@ -466,11 +467,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -466,11 +467,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
LinkedMultiValueMap<String, String> httpData = new LinkedMultiValueMap<String, String>(); LinkedMultiValueMap<String, String> httpData = new LinkedMultiValueMap<String, String>();
httpData.add("type", "TICKET"); httpData.add("type", "TICKET");
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) { /*if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
httpData.add("price", "0.01"); httpData.add("price", "0.01");
} else { } else {*/
httpData.add("price", orderTickets.getPriceActual().toString()); httpData.add("price", orderTickets.getPriceActual().toString());
} // }
httpData.add("name", useTime + ticketData.getTitle() + "-" + performanceData.getTitle()); httpData.add("name", useTime + ticketData.getTitle() + "-" + performanceData.getTitle());
httpData.add("detail", performanceData.getTitle() + "-" + ticketData.getTitle() + "-" + useTime); httpData.add("detail", performanceData.getTitle() + "-" + ticketData.getTitle() + "-" + useTime);
httpData.add("order_code", orderTickets.getOrderCode()); httpData.add("order_code", orderTickets.getOrderCode());
......
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam; import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.entity.KylinOrderRefunds; import com.liquidnet.service.kylin.entity.KylinOrderRefunds;
import com.liquidnet.service.kylin.mapper.KylinOrderRefundsMapper; import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.IKylinOrderRefundsService; import com.liquidnet.service.kylin.service.IKylinOrderRefundsService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
* 订单退款表 服务实现类 处理逻辑判断 * 订单退款表 服务实现类 处理逻辑判断
...@@ -29,6 +40,15 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun ...@@ -29,6 +40,15 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
@Autowired @Autowired
private KylinOrderRefundsMapper kylinOrderRefundsMapper; private KylinOrderRefundsMapper kylinOrderRefundsMapper;
@Autowired
private KylinOrderTicketsMapper kylinOrderTicketsMapper;
@Autowired
private KylinOrderTicketStatusMapper kylinOrderTicketStatusMapper;
@Autowired
private KylinOrderTicketEntitiesMapper kylinOrderTicketEntitiesMapper;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
...@@ -67,6 +87,7 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun ...@@ -67,6 +87,7 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
kylinOrderRefunds.setRefundId(refundCallbackParam.getRefund_id()); kylinOrderRefunds.setRefundId(refundCallbackParam.getRefund_id());
kylinOrderRefunds.setRefundAt(refundCallbackParam.getRefund_at()); kylinOrderRefunds.setRefundAt(refundCallbackParam.getRefund_at());
kylinOrderRefunds.setRefundError(refundCallbackParam.getRefund_error()); kylinOrderRefunds.setRefundError(refundCallbackParam.getRefund_error());
kylinOrderRefunds.setUpdatedAt(LocalDateTime.now());
kylinOrderRefundsMapper.update( kylinOrderRefundsMapper.update(
kylinOrderRefunds, kylinOrderRefunds,
...@@ -76,4 +97,35 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun ...@@ -76,4 +97,35 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
return "success"; return "success";
} }
public Boolean refundApply(String orderTicketsId) {
KylinOrderTickets orderInfo = kylinOrderTicketsMapper.selectOne(
new QueryWrapper<KylinOrderTickets>().eq("order_tickets_id", orderTicketsId)
);
// 查询订单入场人
List<KylinOrderTicketEntities> EntitiesList = kylinOrderTicketEntitiesMapper.selectList(
new QueryWrapper<KylinOrderTicketEntities>()
.eq("order_id", orderTicketsId)
.eq("is_payment", KylinTableStatusConst.ENTITIES_IS_PAYMENT1)
);
List<String> ticketEntityIds = EntitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getOrderTicketEntitiesId()).collect(Collectors.toList());
// 该订单正在退款或已有退款
int refundingCount = kylinOrderRefundsMapper.selectRefundingCount(
orderTicketsId,
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL,
ticketEntityIds
);
if (refundingCount > 0) {
return false;
}
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding(
orderInfo, orderTicketsId, ticketEntityIds
);
if (res) {
return true;
} else {
return false;
}
}
} }
package com.liquidnet.service.kylin.timerTask; package com.liquidnet.service.kylin.timerTask;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; 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.middle.KylinTicketVo;
...@@ -48,6 +50,8 @@ public class PerformanceVoTask { ...@@ -48,6 +50,8 @@ public class PerformanceVoTask {
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private RedisUtil redisUtil;
@Autowired
private MongoVoUtils mongoVoUtils; private MongoVoUtils mongoVoUtils;
@Autowired @Autowired
...@@ -239,6 +243,8 @@ public class PerformanceVoTask { ...@@ -239,6 +243,8 @@ public class PerformanceVoTask {
performances.setCreatedAt(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getCreatedAt()))); performances.setCreatedAt(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getCreatedAt())));
performances.setTimeStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getTimeStart()))); performances.setTimeStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getTimeStart())));
performances.setTimeEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getTimeEnd()))); performances.setTimeEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getTimeEnd())));
performances.setCityName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performanceRelations.getFieldId(), "city_name"));
performances.setCityId(Integer.parseInt((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performanceRelations.getFieldId(), "city_id")));
performances.setUpdatedAt(updatedAt); performances.setUpdatedAt(updatedAt);
performanceStatus.setPerformanceId(performances.getPerformancesId()); performanceStatus.setPerformanceId(performances.getPerformancesId());
......
...@@ -55,7 +55,7 @@ public class MongoVoUtils { ...@@ -55,7 +55,7 @@ public class MongoVoUtils {
//场地相关数据 //场地相关数据
KylinFields fields = new KylinFields(); KylinFields fields = new KylinFields();
String cityName = (String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name"); String cityName = (String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name");
fields.setCityId(null); fields.setCityId(Integer.parseInt((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_id")));
fields.setLatitude((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "latitude")); fields.setLatitude((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "latitude"));
fields.setLongitude((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "longitude")); fields.setLongitude((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "longitude"));
fields.setCityName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name")); fields.setCityName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name"));
......
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