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

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

Merge branch 'dev' into test

parents 842d1ba6 b999cdbf
package com.liquidnet.service.adam.dto.vo.admin;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUser;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: MemberOrderDetailAdminVo
* @Package com.liquidnet.service.adam.dto.vo.admin
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/6/20 14:37
*/
@Data
public class MemberOrderDetailAdminVo {
private AdamMemberOrderVo adamMemberOrderVo;
private AdamUser adamUser;
private AdamUserInfoVo adamUserInfoVo;
private AdamUserMemberVo adamUserMemberVo;
}
package com.liquidnet.service.adam.service.admin; package com.liquidnet.service.adam.service.admin;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder; import com.liquidnet.service.adam.entity.AdamMemberOrder;
/** /**
...@@ -13,5 +14,5 @@ import com.liquidnet.service.adam.entity.AdamMemberOrder; ...@@ -13,5 +14,5 @@ import com.liquidnet.service.adam.entity.AdamMemberOrder;
* @date 2021/6/6 16:23 * @date 2021/6/6 16:23
*/ */
public interface IAdamMemberOrderAdminService extends IService<AdamMemberOrder> { public interface IAdamMemberOrderAdminService extends IService<AdamMemberOrder> {
MemberOrderDetailAdminVo getMemberOrderDetail(String orderNo);
} }
package com.liquidnet.client.admin.web.controller.zhengzai.adam; package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.liquidnet.client.admin.common.core.controller.BaseController; import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder; import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.service.admin.IAdamMemberOrderAdminService; import com.liquidnet.service.adam.service.admin.IAdamMemberOrderAdminService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
...@@ -57,9 +57,7 @@ public class AdamMemberOrderController extends BaseController ...@@ -57,9 +57,7 @@ public class AdamMemberOrderController extends BaseController
@RequiresPermissions("adam:order:orderlist:detail") @RequiresPermissions("adam:order:orderlist:detail")
@GetMapping("/orderList/detail/{orderId}") @GetMapping("/orderList/detail/{orderId}")
public String orderDetail(@PathVariable("orderId") String orderId, ModelMap mmap) { public String orderDetail(@PathVariable("orderId") String orderId, ModelMap mmap) {
LambdaQueryWrapper<AdamMemberOrder> queryWrapper = new LambdaQueryWrapper(); MemberOrderDetailAdminVo orderDetailsVo = adamMemberOrderAdminService.getMemberOrderDetail(orderId);
queryWrapper.eq(AdamMemberOrder::getOrderNo,orderId);
AdamMemberOrder orderDetailsVo = adamMemberOrderAdminService.getOne(queryWrapper);
mmap.put("orderDetailsVo", orderDetailsVo); mmap.put("orderDetailsVo", orderDetailsVo);
return prefix + "/orderList/detail"; return prefix + "/orderList/detail";
} }
......
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head> <head>
<th:block th:include="include :: header('修改【请填写功能名称】')" /> <th:block th:include="include :: header('会员订单详情')" />
<th:block th:include="include :: datetimepicker-css" /> <th:block th:include="include :: datetimepicker-css" />
</head> </head>
<body class="white-bg"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-order-edit" th:object="${adamMemberOrder}"> <form class="form-horizontal m" id="form-order-edit" th:object="${orderDetailsVo}">
<input name="mid" th:field="*{mid}" type="hidden">
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">支付时间:</label> <label class="col-sm-3 control-label">订单状态:</label>
<div class="col-sm-8">
<input name="orderNo" th:field="*{orderNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">支付时间:</label>
<div class="col-sm-8">
<input name="uid" th:field="*{uid}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">购买方式:0-购买会员 1-购买会员码,2-使用会员码:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="mode" th:field="*{mode}" class="form-control" type="text"> <input name="state" th:field="*{adamMemberOrderVo.state}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">原价</label> <label class="col-sm-3 control-label">价格</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="price" th:field="*{price}" class="form-control" type="text"> <input name="pricePaid" th:field="*{adamMemberOrderVo.pricePaid}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">实际支付</label> <label class="col-sm-3 control-label">可用时间(天)</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="pricePaid" th:field="*{pricePaid}" class="form-control" type="text"> <input name="days" th:field="*{adamMemberOrderVo.days}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">实际支付</label> <label class="col-sm-3 control-label">订单号</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="memberName" th:field="*{memberName}" class="form-control" type="text"> <input name="orderNo" th:field="*{adamMemberOrderVo.orderNo}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">会员id</label> <label class="col-sm-3 control-label">生成时间</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="memberId" th:field="*{memberId}" class="form-control" type="text"> <input name="createdAt" th:field="*{adamMemberOrderVo.createdAt}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">会员价格id</label> <label class="col-sm-3 control-label">购买人手机号</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="memberPriceId" th:field="*{memberPriceId}" class="form-control" type="text"> <input name="memberName" th:field="*{adamMemberOrderVo.memberName}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">购买天数</label> <label class="col-sm-3 control-label">版本</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="days" th:field="*{days}" class="form-control" type="text"> <input name="version" th:field="*{adamMemberOrderVo.version}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">订单状态</label> <label class="col-sm-3 control-label">客户端</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="state" th:field="*{state}" class="form-control" type="text"> <input name="source" th:field="*{adamMemberOrderVo.source}" class="form-control" type="text">
</div> </div>
</div> </div>
<!-- &lt;!&ndash; 会员卡信息&ndash;&gt;-->
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">会员</label> <label class="col-sm-3 control-label">会员卡ID</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="memberNo" th:field="*{memberNo}" class="form-control" type="text"> <input name="memberNo" th:field="*{adamMemberOrderVo.memberId}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">支付渠道</label> <label class="col-sm-3 control-label">会员卡名称</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="payChannel" th:field="*{payChannel}" class="form-control" type="text"> <input name="state" th:field="*{adamMemberOrderVo.memberName}" class="form-control" type="text">
</div> </div>
</div> </div>
<!-- <div class="form-group">-->
<!-- <label class="col-sm-3 control-label">会员勋章:</label>-->
<!-- <div class="col-sm-8">-->
<!-- <input name="memberNo" th:field="*{adamMemberOrderVo.memberNo}" class="form-control" type="text">-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">支付订单</label> <label class="col-sm-3 control-label">会员头像</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="payNo" th:field="*{payNo}" class="form-control" type="text"> <img class="img-circle img-lg" th:src="(*{#strings.isEmpty(adamUserInfoVo.avatar)}) ? @{/img/profile.jpg} : @{*{adamUserInfoVo.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''">
</div> </div>
</div> </div>
<!-- &lt;!&ndash; 套餐信息&ndash;&gt;-->
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">用户生日:</label> <label class="col-sm-3 control-label">用户生日:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group date"> <div class="input-group date">
<input name="birthday" th:value="${#dates.format(adamMemberOrder.birthday, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"> <input name="birthday" th:value="*{adamMemberOrderVo.birthday}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <!-- <div class="form-group">-->
<label class="col-sm-3 control-label">支付时间:</label> <!-- <label class="col-sm-3 control-label">喜欢的音乐人:</label>-->
<div class="col-sm-8"> <!-- <div class="col-sm-8">-->
<div class="input-group date"> <!-- <input name="version" th:field="*{version}" class="form-control" type="text">-->
<input name="paymentAt" th:value="${#dates.format(adamMemberOrder.paymentAt, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"> <!-- </div>-->
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <!-- </div>-->
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">支付时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="createdAt" th:value="${#dates.format(adamMemberOrder.createdAt, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">支付时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="updatedAt" th:value="${#dates.format(adamMemberOrder.updatedAt, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">支付时间:</label>
<div class="col-sm-8">
<input name="clientIp" th:field="*{clientIp}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">支付时间:</label>
<div class="col-sm-8">
<input name="source" th:field="*{source}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">支付时间:</label>
<div class="col-sm-8">
<input name="version" th:field="*{version}" class="form-control" type="text">
</div>
</div>
</form> </form>
</div> </div>
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
......
...@@ -91,6 +91,7 @@ ...@@ -91,6 +91,7 @@
updateUrl: prefix + "/edit/{id}", updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove", removeUrl: prefix + "/remove",
exportUrl: prefix + "/export", exportUrl: prefix + "/export",
detailUrl: prefix + "/detail/{id}",
modalName: "【请填写功能名称】", modalName: "【请填写功能名称】",
columns: [{ columns: [{
checkbox: true checkbox: true
......
package com.liquidnet.client.admin.zhengzai.adam.service.impl; package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder; import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.entity.AdamUserInfo;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper; import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper;
import com.liquidnet.service.adam.mapper.AdamUserInfoMapper;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.adam.service.admin.IAdamMemberOrderAdminService; import com.liquidnet.service.adam.service.admin.IAdamMemberOrderAdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
...@@ -17,4 +30,47 @@ import org.springframework.stereotype.Service; ...@@ -17,4 +30,47 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrderMapper, AdamMemberOrder> implements IAdamMemberOrderAdminService { public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrderMapper, AdamMemberOrder> implements IAdamMemberOrderAdminService {
@Autowired
private AdamMemberOrderMapper adamMemberOrderMapper;
@Autowired
private AdamUserMemberMapper adamUserMemberMapper;
@Autowired
private AdamUserInfoMapper adamUserInfoMapper;
@Autowired
private AdamUserMapper adamUserMapper;
@Override
public MemberOrderDetailAdminVo getMemberOrderDetail(String orderNo) {
MemberOrderDetailAdminVo detailAdminVo = new MemberOrderDetailAdminVo();
AdamMemberOrderVo adamMemberOrderVo = new AdamMemberOrderVo();
AdamUser adamUser = new AdamUser();
AdamUserInfoVo adamUserInfoVo = new AdamUserInfoVo();
AdamUserMemberVo adamUserMemberVo = new AdamUserMemberVo();
LambdaQueryWrapper<AdamMemberOrder> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(AdamMemberOrder::getOrderNo,orderNo);
AdamMemberOrder adamMemberOrder = adamMemberOrderMapper.selectOne(queryWrapper);
BeanUtil.copy(adamMemberOrder,adamMemberOrderVo);
//获取用户会员信息
LambdaQueryWrapper<AdamUserMember> adamUserMemberWrapper = new LambdaQueryWrapper();
adamUserMemberWrapper.eq(AdamUserMember::getUid,adamMemberOrderVo.getUid());
AdamUserMember adamUserMember = adamUserMemberMapper.selectOne(adamUserMemberWrapper);
BeanUtil.copy(adamUserMember,adamUserMemberVo);
//获取用户信息表
LambdaQueryWrapper<AdamUserInfo> adamUserInfoWrapper = new LambdaQueryWrapper();
adamUserInfoWrapper.eq(AdamUserInfo::getUid,adamMemberOrderVo.getUid());
AdamUserInfo adamUserInfo = adamUserInfoMapper.selectOne(adamUserInfoWrapper);
BeanUtil.copy(adamUserInfo,adamUserInfoVo);
//获取用户表信息
LambdaQueryWrapper<AdamUser> adamUserWrapper = new LambdaQueryWrapper();
adamUserWrapper.eq(AdamUser::getUid,adamMemberOrderVo.getUid());
adamUser = adamUserMapper.selectOne(adamUserWrapper);
detailAdminVo.setAdamMemberOrderVo(adamMemberOrderVo);
detailAdminVo.setAdamUserMemberVo(adamUserMemberVo);
detailAdminVo.setAdamUserInfoVo(adamUserInfoVo);
detailAdminVo.setAdamUser(adamUser);
return detailAdminVo;
}
} }
...@@ -98,9 +98,9 @@ public class KylinOrderTicketStatus implements Serializable { ...@@ -98,9 +98,9 @@ public class KylinOrderTicketStatus implements Serializable {
* *
* @return * @return
*/ */
public Object[] getCloseOrderObject(LocalDateTime updateTime,LocalDateTime createTime) { public Object[] getCloseOrderObject() {
return new Object[]{ return new Object[]{
status, updatedAt, orderId,updateTime,createTime status, updatedAt, orderId
}; };
} }
} }
...@@ -234,9 +234,9 @@ public class KylinOrderTickets implements Serializable { ...@@ -234,9 +234,9 @@ public class KylinOrderTickets implements Serializable {
* *
* @return * @return
*/ */
public Object[] getCloseOrderObject(LocalDateTime updateTime,LocalDateTime createTime) { public Object[] getCloseOrderObject() {
return new Object[]{ return new Object[]{
updatedAt, orderTicketsId,updateTime,createTime updatedAt, orderTicketsId
}; };
} }
} }
...@@ -346,7 +346,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -346,7 +346,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//生成订单 order_ticket //生成订单 order_ticket
KylinOrderTickets orderTickets = new KylinOrderTickets(); KylinOrderTickets orderTickets = new KylinOrderTickets();
String orderTicketId = IDGenerator.nextSnowId().toString(); String orderTicketId = IDGenerator.nextSnowId().toString();
log.debug("\n ORDER_TICKET_ID = "+ orderTicketId +" \n TIME = "+System.currentTimeMillis()); log.debug("\n ORDER_TICKET_ID = " + orderTicketId + " \n TIME = " + System.currentTimeMillis());
orderTickets.setOrderTicketsId(orderTicketId); orderTickets.setOrderTicketsId(orderTicketId);
orderTickets.setUserId(uid); orderTickets.setUserId(uid);
Map token = CurrentUtil.getTokenClaims(); Map token = CurrentUtil.getTokenClaims();
...@@ -549,7 +549,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -549,7 +549,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
httpData.add("client_ip", CurrentUtil.getCliIpAddr()); httpData.add("client_ip", CurrentUtil.getCliIpAddr());
httpData.add("notify_url", synUrl); httpData.add("notify_url", synUrl);
httpData.add("create_date", orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); httpData.add("create_date", orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expire_time", orderTickets.getPayCountdownMinute().toString()); httpData.add("expire_time", (orderTickets.getPayCountdownMinute() + 1) + "");
if (payOrderParam.getDeviceFrom().equals("js") || payOrderParam.getDeviceFrom().equals("applet")) { if (payOrderParam.getDeviceFrom().equals("js") || payOrderParam.getDeviceFrom().equals("applet")) {
httpData.add("open_id", payOrderParam.getOpenId()); httpData.add("open_id", payOrderParam.getOpenId());
...@@ -1020,21 +1020,20 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1020,21 +1020,20 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
if (redisLockUtil.tryLock(lock, 1, 3600)) { if (redisLockUtil.tryLock(lock, 1, 3600)) {
try { try {
List<OrderScriptDto> dtoData = orderTicketsMapper.orderScriptDto(userId); List<OrderScriptDto> dtoData = orderTicketsMapper.orderScriptDto(userId);
HashMap<String, Integer> map2 = new HashMap<>(); LocalDateTime now = LocalDateTime.now();
Integer count = 0; Long currentTime = System.currentTimeMillis();
Integer mqCount = 0; HashMap<String, Integer> mapSurplusGeneral = new HashMap<>();
Integer Acount = 0; ArrayList<String> orderIdList = new ArrayList<>();
Integer Ecount = 0; HashMap<String, Object> mapMongo = new HashMap<>();
for (OrderScriptDto item : dtoData) { for (OrderScriptDto item : dtoData) {
count += 1;
LinkedList<String> sqls = new LinkedList<>(); LinkedList<String> sqls = new LinkedList<>();
if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) { if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) {
LocalDateTime now = LocalDateTime.now();
try { try {
KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(item.getOrderTicketsId()); // KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(item.getOrderTicketsId());
if (vo.getStatus() != 0) { // if (vo.getStatus() != 0) {
continue; // continue;
} // }
//mysql //mysql
KylinOrderTickets orderTickets = new KylinOrderTickets(); KylinOrderTickets orderTickets = new KylinOrderTickets();
...@@ -1047,62 +1046,83 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1047,62 +1046,83 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTicketStatus.setUpdatedAt(now); orderTicketStatus.setUpdatedAt(now);
//vo //vo
HashMap<String, Object> map = new HashMap<>(); mapMongo.put("status", KylinTableStatusConst.ORDER_STATUS2);
map.put("status", KylinTableStatusConst.ORDER_STATUS2); mapMongo.put("updatedAt", DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now));
map.put("updatedAt", DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now)); mapMongo.put("changeDate", now);
map.put("changeDate", now); orderIdList.add(orderTickets.getOrderTicketsId() + "," + item.getUserId());
mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateOne( // mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderTicketsId").is(orderTickets.getOrderTicketsId())).getQueryObject(), // Query.query(Criteria.where("orderTicketsId").is(orderTickets.getOrderTicketsId())).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(map)) // new BasicDBObject("$set", mongoConverter.convertToMongoType(map))
); // );
LocalDateTime strTime = vo.getChangeDate();
// vo.setChangeDate(now);
vo.setChangeDate(now); // vo.setStatus(KylinTableStatusConst.ORDER_STATUS2);
vo.setStatus(KylinTableStatusConst.ORDER_STATUS2); // vo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now));
vo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now)); // redisUtil.set(KylinRedisConst.ORDER + orderTickets.getOrderTicketsId(), vo);
redisUtil.set(KylinRedisConst.ORDER + vo.getOrderTicketsId(), vo);
mapSurplusGeneral.put(item.getTicketId(), mapSurplusGeneral.get(item.getTicketId()) == null ? item.getNumber() : mapSurplusGeneral.get(item.getTicketId()) + item.getNumber());
map2.put(vo.getTicketId(), map2.get(vo.getTicketId()) == null ? vo.getNumber() : map2.get(vo.getTicketId()) + vo.getNumber()); // mongoVoUtils.resetOrderListVo(item.getUserId(), 2, item.getOrderTicketsId(), vo);
mongoVoUtils.resetOrderListVo(item.getUserId(), 2, item.getOrderTicketsId(), vo);
Acount += 1; // List<KylinOrderTicketEntitiesVo> entities = vo.getEntitiesVoList();
// for (int i = 0; i < entities.size(); i++) {
List<KylinOrderTicketEntitiesVo> entities = vo.getEntitiesVoList(); // KylinOrderTicketEntitiesVo items = entities.get(i);
for (int i = 0; i < entities.size(); i++) { // dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
KylinOrderTicketEntitiesVo items = entities.get(i); // }
dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
}
sqls.add(SqlMapping.get("kylin_order_ticket.close")); sqls.add(SqlMapping.get("kylin_order_ticket.close"));
LinkedList<Object[]> sqlsDataA = new LinkedList<>(); LinkedList<Object[]> sqlsDataA = new LinkedList<>();
sqlsDataA.add(orderTickets.getCloseOrderObject(strTime, strTime)); sqlsDataA.add(orderTickets.getCloseOrderObject());
sqls.add(SqlMapping.get("kylin_order_ticket_status.close")); sqls.add(SqlMapping.get("kylin_order_ticket_status.close"));
LinkedList<Object[]> sqlsDataB = new LinkedList<>(); LinkedList<Object[]> sqlsDataB = new LinkedList<>();
sqlsDataB.add(orderTicketStatus.getCloseOrderObject(strTime, strTime)); sqlsDataB.add(orderTicketStatus.getCloseOrderObject());
sqls.add(SqlMapping.get("kylin_order_ticket_relation.close")); sqls.add(SqlMapping.get("kylin_order_ticket_relation.close"));
LinkedList<Object[]> sqlsDataC = new LinkedList<>(); LinkedList<Object[]> sqlsDataC = new LinkedList<>();
sqlsDataC.add(new Object[]{orderTickets.getUpdatedAt(), orderTickets.getOrderTicketsId(), strTime, strTime}); sqlsDataC.add(new Object[]{orderTickets.getUpdatedAt(), orderTickets.getOrderTicketsId()});
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC)); rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC));
mqCount += 1;
} catch (Exception e) { } catch (Exception e) {
log.debug("CHECK TIME SYNC = " + e.getMessage()); log.debug("CHECK TIME SYNC = " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
return false; return false;
} }
}else{ } else {
Ecount+=1;
} }
} }
log.debug("COUNT 1 = " + count); currentTime = System.currentTimeMillis() - currentTime;
log.debug("COUNT 2 = " + mqCount); log.debug("FOR 循环 -> time:" + (currentTime) + "毫秒");
log.debug("COUNT 3 = " + Acount);
log.debug("COUNT 4 = " + Ecount);
for (Map.Entry<String, Integer> entry : map2.entrySet()) { //库存
for (Map.Entry<String, Integer> entry : mapSurplusGeneral.entrySet()) {
dataUtils.changeSurplusGeneral(entry.getKey(), entry.getValue()); dataUtils.changeSurplusGeneral(entry.getKey(), entry.getValue());
} }
currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 库存 -> time:" + (currentTime) + "毫秒");
//mongo
mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderTicketsId").in(orderIdList)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(mapMongo))
);
currentTime = System.currentTimeMillis() - currentTime;
log.debug("mongo -> time:" + (currentTime) + "毫秒");
//redis 列表
orderIdList.forEach(t -> {
String orderTicketId = t.split(",")[0];
String uid = t.split(",")[1];
KylinOrderTicketVo vo = dataUtils.getOrderTicketVo(orderTicketId);
redisUtil.set(KylinRedisConst.ORDER + orderTicketId, vo);
mongoVoUtils.resetOrderListVo(uid, 2, orderTicketId, vo);
// redis 限购
for (int i = 0; i < vo.getEntitiesVoList().size(); i++) {
KylinOrderTicketEntitiesVo items = vo.getEntitiesVoList().get(i);
dataUtils.changeBuyInfo(items.getUserId(), items.getEnterIdCode(), items.getPerformanceId(), items.getTicketId(), -1);
}
});
currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 列表 限购 -> time:" + (currentTime) + "毫秒");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
......
...@@ -417,6 +417,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -417,6 +417,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
return ResponseDto.success("保存成功"); return ResponseDto.success("保存成功");
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20115)); return ResponseDto.failure(ErrorMapping.get(20115));
} }
} }
......
...@@ -24,8 +24,8 @@ kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_pay ...@@ -24,8 +24,8 @@ kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_pay
# ------------------------订单关闭---------------------------- # ------------------------订单关闭----------------------------
kylin_order_ticket.close=UPDATE kylin_order_tickets SET updated_at = ? WHERE order_tickets_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket.close=UPDATE kylin_order_tickets SET updated_at = ? WHERE order_tickets_id = ?
kylin_order_ticket_status.close=UPDATE kylin_order_ticket_status SET `status` = ?,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_status.close=UPDATE kylin_order_ticket_status SET `status` = ?,updated_at = ? WHERE order_id = ?
kylin_order_ticket_relation.close=UPDATE kylin_order_ticket_relations SET updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_relation.close=UPDATE kylin_order_ticket_relations SET updated_at = ? WHERE order_id = ?
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