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

Commit 53b86667 authored by 张国柄's avatar 张国柄

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

parents 4375839e 9444f955
...@@ -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;
......
...@@ -34,9 +34,9 @@ ...@@ -34,9 +34,9 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label layui-required is-required">备注:</label> <label class="col-sm-2 control-label layui-required is-required">备注:</label>
<div class="col-sm-10"> <div class="col-sm-10">
<textarea name="reason" maxlength="500" class="form-control layui-required" rows="3"></textarea> <textarea name="reason" maxlength="500" class="form-control layui-required" rows="3"></textarea>
</div> </div>
</div> </div>
</form> </form>
...@@ -148,8 +148,9 @@ ...@@ -148,8 +148,9 @@
field: '', field: '',
title: '退款金额', title: '退款金额',
formatter: function (value, row, index) { formatter: function (value, row, index) {
var price = result.orderTicketVo.price; var canRefundedPrice = row.canRefundedPrice;
var html = '<input class="form-control entitiesPrice" type="number" min="0.01" max="'+price+'" name="entitiesPrice" value="'+price+'">'; var orderTicketEntitiesId = row.orderTicketEntitiesId;
var html = '<input id="' + orderTicketEntitiesId + '" class="form-control" type="number" min="0.01" max="' + canRefundedPrice + '" value="' + canRefundedPrice + '">';
return html; return html;
} }
}, },
...@@ -171,19 +172,25 @@ ...@@ -171,19 +172,25 @@
var reason = $('#form-post-add').find("[name='reason']").val(); var reason = $('#form-post-add').find("[name='reason']").val();
var orderTicketsId = $('#form-post-add').find("[name='orderTicketsId']").val(); var orderTicketsId = $('#form-post-add').find("[name='orderTicketsId']").val();
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId); var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
if (!orderTicketsId || !reason || rows.length <= 0) { if (!orderTicketsId || !reason || rows.length <= 0) {
layer.msg("请完善数据"); layer.msg("请完善数据");
return false; return false;
} }
if ($.validate.form()) { if ($.validate.form()) {
var data = $('#form-post-add').serializeArray(); var data = $('#form-post-add').serializeArray();
data.push({"name":"ticketEntityIds","value":rows}); data.push({"name": "ticketEntityIds", "value": rows});
var entitiesPrice = $.table.selectColumns("price"); var entitiesPriceArray = [];
data.push({"name":"entitiesPrice","value":entitiesPrice}); for (i in rows) {
console.log(data) var idname = rows[i];
var entitiesPrice = $("#"+idname).val();
entitiesPriceArray.push(entitiesPrice);
}
data.push({"name": "entitiesPrice", "value": entitiesPriceArray});
$.operate.save(prefix + "/apply", data); $.operate.save(prefix + "/apply", data);
} }
} }
</script> </script>
</body> </body>
</html> </html>
...@@ -103,10 +103,13 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -103,10 +103,13 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
} }
// TODO: 2021/6/16 是否能单独退快递飞 批量退款是否退快递费 现在做的是自动退剩余快递费 // TODO: 2021/6/16 是否能单独退快递飞 批量退款是否退快递费 现在做的是自动退剩余快递费
// 传的快递费不能大于实际的快递费=(支付的快递费-已退的快递费) // 传的快递费不能大于实际的快递费=(支付的快递费-已退的快递费)
double refundPriceExpressSum = kylinOrderRefundsMapper.RefundPriceExpressSum(// 已退快递费 Double refundPriceExpressSum = kylinOrderRefundsMapper.RefundPriceExpressSum(// 已退快递费
orderTicketsId, orderTicketsId,
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL
); );
if (null == refundPriceExpressSum) {
refundPriceExpressSum = 0.0;
}
if (null == refundApplyParam.getOrderRefundBatchesId() || refundApplyParam.getOrderRefundBatchesId().isEmpty()) { // 不是批量退款 if (null == refundApplyParam.getOrderRefundBatchesId() || refundApplyParam.getOrderRefundBatchesId().isEmpty()) { // 不是批量退款
if (RefundPriceExpress > (priceExpress - refundPriceExpressSum)) { if (RefundPriceExpress > (priceExpress - refundPriceExpressSum)) {
return ResponseDto.failure("快递费不能大于实际减去已退的快递费"); return ResponseDto.failure("快递费不能大于实际减去已退的快递费");
...@@ -145,7 +148,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -145,7 +148,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
double onePrice = (priceActual - priceExpress) / allEntitiesCount;//单价 double onePrice = (priceActual - priceExpress) / allEntitiesCount;//单价
List<Double> realRefundPriceList = new ArrayList<>(); List<Double> realRefundPriceList = new ArrayList<>();
if (null == refundApplyParam.getOrderRefundBatchesId() || refundApplyParam.getOrderRefundBatchesId().isEmpty()) { // 不是批量退款 if (null == refundApplyParam.getOrderRefundBatchesId() || refundApplyParam.getOrderRefundBatchesId().isEmpty()) { // 不是批量退款
for (int i = 0; i <= ticketEntityIds.size(); i++) { for (int i = 0; i <= ticketEntityIds.size() -1; i++) {
Double price = entitiesPrice.get(i); Double price = entitiesPrice.get(i);
if (price < 0) { if (price < 0) {
return ResponseDto.failure("退款金额不能为0"); return ResponseDto.failure("退款金额不能为0");
...@@ -155,6 +158,9 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -155,6 +158,9 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL, KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL,
ticketEntityIds.get(i) ticketEntityIds.get(i)
); );
if (null == refundedPrice) {
refundedPrice = 0.0;
}
if (price > (onePrice - refundedPrice)) { if (price > (onePrice - refundedPrice)) {
return ResponseDto.failure("超过可退款金额"); return ResponseDto.failure("超过可退款金额");
} }
...@@ -162,12 +168,15 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -162,12 +168,15 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
} }
realRefundPriceList = entitiesPrice; realRefundPriceList = entitiesPrice;
} else { // 批量 计算入场人订单可退金额 } else { // 批量 计算入场人订单可退金额
for (int i = 0; i <= ticketEntityIds.size(); i++) { for (int i = 0; i <= ticketEntityIds.size() - 1; i++) {
Double refundedPrice = kylinOrderTicketEntitiesMapper.getRefundEntitiesPrice(//已退 包含退款中 Double refundedPrice = kylinOrderTicketEntitiesMapper.getRefundEntitiesPrice(//已退 包含退款中
orderTicketsId, orderTicketsId,
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL, KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL,
ticketEntityIds.get(i) ticketEntityIds.get(i)
); );
if (null == refundedPrice) {
refundedPrice = 0.0;
}
Double price = onePrice - refundedPrice; // 计算可退金额 Double price = onePrice - refundedPrice; // 计算可退金额
realRefundPriceList.add(price); realRefundPriceList.add(price);
} }
...@@ -378,12 +387,17 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -378,12 +387,17 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
); );
double onePrice = (priceActual - priceExpress) / allEntitiesCount;//单价 double onePrice = (priceActual - priceExpress) / allEntitiesCount;//单价
for (KylinOrderTicketEntitiesDao entities : entitiesList) { for (KylinOrderTicketEntitiesDao entities : entitiesList) {
double refundedPrice = kylinOrderTicketEntitiesMapper.getRefundEntitiesPrice(//已退 包含退款中 Double refundedPrice = kylinOrderTicketEntitiesMapper.getRefundEntitiesPrice(//已退 包含退款中
kylinOrderTickets.getOrderTicketsId(), kylinOrderTickets.getOrderTicketsId(),
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL, KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL,
entities.getOrderTicketEntitiesId() entities.getOrderTicketEntitiesId()
); );
double canRefundedPrice = onePrice - refundedPrice; double canRefundedPrice;
if (null != refundedPrice) {
canRefundedPrice = onePrice - refundedPrice;
} else {
canRefundedPrice = onePrice;
}
entities.setCanRefundedPrice(BigDecimal.valueOf(canRefundedPrice)); entities.setCanRefundedPrice(BigDecimal.valueOf(canRefundedPrice));
} }
} }
......
...@@ -168,7 +168,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -168,7 +168,7 @@ public class KylinRefundsStatusServiceImpl {
// 退款入场人表 // 退款入场人表
KylinOrderRefundEntities kylinOrderRefundEntities = new KylinOrderRefundEntities(); KylinOrderRefundEntities kylinOrderRefundEntities = new KylinOrderRefundEntities();
for (int i = 0; i <= ticketEntityIds.size(); i++) { for (int i = 0; i <= ticketEntityIds.size() - 1; i++) {
String orderRefundsEntitiesId = IDGenerator.nextSnowId().toString(); String orderRefundsEntitiesId = IDGenerator.nextSnowId().toString();
kylinOrderRefundEntities.setOrderRefundsEntitiesId(orderRefundsEntitiesId); kylinOrderRefundEntities.setOrderRefundsEntitiesId(orderRefundsEntitiesId);
kylinOrderRefundEntities.setOrderRefundsId(orderRefundsId); kylinOrderRefundEntities.setOrderRefundsId(orderRefundsId);
...@@ -379,6 +379,9 @@ public class KylinRefundsStatusServiceImpl { ...@@ -379,6 +379,9 @@ public class KylinRefundsStatusServiceImpl {
KylinTableStatusConst.ORDER_REFUND_STATUS_REFUNDED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUNDED,
entitiesId entitiesId
); );
if (null == refundedPrice) {
refundedPrice = 0.0;
}
KylinOrderRefundEntities refundEntitiesInfo = kylinOrderRefundsEntitiesMapper.selectOne( KylinOrderRefundEntities refundEntitiesInfo = kylinOrderRefundsEntitiesMapper.selectOne(
new QueryWrapper<KylinOrderRefundEntities>() new QueryWrapper<KylinOrderRefundEntities>()
.eq("order_refunds_id", refundInfo.getOrderRefundsId()) .eq("order_refunds_id", refundInfo.getOrderRefundsId())
......
...@@ -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())));
......
...@@ -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;
} }
...@@ -35,7 +35,7 @@ public interface KylinOrderRefundsMapper extends BaseMapper<KylinOrderRefunds> { ...@@ -35,7 +35,7 @@ public interface KylinOrderRefundsMapper extends BaseMapper<KylinOrderRefunds> {
@Param("ticketEntityIds") List<String> ticketEntityIds @Param("ticketEntityIds") List<String> ticketEntityIds
); );
double RefundPriceExpressSum( Double RefundPriceExpressSum(
@Param("orderTicketsId") String orderTicketsId, @Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatusCancel") Integer orderRefundStatusCancel @Param("orderRefundStatusCancel") Integer orderRefundStatusCancel
); );
......
...@@ -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">
......
...@@ -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);
}
} }
...@@ -5,6 +5,8 @@ import com.liquidnet.commons.lang.util.DateUtil; ...@@ -5,6 +5,8 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.constant.KylinRedisConst; 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.mongo.KylinOrderTicketEntitiesVo;
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;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo; import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo; import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
...@@ -19,10 +21,8 @@ import org.springframework.data.mongodb.core.convert.MongoConverter; ...@@ -19,10 +21,8 @@ import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Connection; import java.sql.*;
import java.sql.DriverManager; import java.time.LocalDateTime;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -50,6 +50,16 @@ public class DataImpl { ...@@ -50,6 +50,16 @@ public class DataImpl {
private KylinTicketRelationsMapper ticketRelationsMapper; private KylinTicketRelationsMapper ticketRelationsMapper;
@Autowired @Autowired
private PerformanceVoTask performanceVoTask; private PerformanceVoTask performanceVoTask;
@Autowired
private KylinOrderTicketsMapper orderTicketsMapper;
@Autowired
private KylinOrderTicketStatusMapper orderTicketStatusMapper;
@Autowired
private KylinOrderTicketRelationsMapper orderTicketRelationsMapper;
@Autowired
private KylinOrderTicketEntitiesMapper orderTicketEntitiesMapper;
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
...@@ -128,7 +138,7 @@ public class DataImpl { ...@@ -128,7 +138,7 @@ public class DataImpl {
performances.setNoticeImage("[{\"id\":1,\"sort\":1,\"message\":\"因演出票品非普通商品,其背后承载的文化服务具有时效性、稀缺性等特征,故不适用7天无理由退货政策。因“不可抗力”导致的演出取消或延期除外。\",\"title\":\"门票退换\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c45722882a13.png\"},{\"id\":7,\"sort\":2,\"message\":\"凭订单二维码或手机号兑票入场,二维码或手机号请勿泄露,以免影响入场。个人原因导致的信息泄露,主办方/平台方不承担任何责任。\",\"title\":\"电子票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png\"},{\"id\":3,\"sort\":3,\"message\":\"本场演出不设座位,均为站席观演。\",\"title\":\"仅设站席\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e93db0b9.png\"},{\"id\":12,\"sort\":4,\"message\":\"每场现场票数量由场地方决定,具体请到现场询问。\",\"title\":\"现场票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d07647eaa55f.png\"}]"); performances.setNoticeImage("[{\"id\":1,\"sort\":1,\"message\":\"因演出票品非普通商品,其背后承载的文化服务具有时效性、稀缺性等特征,故不适用7天无理由退货政策。因“不可抗力”导致的演出取消或延期除外。\",\"title\":\"门票退换\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c45722882a13.png\"},{\"id\":7,\"sort\":2,\"message\":\"凭订单二维码或手机号兑票入场,二维码或手机号请勿泄露,以免影响入场。个人原因导致的信息泄露,主办方/平台方不承担任何责任。\",\"title\":\"电子票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png\"},{\"id\":3,\"sort\":3,\"message\":\"本场演出不设座位,均为站席观演。\",\"title\":\"仅设站席\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e93db0b9.png\"},{\"id\":12,\"sort\":4,\"message\":\"每场现场票数量由场地方决定,具体请到现场询问。\",\"title\":\"现场票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d07647eaa55f.png\"}]");
performances.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("time_start").toString())); performances.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("time_start").toString()));
performances.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("time_end").toString())); performances.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("time_end").toString()));
if(null!=resultData.getString("audit_submit_time")) { if (null != resultData.getString("audit_submit_time")) {
performances.setAuditTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(resultData.getString("audit_submit_time"))); performances.setAuditTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(resultData.getString("audit_submit_time")));
} }
performances.setRejectTxt(resultData.getString("reject_text")); performances.setRejectTxt(resultData.getString("reject_text"));
...@@ -294,7 +304,7 @@ public class DataImpl { ...@@ -294,7 +304,7 @@ public class DataImpl {
tickets.setAdvanceMinuteMember(5); tickets.setAdvanceMinuteMember(5);
tickets.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_start").toString())); tickets.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_start").toString()));
tickets.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_end").toString())); tickets.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_end").toString()));
if(null!=ticketData.getTimestamp("time_end_express")) { if (null != ticketData.getTimestamp("time_end_express")) {
tickets.setTimeEndExpress(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_end_express").toString())); tickets.setTimeEndExpress(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_end_express").toString()));
} }
tickets.setUseStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_start").toString())); tickets.setUseStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_start").toString()));
...@@ -350,8 +360,8 @@ public class DataImpl { ...@@ -350,8 +360,8 @@ public class DataImpl {
ticketStatusMapper.insert(ticketStatus); ticketStatusMapper.insert(ticketStatus);
ticketRelationsMapper.insert(ticketRelations); ticketRelationsMapper.insert(ticketRelations);
dataUtils.setSurplusGeneral(tickets.getTicketsId(),ticketStatus.getSurplusGeneral()); dataUtils.setSurplusGeneral(tickets.getTicketsId(), ticketStatus.getSurplusGeneral());
dataUtils.setSurplusExchange(tickets.getTicketsId(),ticketStatus.getSurplusExchange()); dataUtils.setSurplusExchange(tickets.getTicketsId(), ticketStatus.getSurplusExchange());
//Vo //Vo
ticketPartnerVo.setTicketsId(tickets.getTicketsId()); ticketPartnerVo.setTicketsId(tickets.getTicketsId());
ticketPartnerVo.setTitle(tickets.getTitle()); ticketPartnerVo.setTitle(tickets.getTitle());
...@@ -398,7 +408,7 @@ public class DataImpl { ...@@ -398,7 +408,7 @@ public class DataImpl {
rowCount += resultData.getRow(); rowCount += resultData.getRow();
if (allCountResult > rowCount) { if (allCountResult > rowCount) {
isBreak = true; isBreak = true;
page+=1; page += 1;
} else { } else {
isBreak = false; isBreak = false;
} }
...@@ -421,4 +431,307 @@ public class DataImpl { ...@@ -421,4 +431,307 @@ public class DataImpl {
} }
} }
public boolean order(int month) {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
PreparedStatement pstmt = null; //使用预编译语句
ResultSet rs = null; //获取的结果集
KylinOrderTickets orderTickets = new KylinOrderTickets();
KylinOrderTicketStatus orderTicketStatus = new KylinOrderTicketStatus();
KylinOrderTicketRelations orderTicketRelations = new KylinOrderTicketRelations();
KylinOrderTicketEntities orderTicketEntities = new KylinOrderTicketEntities();
KylinOrderTicketVo orderTicketVo = new KylinOrderTicketVo();
ArrayList<KylinOrderTicketEntitiesVo> entitiesVosList = new ArrayList<>();
try {
int count = 200;
int page = 0;
Class.forName(driverClassName); //执行驱动
con = DriverManager.getConnection(url, username, password); //获取连接
// String sqlAllCount = "select count(0) as 'allCount' from order_tickets where performance_id > 5721 and status != 2 and created_at like '2021-" + month + "%'"; //设置的预编译语句格式
String sqlAllCount = "select count(0) as 'allCount' from order_tickets where performance_id = "+month + " and status != 2 and status !=-1"; //设置的预编译语句格式
pstmt = con.prepareStatement(sqlAllCount);
ResultSet allCount = pstmt.executeQuery();
int allCountResult = 0;//共多少条
int rowCount = 0;//当前多少条
boolean isBreak = false;//是否终端循环
while (allCount.next()) {
allCountResult = allCount.getInt("allCount");
}
do {
//订单
// String sql = "select * from order_tickets where performance_id > 5721 and status != 2 and created_at like '2021-" + month + "%' limit " + count * page + " ," + count; //设置的预编译语句格式
String sql = "select * from order_tickets where performance_id = "+month +" and status != 2 limit " + count * page + " ," + count;
pstmt = con.prepareStatement(sql);
ResultSet orderData = pstmt.executeQuery();
while (orderData.next()) {
String ticketSql = "select student,use_end,use_start,title,type from tickets where id = " + orderData.getInt("ticket_id"); //设置的预编译语句格式
pstmt = con.prepareStatement(ticketSql);
ResultSet ticketData = pstmt.executeQuery();
int isStudent = 0;
String useEnd = "";
String useStart = "";
String ticketTitle = "";
int ticketType = 0;
while (ticketData.next()) {
isStudent = ticketData.getString("student").equals("yes") ? 1 : 0;
ticketTitle = ticketData.getString("title");
ticketType = ticketData.getInt("type");
useEnd = DateUtil.Formatter.yyyyMMddHHmmss.format(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_end").toString()));
useStart = DateUtil.Formatter.yyyyMMddHHmmss.format(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_start").toString()));
}
//退款
String refundSql = "select refund_table_id,sum(refund_number) as 'refund_number',sum(refund_price) as 'refund_price' from order_refunds where refund_table = 'order_ticket_entities' and order_id = " + orderData.getInt("id")+" group by refund_table_id"; //设置的预编译语句格式
pstmt = con.prepareStatement(refundSql);
int refundNumber = 0;
BigDecimal refundPrice = new BigDecimal("0.00");
ResultSet refundData = pstmt.executeQuery();
while (refundData.next()) {
refundNumber+=refundData.getInt("refund_number");
refundPrice.add(refundData.getBigDecimal("refund_price"));
}
//演出
String performancedSql = "select time_start,img_poster,need_id_card from performances where id =" + orderData.getInt("performance_id");
pstmt = con.prepareStatement(performancedSql);
ResultSet performanceData = pstmt.executeQuery();
String performanceTimeStart = "";
String performanceImg = "";
int isTrueName = 0;
while (performanceData.next()) {
performanceTimeStart = DateUtil.Formatter.yyyyMMddHHmmss.format(DateUtil.Formatter.yyyyMMddHHmmssS.parse(performanceData.getTimestamp("time_start").toString()));
performanceImg=performanceData.getString("img_poster");
isTrueName=performanceData.getString("need_id_card").equals("yes")?1:0;
}
orderTickets.setOrderTicketsId(orderData.getInt("id") + "");
orderTickets.setUserId(orderData.getInt("user_id") + "");
orderTickets.setUserName(orderData.getString("user_name"));
orderTickets.setUserMobile(orderData.getString("user_mobile"));
orderTickets.setPerformanceTitle(orderData.getString("performance_title"));
orderTickets.setOrderCode(orderData.getString("order_code"));
orderTickets.setPayCode(orderData.getString("pay_code"));
orderTickets.setQrCode(orderData.getString("qr_code"));
orderTickets.setOrderType(orderData.getString("order_type"));
orderTickets.setOrderSource(orderData.getString("order_type"));
orderTickets.setOrderVersion(orderData.getString("order_version"));
orderTickets.setNumber(orderData.getInt("number"));
orderTickets.setPrice(orderData.getBigDecimal("price"));
orderTickets.setPriceMember(orderData.getBigDecimal("price_member"));
orderTickets.setPriceTotal(orderData.getBigDecimal("price_total"));
orderTickets.setPriceVoucher(orderData.getBigDecimal("price_voucher"));
orderTickets.setPriceActual(orderData.getBigDecimal("price_actual"));
orderTickets.setPriceExpress(orderData.getBigDecimal("price_express"));
orderTickets.setPriceRefund(refundPrice);
orderTickets.setRefundNumber(refundNumber);
orderTickets.setPayType(orderData.getString("pay_type"));
orderTickets.setPaymentType(orderData.getString("payment_type"));
orderTickets.setTimePay(orderData.getString("time_pay"));
orderTickets.setExpressContacts(orderData.getString("express_contacts"));
orderTickets.setExpressAddress(orderData.getString("express_address"));
orderTickets.setExpressPhone(orderData.getString("express_phone"));
orderTickets.setCouponType(orderData.getString("coupon_type"));
orderTickets.setGetTicketType(orderData.getString("get_ticket_type"));
orderTickets.setGetTicketDescribe(orderData.getString("get_ticket_describe"));
orderTickets.setPayCountdownMinute(orderData.getInt("pay_countdown_minute"));
orderTickets.setComment("");
orderTickets.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("created_at").toString()));
if (null != orderData.getTimestamp("updated_at")) {
orderTickets.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("updated_at").toString()));
}
orderTicketStatus.setOrderTicketStatusId(IDGenerator.nextSnowId().toString());
orderTicketStatus.setOrderId(orderTickets.getOrderTicketsId());
orderTicketStatus.setExpressType(orderData.getInt("express_type"));
orderTicketStatus.setIsStudent(isStudent);
orderTicketStatus.setTransferStatus(orderData.getInt("transfer_status"));
orderTicketStatus.setStatus(orderData.getInt("status"));
orderTicketStatus.setPayStatus(orderData.getInt("pay_status"));
orderTicketStatus.setCreatedAt(orderTickets.getCreatedAt());
orderTicketStatus.setUpdatedAt(orderTickets.getUpdatedAt());
orderTicketRelations.setOrderTicketRelationsId(IDGenerator.nextSnowId().toString());
orderTicketRelations.setOrderId(orderTickets.getOrderTicketsId());
orderTicketRelations.setTransferId(orderData.getInt("transfer_id") + "");
orderTicketRelations.setLiveId(orderData.getInt("live_id") + "");
orderTicketRelations.setPerformanceId(orderData.getString("performance_id"));
orderTicketRelations.setTimeId("");
orderTicketRelations.setTicketId(orderData.getString("ticket_id"));
orderTicketRelations.setAgentId(orderData.getString("proxy_id"));
orderTicketRelations.setIsMember(orderData.getInt("is_member"));
orderTicketRelations.setCreatedAt(orderTickets.getCreatedAt());
orderTicketRelations.setUpdatedAt(orderTickets.getUpdatedAt());
orderTicketsMapper.insert(orderTickets);
orderTicketStatusMapper.insert(orderTicketStatus);
orderTicketRelationsMapper.insert(orderTicketRelations);
//vo
orderTicketVo.setMid(0);
orderTicketVo.setOrderTicketsId(orderTickets.getOrderTicketsId());
orderTicketVo.setUserId(orderTickets.getUserId());
orderTicketVo.setUserName(orderTickets.getUserName());
orderTicketVo.setUserMobile(orderTickets.getUserMobile());
orderTicketVo.setPerformanceTitle(orderTickets.getPerformanceTitle());
orderTicketVo.setTicketTitle(ticketTitle);
orderTicketVo.setTimeStart(performanceTimeStart);
orderTicketVo.setUseStart(useStart);
orderTicketVo.setPerformanceImg(performanceImg);
orderTicketVo.setOrderCode(orderTickets.getOrderCode());
orderTicketVo.setPayCode(orderTickets.getPayCode());
orderTicketVo.setQrCode(orderTickets.getQrCode());
orderTicketVo.setOrderType(orderTickets.getOrderType());
orderTicketVo.setOrderVersion(orderTickets.getOrderVersion());
orderTicketVo.setNumber(orderTickets.getNumber());
orderTicketVo.setPrice(orderTickets.getPrice());
orderTicketVo.setPriceMember(orderTickets.getPriceMember());
orderTicketVo.setPriceTotal(orderTickets.getPriceTotal());
orderTicketVo.setPriceVoucher(orderTickets.getPriceVoucher());
orderTicketVo.setPriceActual(orderTickets.getPriceActual());
orderTicketVo.setPriceExpress(orderTickets.getPriceExpress());
orderTicketVo.setPriceRefund(orderTickets.getPriceRefund());
orderTicketVo.setRefundNumber(orderTickets.getRefundNumber());
orderTicketVo.setPayType(orderTickets.getPayType());
orderTicketVo.setPaymentType(orderTickets.getPaymentType());
orderTicketVo.setTimePay(orderTickets.getTimePay());
orderTicketVo.setExpressContacts(orderTickets.getExpressContacts());
orderTicketVo.setExpressAddress(orderTickets.getExpressAddress());
orderTicketVo.setExpressPhone(orderTickets.getExpressPhone());
orderTicketVo.setCouponType(orderTickets.getCouponType());
orderTicketVo.setGetTicketType(orderTickets.getGetTicketType());
orderTicketVo.setGetTicketDescribe(orderTickets.getGetTicketDescribe());
orderTicketVo.setPayCountdownMinute(orderTickets.getPayCountdownMinute());
orderTicketVo.setExpressType(orderTicketStatus.getExpressType());
orderTicketVo.setIsStudent(orderTicketStatus.getIsStudent());
orderTicketVo.setTransferStatus(orderTicketStatus.getTransferStatus());
orderTicketVo.setStatus(orderTicketStatus.getStatus());
orderTicketVo.setPayStatus(orderTicketStatus.getPayStatus());
orderTicketVo.setTransferId(orderTicketRelations.getTransferId());
orderTicketVo.setLiveId(orderTicketRelations.getLiveId());
orderTicketVo.setPerformanceId(orderTicketRelations.getPerformanceId());
orderTicketVo.setTimeId(orderTicketRelations.getTimeId());
orderTicketVo.setTicketId(orderTicketRelations.getTicketId());
orderTicketVo.setAgentId(orderTicketRelations.getAgentId());
orderTicketVo.setIsMember(orderTicketRelations.getIsMember());
orderTicketVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTickets.getCreatedAt()));
orderTicketVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTickets.getUpdatedAt()));
orderTicketVo.setChangeDate(orderTickets.getUpdatedAt() == null ? orderTickets.getUpdatedAt() : orderTickets.getCreatedAt());
orderTicketVo.setIsTrueName(isTrueName);
orderTicketVo.setOverdueAt(orderTickets.getCreatedAt().plusMinutes(orderTickets.getPayCountdownMinute()).plusSeconds(15).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
orderTicketVo.setNoticeImage("[{\"id\":1,\"sort\":1,\"message\":\"因演出票品非普通商品,其背后承载的文化服务具有时效性、稀缺性等特征,故不适用7天无理由退货政策。因“不可抗力”导致的演出取消或延期除外。\",\"title\":\"门票退换\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c45722882a13.png\"},{\"id\":7,\"sort\":2,\"message\":\"凭订单二维码或手机号兑票入场,二维码或手机号请勿泄露,以免影响入场。个人原因导致的信息泄露,主办方/平台方不承担任何责任。\",\"title\":\"电子票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png\"},{\"id\":3,\"sort\":3,\"message\":\"本场演出不设座位,均为站席观演。\",\"title\":\"仅设站席\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e93db0b9.png\"},{\"id\":12,\"sort\":4,\"message\":\"每场现场票数量由场地方决定,具体请到现场询问。\",\"title\":\"现场票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d07647eaa55f.png\"}]");
orderTicketVo.setTicketType(ticketType);
orderTicketVo.setFieldName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + orderTicketRelations.getPerformanceId(), "name"));
mongoTemplate.insert(orderTicketVo, KylinOrderTicketVo.class.getSimpleName());
//入场人
String enterSql = "select * from order_ticket_entities where order_id = " + orderTickets.getOrderTicketsId(); //设置的预编译语句格式
pstmt = con.prepareStatement(enterSql);
ResultSet enterData = pstmt.executeQuery();
while (enterData.next()) {
KylinOrderTicketEntitiesVo entitiesVo = new KylinOrderTicketEntitiesVo();
orderTicketEntities.setOrderTicketEntitiesId(enterData.getInt("id")+"");
orderTicketEntities.setOrderId(orderTickets.getOrderTicketsId());
orderTicketEntities.setTicketId(enterData.getInt("ticket_id") + "");
orderTicketEntities.setUserId(enterData.getInt("user_id") + "");
orderTicketEntities.setPerformanceId(enterData.getInt("performance_id") + "");
orderTicketEntities.setTimeId("");
orderTicketEntities.setEnterType(Integer.parseInt(enterData.getString("enter_type")));
orderTicketEntities.setEnterName(enterData.getString("enter_name"));
orderTicketEntities.setEnterMobile(enterData.getString("enter_mobile"));
orderTicketEntities.setEnterIdCode(enterData.getString("enter_idcode"));
orderTicketEntities.setStatus(enterData.getInt("status"));
orderTicketEntities.setSysDamai(0);
orderTicketEntities.setCheckClient("");
int isPayment = 0;
switch (enterData.getString("is_payment")) {
case "yes":
isPayment = 1;
break;
case "no":
isPayment = 0;
break;
case "refunding":
isPayment = 2;
break;
case "refunded":
isPayment = 3;
break;
}
orderTicketEntities.setIsPayment(isPayment);
orderTicketEntities.setRefundPrice(isPayment == 3 ? orderTickets.getPrice() : new BigDecimal("0.00"));
orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("created_at").toString()));
if (null != orderData.getTimestamp("updated_at")) {
orderTicketEntities.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("updated_at").toString()));
}
orderTicketEntitiesMapper.insert(orderTicketEntities);
//vo
entitiesVo.setMid(0);
entitiesVo.setOrderTicketEntitiesId(orderTicketEntities.getOrderTicketEntitiesId());
entitiesVo.setOrderId(orderTicketEntities.getOrderId());
entitiesVo.setTicketId(orderTicketEntities.getTicketId());
entitiesVo.setUserId(orderTicketEntities.getUserId());
entitiesVo.setPerformanceId(orderTicketEntities.getPerformanceId());
entitiesVo.setTimeId(orderTicketEntities.getTimeId());
entitiesVo.setEnterType(orderTicketEntities.getEnterType());
entitiesVo.setEnterName(orderTicketEntities.getEnterName());
entitiesVo.setEnterMobile(orderTicketEntities.getEnterMobile());
entitiesVo.setEnterIdCode(orderTicketEntities.getEnterIdCode());
entitiesVo.setStatus(orderTicketEntities.getStatus());
entitiesVo.setSysDamai(orderTicketEntities.getSysDamai());
entitiesVo.setCheckClient(orderTicketEntities.getCheckClient());
entitiesVo.setIsPayment(orderTicketEntities.getIsPayment());
entitiesVo.setPerformanceTitle(orderTickets.getPerformanceTitle());
entitiesVo.setTicketTitle(ticketTitle);
entitiesVo.setUseStart(useStart);
entitiesVo.setUseEnd(useEnd);
entitiesVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTicketEntities.getCreatedAt()));
entitiesVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTicketEntities.getUpdatedAt()));
entitiesVo.setTicketsmId(0);
entitiesVo.setTimemId(0);
entitiesVo.setChangeDate(orderTicketEntities.getUpdatedAt() == null ? orderTicketEntities.getUpdatedAt() : orderTicketEntities.getCreatedAt());
mongoTemplate.insert(entitiesVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
entitiesVosList.add(entitiesVo);
}
orderTicketVo.setEntitiesVoList(entitiesVosList);
}
orderData.last();
rowCount += orderData.getRow();
if (allCountResult > rowCount) {
isBreak = true;
page += 1;
} else {
isBreak = false;
}
} while (isBreak);
return true;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
//关闭资源,倒关
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (con != null) con.close(); //必须要关
} catch (Exception e) {
}
}
}
} }
...@@ -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());
......
...@@ -116,6 +116,9 @@ public class KylinRefundsStatusServiceImpl { ...@@ -116,6 +116,9 @@ public class KylinRefundsStatusServiceImpl {
KylinTableStatusConst.ORDER_REFUND_STATUS_REFUNDED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUNDED,
entitiesId entitiesId
); );
if (null == refundedPrice) {
refundedPrice = 0.0;
}
KylinOrderRefundEntities refundEntitiesInfo = kylinOrderRefundsEntitiesMapper.selectOne( KylinOrderRefundEntities refundEntitiesInfo = kylinOrderRefundsEntitiesMapper.selectOne(
new QueryWrapper<KylinOrderRefundEntities>() new QueryWrapper<KylinOrderRefundEntities>()
.eq("order_refunds_id", refundInfo.getOrderRefundsId()) .eq("order_refunds_id", refundInfo.getOrderRefundsId())
...@@ -293,7 +296,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -293,7 +296,7 @@ public class KylinRefundsStatusServiceImpl {
// 退款入场人表 // 退款入场人表
KylinOrderRefundEntities kylinOrderRefundEntities = new KylinOrderRefundEntities(); KylinOrderRefundEntities kylinOrderRefundEntities = new KylinOrderRefundEntities();
for (int i = 0; i <= ticketEntityIds.size(); i++) { for (int i = 0; i <= ticketEntityIds.size() - 1; i++) {
String orderRefundsEntitiesId = IDGenerator.nextSnowId().toString(); String orderRefundsEntitiesId = IDGenerator.nextSnowId().toString();
kylinOrderRefundEntities.setOrderRefundsEntitiesId(orderRefundsEntitiesId); kylinOrderRefundEntities.setOrderRefundsEntitiesId(orderRefundsEntitiesId);
kylinOrderRefundEntities.setOrderRefundsId(orderRefundsId); kylinOrderRefundEntities.setOrderRefundsId(orderRefundsId);
......
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