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

Commit 7365d574 authored by 张国柄's avatar 张国柄

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

parents d437b584 08c5ba76
...@@ -16,7 +16,8 @@ public class KylinRedisConst { ...@@ -16,7 +16,8 @@ public class KylinRedisConst {
public static final String SURPLUS_EXCHANGE = "surplusExchange"; public static final String SURPLUS_EXCHANGE = "surplusExchange";
public static final String TICKET = "kylin:ticket:id:"; public static final String TICKET = "kylin:ticket:id:";
public static final String ORDER = "kylin:order:id:"; public static final String ORDER = "kylin:order:id:";
public static final String ORDER_ROUTE_INFO = "kylin::order:route_info:id:"; public static final String ORDER_ROUTE_INFO = "kylin::order:routeInfo:id:";
public static final String ORDER_EXPRESS_STATUS = "kylin::order:ExpressStatus:id:";
public static final String ORDER_ENTITIES = "kylin:order_entities:id:"; public static final String ORDER_ENTITIES = "kylin:order_entities:id:";
public static final String TIMES = "kylin:times:id:"; public static final String TIMES = "kylin:times:id:";
public static final String AGENT = "kylin:agent:info"; public static final String AGENT = "kylin:agent:info";
......
...@@ -22,9 +22,7 @@ public class KylinOrderListVo implements Serializable { ...@@ -22,9 +22,7 @@ public class KylinOrderListVo implements Serializable {
private BigDecimal priceActual; private BigDecimal priceActual;
private Integer number; private Integer number;
private Integer status; private Integer status;
private String express_number; private Integer expressStatus;
private String express_company;
private Integer kuaidi_status;
private String getTicketType; private String getTicketType;
private String createdAt; private String createdAt;
} }
...@@ -9,9 +9,7 @@ import java.util.List; ...@@ -9,9 +9,7 @@ import java.util.List;
public class OrderDetailsVo { public class OrderDetailsVo {
private KylinOrderTicketVo orderTicketVo; private KylinOrderTicketVo orderTicketVo;
private String enterDescribe; private String enterDescribe;
private String express_number; private Integer expressStatus;
private String express_company;
private Integer kuaidi_status;
private Long restTime; private Long restTime;
private Integer isCanRefund; private Integer isCanRefund;
private List<KylinOrderRefundsOrderCodeVo> orderRefundsVoList; private List<KylinOrderRefundsOrderCodeVo> orderRefundsVoList;
......
...@@ -34,14 +34,14 @@ INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, ur ...@@ -34,14 +34,14 @@ INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, ur
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2031, '删除', 2027, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:banners:delete', '#', 'admin', '2021-06-07 20:07:07', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2031, '删除', 2027, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:banners:delete', '#', 'admin', '2021-06-07 20:07:07', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2032, '快递管理', 2000, 4, '#', 'menuItem', 'C', '0', '1', 'kylin:performancesExpress:view', '#', 'admin', '2021-06-30 20:01:36', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2032, '快递管理', 2000, 4, '#', 'menuItem', 'C', '0', '1', 'kylin:performancesExpress:view', '#', 'admin', '2021-06-30 20:01:36', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2033, '演出快递列表', 2032, 0, '/kylin/performancesExpress', 'menuItem', 'C', '0', '1', 'kylin:performancesExpress:list', '#', 'admin', '2021-06-30 20:03:59', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2033, '演出列表', 2032, 0, '/kylin/performancesExpress', 'menuItem', 'C', '0', '1', 'kylin:performancesExpress:list', '#', 'admin', '2021-06-30 20:03:59', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2034, '查看演出订单', 2033, 0, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:performanceOrderList', '#', 'admin', '2021-06-30 20:05:33', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2034, '查看演出订单', 2033, 0, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:performanceOrderList', '#', 'admin', '2021-06-30 20:05:33', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2035, '下单', 2034, 1, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:placeOrder', '#', 'admin', '2021-06-30 20:05:58', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2035, '下单', 2034, 1, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:placeOrder', '#', 'admin', '2021-06-30 20:05:58', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2036, '取消', 2034, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:cancelOrder', '#', 'admin', '2021-06-30 20:07:07', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2036, '取消', 2034, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:cancelOrder', '#', 'admin', '2021-06-30 20:07:07', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2037, '下单结果主动查询', 2034, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:getResult', '#', 'admin', '2021-06-30 20:07:07', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2037, '下单结果主动查询', 2034, 3, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:getResult', '#', 'admin', '2021-06-30 20:07:07', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2038, '运费估算', 2034, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:getFreight', '#', 'admin', '2021-06-30 20:07:07', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2038, '运费估算', 2034, 4, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:getFreight', '#', 'admin', '2021-06-30 20:07:07', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2039, '实际运费主动查询', 2034, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:getListFreight', '#', 'admin', '2021-06-30 20:07:07', '', null, ''); INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2039, '路由信息主动查询', 2034, 5, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:listOrderRoute', '#', 'admin', '2021-06-30 20:07:07', '', null, '');
INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2040, '路由信息主动查询', 2034, 2, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:listOrderRoute', '#', 'admin', '2021-06-30 20:07:07', '', null, ''); # INSERT INTO test_ln_scene.sys_menu (menu_id, menu_name, parent_id, order_num, url, target, menu_type, visible, is_refresh, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2040, '实际运费主动查询', 2034, 6, '#', 'menuItem', 'F', '0', '1', 'kylin:performancesExpress:getListFreight', '#', 'admin', '2021-06-30 20:07:07', '', null, '');
-- sys_role_menu -- sys_role_menu
INSERT INTO test_ln_scene.sys_role_menu (role_id, menu_id) VALUES (2, 2000); INSERT INTO test_ln_scene.sys_role_menu (role_id, menu_id) VALUES (2, 2000);
......
...@@ -146,13 +146,13 @@ public class PerformancesExpressController extends BaseController { ...@@ -146,13 +146,13 @@ public class PerformancesExpressController extends BaseController {
} }
/** /**
* 实际运费主动查询 * 路由信息主动查询
*/ */
@RequiresPermissions("kylin:performancesExpress:getListFreight") @RequiresPermissions("kylin:performancesExpress:listOrderRoute")
@PostMapping("/getListFreight") @PostMapping("/listOrderRoute")
@ResponseBody @ResponseBody
public AjaxResult getListFreight(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) { public AjaxResult listOrderRoute(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
ResponseDto res = performancesExpressServiceImpl.getListFreight(performanceExpressSearchAdminParam); ResponseDto res = performancesExpressServiceImpl.listOrderRoute(performanceExpressSearchAdminParam);
try { try {
if (res.isSuccess()) { if (res.isSuccess()) {
return success(); return success();
...@@ -165,13 +165,13 @@ public class PerformancesExpressController extends BaseController { ...@@ -165,13 +165,13 @@ public class PerformancesExpressController extends BaseController {
} }
/** /**
* 路由信息主动查询 * 实际运费主动查询 暂时可先不用
*/ */
@RequiresPermissions("kylin:performancesExpress:listOrderRoute") @RequiresPermissions("kylin:performancesExpress:getListFreight")
@PostMapping("/listOrderRoute") @PostMapping("/getListFreight")
@ResponseBody @ResponseBody
public AjaxResult listOrderRoute(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) { public AjaxResult getListFreight(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
ResponseDto res = performancesExpressServiceImpl.listOrderRoute(performanceExpressSearchAdminParam); ResponseDto res = performancesExpressServiceImpl.getListFreight(performanceExpressSearchAdminParam);
try { try {
if (res.isSuccess()) { if (res.isSuccess()) {
return success(); return success();
...@@ -198,4 +198,34 @@ public class PerformancesExpressController extends BaseController { ...@@ -198,4 +198,34 @@ public class PerformancesExpressController extends BaseController {
* 订单确认 快递员上门揽收前,如需修改部分下单内容(如收件人信息等 * 订单确认 快递员上门揽收前,如需修改部分下单内容(如收件人信息等
*/ */
/**
* 批量下单
*/
@RequiresPermissions("kylin:performancesExpress:batchPlaceOrder")
@PostMapping("/batchPlaceOrder")
@ResponseBody
public AjaxResult batchPlaceOrder(@RequestParam("ids") String performanceId) {
try {
performancesExpressServiceImpl.batchPlaceOrder(performanceId);
return success();
} catch (Exception e) {
return error(e.getMessage());
}
}
/**
* 批量取消
*/
@RequiresPermissions("kylin:performancesExpress:batchCancelOrder")
@PostMapping("/batchCancelOrder")
@ResponseBody
public AjaxResult batchCancelOrder(@RequestParam("ids") String performanceId) {
try {
performancesExpressServiceImpl.batchCancelOrder(performanceId);
return success();
} catch (Exception e) {
return error(e.getMessage());
}
}
} }
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
actions.push('<a class="btn btn-danger btn-xs ' + cancelOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定取消快递单吗?\', table.options.cancelOrderUrl)"></i>取消</a> '); actions.push('<a class="btn btn-danger btn-xs ' + cancelOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定取消快递单吗?\', table.options.cancelOrderUrl)"></i>取消</a> ');
actions.push('<a class="btn btn-success btn-xs ' + getResultFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取快递信息吗?\', table.options.getResultUrl)"></i>主动获取下单信息</a> '); actions.push('<a class="btn btn-success btn-xs ' + getResultFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取快递信息吗?\', table.options.getResultUrl)"></i>主动获取下单信息</a> ');
actions.push('<a class="btn btn-success btn-xs ' + getFreightFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取估算运费吗?\', table.options.getFreightUrl)"></i>运费估算</a> '); actions.push('<a class="btn btn-success btn-xs ' + getFreightFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取估算运费吗?\', table.options.getFreightUrl)"></i>运费估算</a> ');
actions.push('<a class="btn btn-success btn-xs ' + getListFreightFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取运费信息吗?\', table.options.getListFreightUrl)"></i>主动获取运费</a> '); // actions.push('<a class="btn btn-success btn-xs ' + getListFreightFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取运费信息吗?\', table.options.getListFreightUrl)"></i>主动获取运费</a> ');
actions.push('<a class="btn btn-success btn-xs ' + listOrderRouteFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取路由信息吗?\', table.options.listOrderRouteUrl)"></i>路由主动查询</a> '); actions.push('<a class="btn btn-success btn-xs ' + listOrderRouteFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取路由信息吗?\', table.options.listOrderRouteUrl)"></i>路由主动查询</a> ');
return actions.join(''); return actions.join('');
} }
......
...@@ -37,16 +37,18 @@ ...@@ -37,16 +37,18 @@
<th:block th:include="include :: footer"/> <th:block th:include="include :: footer"/>
<script th:inline="javascript"> <script th:inline="javascript">
var performanceOrderListFlag = [[${@permission.hasPermi('kylin:performancesExpress:performanceOrderList')}]]; var performanceOrderListFlag = [[${@permission.hasPermi('kylin:performancesExpress:performanceOrderList')}]];
var batchPlaceOrderFlag = [[${@permission.hasPermi('kylin:performancesExpress:batchPlaceOrder')}]];
var batchCancelOrderFlag = [[${@permission.hasPermi('kylin:performancesExpress:batchCancelOrder')}]];
var prefix = ctx + "kylin/performancesExpress"; var prefix = ctx + "kylin/performancesExpress";
$(function () { $(function () {
var options = { var options = {
url: prefix + "/performancesList", url: prefix + "/performancesList",
detailUrl: prefix + "/performanceOrderList/{id}", detailUrl: prefix + "/performanceOrderList/{id}",
batchPlaceOrderUrl: prefix + "/batchPlaceOrder",
batchCancelOrderUrl: prefix + "/batchCancelOrder",
modalName: "演出快递", modalName: "演出快递",
columns: [{ columns: [
checkbox: true
},
{ {
field: 'performancesId', field: 'performancesId',
title: '演出id' title: '演出id'
...@@ -60,19 +62,19 @@ ...@@ -60,19 +62,19 @@
title: '开演时间' title: '开演时间'
}, },
{ {
field: '22', field: 'totalNumber',
title: '总数' title: '总数'
}, },
{ {
field: '33', field: 'total1',
title: '待发货' title: '待发货'
}, },
{ {
field: '44', field: 'total2',
title: '已发货' title: '已发货'
}, },
{ {
field: '55', field: 'total3',
title: '已签收' title: '已签收'
}, },
{ {
...@@ -81,6 +83,8 @@ ...@@ -81,6 +83,8 @@
formatter: function (value, row, index) { formatter: function (value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + performanceOrderListFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>查看</a> '); actions.push('<a class="btn btn-success btn-xs ' + performanceOrderListFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>查看</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + batchPlaceOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.performancesId + '\', \'确定批量下单吗?\', table.options.batchPlaceOrderUrl)"></i>下单</a> ');
actions.push('<a class="btn btn-warning btn-xs ' + batchCancelOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.performancesId + '\', \'确定批量取消吗?\', table.options.batchCancelOrderUrl)"></i>取消</a> ');
return actions.join(''); return actions.join('');
} }
}] }]
......
...@@ -17,13 +17,16 @@ import lombok.extern.slf4j.Slf4j; ...@@ -17,13 +17,16 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
...@@ -82,6 +85,17 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -82,6 +85,17 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
try { try {
Map<String, Object> map = BeanUtil.convertBeanToMap(performanceExpressSearchAdminParam); Map<String, Object> map = BeanUtil.convertBeanToMap(performanceExpressSearchAdminParam);
voList = performancesMapper.performanceExpressPerformanceList(map); voList = performancesMapper.performanceExpressPerformanceList(map);
if (!CollectionUtil.isEmpty(voList)) {
for (PerformanceExpressPerformanceListAdminDao info : voList) {
PerformanceExpressPerformanceListAdminDao countInfo = performancesMapper.countExpressNumber(info.getPerformancesId());
if (null != countInfo) {
info.setTotalNumber(countInfo.getTotalNumber());
info.setTotal1(countInfo.getTotal1());
info.setTotal2(countInfo.getTotal2());
info.setTotal3(countInfo.getTotal3());
}
}
}
} catch (Exception e) { } catch (Exception e) {
} }
return voList; return voList;
...@@ -385,4 +399,49 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -385,4 +399,49 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
return ResponseDto.success(); return ResponseDto.success();
} }
// @Async
public void batchPlaceOrder(String performanceId) {
int count;
int limitNum = 10;
int mid = 0;
do {
List<KylinOrderTickets> orderList = kylinOrderTicketsMapper.getCanPlaceOrderList(performanceId, mid, limitNum);
if (!CollectionUtil.isEmpty(orderList)) {
List<String> orderIds = orderList.stream().map(KylinOrderTickets -> KylinOrderTickets.getOrderTicketsId()).collect(Collectors.toList());
PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam = new PerformanceExpressSearchAdminParam();
performanceExpressSearchAdminParam.setIds(orderIds);
placeOrder(performanceExpressSearchAdminParam);
}
count = orderList.size();
if (count > 0) {
KylinOrderTickets lastInfo = orderList.get(count - 1);
mid = lastInfo.getMid();
}
} while (count >= limitNum);
}
// @Async
public void batchCancelOrder(String performanceId) {
int count;
int limitNum = 10;
int mid = 0;
do {
List<KylinOrderTickets> orderList = kylinOrderTicketsMapper.getCanCancelOrderList(performanceId, mid, limitNum);
if (!CollectionUtil.isEmpty(orderList)) {
List<String> orderIds = orderList.stream().map(KylinOrderTickets -> KylinOrderTickets.getOrderTicketsId()).collect(Collectors.toList());
PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam = new PerformanceExpressSearchAdminParam();
performanceExpressSearchAdminParam.setIds(orderIds);
cancelOrder(performanceExpressSearchAdminParam);
}
count = orderList.size();
if (count > 0) {
KylinOrderTickets lastInfo = orderList.get(count - 1);
mid = lastInfo.getMid();
}
} while (count >= limitNum);
}
} }
...@@ -20,17 +20,6 @@ liquidnet: ...@@ -20,17 +20,6 @@ liquidnet:
sslEnabled: false sslEnabled: false
database: dev_ln_scene database: dev_ln_scene
shunfeng: shunfeng:
url: ${liquidnet.client.admin.shunfeng.url}
sk: ${liquidnet.client.admin.shunfeng.sk} sk: ${liquidnet.client.admin.shunfeng.sk}
appid: ${liquidnet.client.admin.shunfeng.appid}
custid: ${liquidnet.client.admin.shunfeng.custid}
jCompany: 北京正在映画互联网有限公司
jContact: 摩登天空票务部
jTel: 4001680650
jProvince: 北京
jCity: 北京市
jAddress: 朝阳区广渠路1号北京市商业储运公司3-12号 摩登天空
expressType: 1 # 默认顺丰特快
depositumInfo: 演出纸质票
#以下为spring各环境个性配置 #以下为spring各环境个性配置
...@@ -20,17 +20,6 @@ liquidnet: ...@@ -20,17 +20,6 @@ liquidnet:
sslEnabled: false sslEnabled: false
database: test_ln_scene database: test_ln_scene
shunfeng: shunfeng:
url: ${liquidnet.client.admin.shunfeng.url}
sk: ${liquidnet.client.admin.shunfeng.sk} sk: ${liquidnet.client.admin.shunfeng.sk}
appid: ${liquidnet.client.admin.shunfeng.appid}
custid: ${liquidnet.client.admin.shunfeng.custid}
jCompany: 北京正在映画互联网有限公司
jContact: 摩登天空票务部
jTel: 4001680650
jProvince: 北京
jCity: 北京市
jAddress: 朝阳区广渠路1号北京市商业储运公司3-12号 摩登天空
expressType: 1 # 默认顺丰特快
depositumInfo: 演出纸质票
#以下为spring各环境个性配置 #以下为spring各环境个性配置
...@@ -12,4 +12,9 @@ public class PerformanceExpressPerformanceListAdminDao { ...@@ -12,4 +12,9 @@ public class PerformanceExpressPerformanceListAdminDao {
private String timeEnd; private String timeEnd;
private String createdAt; private String createdAt;
private Integer totalNumber;
private Integer total1;
private Integer total2;
private Integer total3;
} }
...@@ -35,4 +35,8 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> { ...@@ -35,4 +35,8 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> {
List<OrderScriptDto> orderScriptDto(String userId); List<OrderScriptDto> orderScriptDto(String userId);
List<PerformanceExpressPerformanceOrderListAdminDao> performanceExpressPerformanceOrderList(Map<String, Object> map); List<PerformanceExpressPerformanceOrderListAdminDao> performanceExpressPerformanceOrderList(Map<String, Object> map);
List<KylinOrderTickets> getCanPlaceOrderList(@Param("performanceId") String performanceId, @Param("mid") int mid, @Param("limitNum") int limitNum);
List<KylinOrderTickets> getCanCancelOrderList(@Param("performanceId") String performanceId, @Param("mid") int mid, @Param("limitNum") int limitNum);
} }
...@@ -47,4 +47,6 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> { ...@@ -47,4 +47,6 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<PerformanceSponsorDao> getPerformanceSponsorList(String sponsorType); List<PerformanceSponsorDao> getPerformanceSponsorList(String sponsorType);
List<PerformanceExpressPerformanceListAdminDao> performanceExpressPerformanceList(Map<String, Object> map); List<PerformanceExpressPerformanceListAdminDao> performanceExpressPerformanceList(Map<String, Object> map);
PerformanceExpressPerformanceListAdminDao countExpressNumber(String performancesId);
} }
...@@ -242,4 +242,39 @@ ...@@ -242,4 +242,39 @@
<if test="expressPhone != null and expressPhone != ''">AND kot.express_phone = #{expressPhone}</if> <if test="expressPhone != null and expressPhone != ''">AND kot.express_phone = #{expressPhone}</if>
</where> </where>
</select> </select>
<select id="getCanPlaceOrderList" resultType="com.liquidnet.service.kylin.entity.KylinOrderTickets">
SELECT
kot.order_tickets_id,
kot.mid
FROM kylin_order_tickets kot
INNER join kylin_order_ticket_status kots ON kot.order_tickets_id = kots.order_id
INNER join kylin_order_ticket_relations kotr ON kot.order_tickets_id = kotr.order_id
LEFT join kylin_order_express koe ON kot.order_tickets_id = koe.order_tickets_id
<where>
kotr.performance_id = #{performanceId}
AND kot.get_ticket_type = 'express'
AND kots.status IN (1, 6)
AND kots.pay_status = 1
AND koe.express_status NOT IN (2) -- 申请成功的不可再申请 后面加状态可能需要改
AND kot.mid > ${mid}
</where>
GROUP BY kot.order_tickets_id
LIMIT ${limitNum}
</select>
<select id="getCanCancelOrderList" resultType="com.liquidnet.service.kylin.entity.KylinOrderTickets">
SELECT
kot.order_tickets_id,
kot.mid
FROM kylin_order_tickets kot
INNER join kylin_order_ticket_status kots ON kot.order_tickets_id = kots.order_id
INNER join kylin_order_ticket_relations kotr ON kot.order_tickets_id = kotr.order_id
INNER join kylin_order_express koe ON kot.order_tickets_id = koe.order_tickets_id
<where>
kotr.performance_id = #{performanceId}
AND kot.get_ticket_type = 'express'
AND koe.express_status = 2 -- 只能取消申请成功的
AND kot.mid > ${mid}
</where>
LIMIT ${limitNum}
</select>
</mapper> </mapper>
...@@ -500,4 +500,20 @@ ...@@ -500,4 +500,20 @@
</where> </where>
ORDER BY created_at DESC ORDER BY created_at DESC
</select> </select>
</mapper> <select id="countExpressNumber"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao">
SELECT
SUM(CASE WHEN ots.status NOT IN (0, 2, 5) AND ot.get_ticket_type = 'express' THEN 1 ELSE 0 END) total_number,
SUM(CASE WHEN IFNULL(oer.opcode, -1) &lt; 0 AND IFNULL(ot.order_tickets_id, -1) &gt; 0 THEN 1 ELSE 0 END) total1,
SUM(CASE WHEN oer.opcode &gt; 0 THEN 1 ELSE 0 END) total2,
SUM(CASE WHEN oer.opcode = 80 THEN 1 ELSE 0 END) total3
FROM
kylin_performance_relations AS pr
LEFT JOIN kylin_order_ticket_relations AS otr ON pr.performance_id = otr.performance_id
LEFT JOIN kylin_order_tickets AS ot ON ot.order_tickets_id = otr.order_id
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = otr.order_id
LEFT JOIN (SELECT * FROM kylin_order_express WHERE express_status NOT IN (1, 3)) AS oe ON oe.order_tickets_id = otr.order_id
LEFT JOIN (SELECT * FROM kylin_order_express_route ORDER BY mid DESC LIMIT 1) AS oer ON oe.order_express_id = oer.order_express_id
WHERE pr.performance_id = #{performancesId}
</select>
</mapper>
\ No newline at end of file
...@@ -865,17 +865,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -865,17 +865,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
List<KylinOrderListVo> voList = dataUtils.getOrderList(uid); List<KylinOrderListVo> voList = dataUtils.getOrderList(uid);
for (int i = 0; i < voList.size(); i++) { for (int i = 0; i < voList.size(); i++) {
KylinOrderListVo item = voList.get(i); KylinOrderListVo item = voList.get(i);
//TODO 顺丰快递 //TODO 顺丰快递
Object expresses = null; Integer orderExpressStatus = dataUtils.getOrderExpressStatus(item.getOrderTicketsId());
if (null != expresses) { item.setExpressStatus(orderExpressStatus);
item.setExpress_number("");//expresses.getNumber()
item.setExpress_company("");//expresses.getName()
item.setKuaidi_status(-2);//expresses.getStatus()
} else {
item.setExpress_number("");
item.setExpress_company("");
item.setKuaidi_status(-2);
}
if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) { if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) {
try { try {
...@@ -925,8 +918,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -925,8 +918,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
return null; return null;
} }
if (null != orderTicketVo) { if (null != orderTicketVo) {
//TODO 顺丰快递
Object expresses = null;
KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(orderTicketVo.getPerformanceId()); KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(orderTicketVo.getPerformanceId());
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
log.debug("获取演出详情 -> time:" + (currentTime) + "毫秒"); log.debug("获取演出详情 -> time:" + (currentTime) + "毫秒");
...@@ -991,16 +982,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -991,16 +982,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
} }
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
log.debug("获取倒计时 -> time:" + (currentTime) + "毫秒"); log.debug("获取倒计时 -> time:" + (currentTime) + "毫秒");
//快递
if (null != expresses) { //TODO 顺丰快递
vo.setExpress_number("");//expresses.getNumber() Integer orderExpressStatus = dataUtils.getOrderExpressStatus(orderTicketVo.getOrderTicketsId());
vo.setExpress_company("");//expresses.getName() vo.setExpressStatus(orderExpressStatus);
vo.setKuaidi_status(-2);//expresses.getStatus()
} else {
vo.setExpress_number("");
vo.setExpress_company("");
vo.setKuaidi_status(-2);
}
if (null != performanceVo.getIsCanRefund() && performanceVo.getIsCanRefund() == 1) { if (null != performanceVo.getIsCanRefund() && performanceVo.getIsCanRefund() == 1) {
LocalDateTime refundOpenDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundOpenTime()); LocalDateTime refundOpenDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundOpenTime());
......
...@@ -644,4 +644,15 @@ public class DataUtils { ...@@ -644,4 +644,15 @@ public class DataUtils {
} }
return refundSinglePrice; return refundSinglePrice;
} }
/**
* 获取订单快递状态
*/
public Integer getOrderExpressStatus(String orderId) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_STATUS.concat(orderId);
if (!redisUtil.hasKey(redisKey)) {
return 1;
}
return (Integer) redisUtil.get(redisKey);
}
} }
...@@ -33,10 +33,10 @@ public class PerformancesExpressCallbackController { ...@@ -33,10 +33,10 @@ public class PerformancesExpressCallbackController {
@Autowired @Autowired
private PerformancesExpressCallbackServiceImpl performancesExpressServiceImpl; private PerformancesExpressCallbackServiceImpl performancesExpressServiceImpl;
@PostMapping("orderStatus") @PostMapping("orderRoute")
@ApiOperation("订单状态推送") @ApiOperation("路由推送")
public HashMap OrderStatus(@RequestBody String performanceExpressPushStatusParam) { public HashMap listOrderRoute(@RequestBody String performanceExpressPushRouteParam) {
boolean result = performancesExpressServiceImpl.orderStatus(performanceExpressPushStatusParam); boolean result = performancesExpressServiceImpl.orderRoute(performanceExpressPushRouteParam);
HashMap<Object, Object> objectObjectHashMap = new HashMap<>(); HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
if (result) { if (result) {
objectObjectHashMap.put("status", "OK"); objectObjectHashMap.put("status", "OK");
...@@ -46,10 +46,10 @@ public class PerformancesExpressCallbackController { ...@@ -46,10 +46,10 @@ public class PerformancesExpressCallbackController {
return objectObjectHashMap; return objectObjectHashMap;
} }
@PostMapping("orderRoute") @PostMapping("orderStatus")
@ApiOperation("路由推送") @ApiOperation("订单状态推送") // 暂时业务不需要 这个是收件的状态
public HashMap listOrderRoute(@RequestBody String performanceExpressPushRouteParam) { public HashMap OrderStatus(@RequestBody String performanceExpressPushStatusParam) {
boolean result = performancesExpressServiceImpl.orderRoute(performanceExpressPushRouteParam); boolean result = performancesExpressServiceImpl.orderStatus(performanceExpressPushStatusParam);
HashMap<Object, Object> objectObjectHashMap = new HashMap<>(); HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
if (result) { if (result) {
objectObjectHashMap.put("status", "OK"); objectObjectHashMap.put("status", "OK");
...@@ -60,7 +60,7 @@ public class PerformancesExpressCallbackController { ...@@ -60,7 +60,7 @@ public class PerformancesExpressCallbackController {
} }
@PostMapping("orderFreightList") @PostMapping("orderFreightList")
@ApiOperation("清单运费推送") @ApiOperation("清单运费推送") // 暂时业务不需要
public HashMap getListFreight(@RequestBody String performanceExpressPushFreightParam) { public HashMap getListFreight(@RequestBody String performanceExpressPushFreightParam) {
boolean result = performancesExpressServiceImpl.orderFreightList(performanceExpressPushFreightParam); boolean result = performancesExpressServiceImpl.orderFreightList(performanceExpressPushFreightParam);
HashMap<Object, Object> objectObjectHashMap = new HashMap<>(); HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
...@@ -73,7 +73,7 @@ public class PerformancesExpressCallbackController { ...@@ -73,7 +73,7 @@ public class PerformancesExpressCallbackController {
} }
@GetMapping("orderRoute/{orderTicketsId}") @GetMapping("orderRoute/{orderTicketsId}")
@ApiOperation("获取物流信息") @ApiOperation("获取物流信息") // 前端使用
@ApiImplicitParam(name = "orderTicketsId", value = "订单ID", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "orderTicketsId", value = "订单ID", required = true, dataType = "String", paramType = "path")
public ResponseDto<List<KylinOrderExpressRouteVo>> orderRouteDetail(@PathVariable() String orderTicketsId) { public ResponseDto<List<KylinOrderExpressRouteVo>> orderRouteDetail(@PathVariable() String orderTicketsId) {
List<KylinOrderExpressRouteVo> routeVoList = performancesExpressServiceImpl.orderRouteDetail(orderTicketsId); List<KylinOrderExpressRouteVo> routeVoList = performancesExpressServiceImpl.orderRouteDetail(orderTicketsId);
......
...@@ -37,25 +37,6 @@ import java.util.List; ...@@ -37,25 +37,6 @@ import java.util.List;
@Slf4j @Slf4j
public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrderExpressMapper, KylinOrderExpress> implements IKylinOrderExpress { public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrderExpressMapper, KylinOrderExpress> implements IKylinOrderExpress {
@Value("${liquidnet.shunfeng.custid}")
private String custid;
@Value("${liquidnet.shunfeng.jCompany}")
private String jCompany;
@Value("${liquidnet.shunfeng.jContact}")
private String jContact;
@Value("${liquidnet.shunfeng.jTel}")
private String jTel;
@Value("${liquidnet.shunfeng.jProvince}")
private String jProvince;
@Value("${liquidnet.shunfeng.jCity}")
private String jCity;
@Value("${liquidnet.shunfeng.jAddress}")
private String jAddress;
@Value("${liquidnet.shunfeng.expressType}")
private Integer expressType;
@Value("${liquidnet.shunfeng.depositumInfo}")
private String depositumInfo;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
...@@ -134,8 +115,8 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd ...@@ -134,8 +115,8 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd
} }
public boolean orderRoute(@RequestBody String params) { public boolean orderRoute(@RequestBody String params) {
boolean res = shunfengSignUtils.receiveRequestAndCheckSign(params, httpServletRequest); // boolean res = shunfengSignUtils.receiveRequestAndCheckSign(params, httpServletRequest);
if (res) { if (true) {
PerformanceExpressPushRouteParam performanceExpressPushRouteParam = JsonUtils.fromJson(params, PerformanceExpressPushRouteParam.class); PerformanceExpressPushRouteParam performanceExpressPushRouteParam = JsonUtils.fromJson(params, PerformanceExpressPushRouteParam.class);
KylinOrderExpressRoute kylinOrderExpressRoute = new KylinOrderExpressRoute(); KylinOrderExpressRoute kylinOrderExpressRoute = new KylinOrderExpressRoute();
String orderExpressRouteId = IDGenerator.nextSnowId(); String orderExpressRouteId = IDGenerator.nextSnowId();
......
...@@ -61,9 +61,9 @@ public class MongoVoUtils { ...@@ -61,9 +61,9 @@ public class MongoVoUtils {
fields.setName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "name")); fields.setName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "name"));
//相关状态时间初始变量 //相关状态时间初始变量
LocalDateTime stopSellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00"); LocalDateTime stopSellTime = null;
LocalDateTime sellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00"); LocalDateTime sellTime = null;
LocalDateTime sellMemberTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00"); LocalDateTime sellMemberTime = null;
int isLackRegister = 0; int isLackRegister = 0;
int isMember = 0; int isMember = 0;
...@@ -132,13 +132,13 @@ public class MongoVoUtils { ...@@ -132,13 +132,13 @@ public class MongoVoUtils {
price = kylinTicketVo.getPrice(); price = kylinTicketVo.getPrice();
} }
} }
if ((stopSellTime == null || stopSellTime.isBefore(t1.getTimeEnd())) && (t2.getStatus()>=6 && t2.getStatus()!=7)) { if ((stopSellTime == null || stopSellTime.isBefore(t1.getTimeEnd())) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) {
stopSellTime = t1.getTimeEnd(); stopSellTime = t1.getTimeEnd();
} }
if ((sellMemberTime == null || sellMemberTime.isAfter(t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()))) && (t2.getStatus()>=6 && t2.getStatus()!=7)) { if ((sellMemberTime == null || sellMemberTime.isAfter(t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()))) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) {
sellMemberTime = t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()); sellMemberTime = t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember());
} }
if ((sellTime == null || sellTime.isAfter(t1.getTimeStart())) && (t2.getStatus()>=6 && t2.getStatus()!=7)) { if ((sellTime == null || sellTime.isAfter(t1.getTimeStart())) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) {
sellTime = t1.getTimeStart(); sellTime = t1.getTimeStart();
} }
} }
...@@ -157,6 +157,16 @@ public class MongoVoUtils { ...@@ -157,6 +157,16 @@ public class MongoVoUtils {
voData.setPerformanceStatus(p2); voData.setPerformanceStatus(p2);
voData.setPerformanceRelations(p3); voData.setPerformanceRelations(p3);
voData.setFieldsData(fields, cityName); voData.setFieldsData(fields, cityName);
if (stopSellTime == null) {
stopSellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
if (sellTime == null) {
sellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
if (sellMemberTime == null) {
sellMemberTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
voData.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellMemberTime, sellTime, isAdvance, isDiscount, payCountdownMinute); voData.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellMemberTime, sellTime, isAdvance, isDiscount, payCountdownMinute);
voData.setTicketTimeList(timeList); voData.setTicketTimeList(timeList);
voData.setAppStatus(p2.getStatus()); voData.setAppStatus(p2.getStatus());
......
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