Commit 086905bc by huluobin

Merge branch 'master' into 3.5

# Conflicts:
#	src/main/java/com/gogirl/application/order/serve/impl/OrderManageServiceImpl.java
#	src/main/java/com/gogirl/application/order/serve/impl/PayServiceImpl.java
#	src/main/java/com/gogirl/interfaces/xcx/PayController.java
parents 76a7b711 b8c557b5
......@@ -45,7 +45,7 @@ public interface PayService {
void balancePosPay(Integer currentCustomerId, Integer orderId);
/**
* 选择支付方式
* 更新选择支付方式
*
* @param orderId
* @param payType
......
......@@ -91,15 +91,16 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
private OrderCommentMapper orderCommentMapper;
@Resource
private OrderCommentLabelMapper orderCommentLabelMapper;
@Resource
private OrderRecordMapper orderRecordMapper;
@Resource
private CustomerMessageMapper customerMessageMapper;
@Resource
private OrderRecordService orderRecordService;
@Resource
private CustomerBalanceMapper customerBalanceMapper;
@Resource
private CustomerBalanceService customerBalanceService;
@Resource
private OrderServeSkuService orderServeSkuService;
@Resource
......@@ -114,6 +115,8 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
private MarketService marketService;
@Resource
private ProducePromotionTimeMapper producePromotionTimeMapper;
@Resource
private CouponService couponService;
@Override
public BigDecimal countSumPay(Integer customerId, Integer departmentId) {
......@@ -454,7 +457,6 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
customer.getRealName());
}
@Override
public void recordOrderServeData(OrderServe param) {
if (param == null || param.getId() == null) {
......@@ -542,9 +544,6 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
}
@Resource
private CouponService couponService;
@Override
public void recordOrderData(Integer orderId, String remark, String userFeedback, String picturePath, String afterSaleIsBuyCard, String afterSaleBuyCardReason) {
......@@ -729,7 +728,6 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
return orderManage.getListOrderServer();
}
@Override
public void updateOrderDataIntegrity(OrderManage om) {
......@@ -741,13 +739,9 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
log.info("***美甲师发起收款***,美甲师id: {},订单id: {}", technicianId, orderId);
String payTypeStr;
//获取订单折扣之后的信息
log.info("获取订单信息");
OrderManage orderManage = this.queryOrder(orderId);
if (orderManage.getStatus() == 3 || orderManage.getStatus() == 4) {
throw new RRException("重复请求");
throw new RRException("订单状态异常");
}
Customer customer = customerService.getById(orderManage.getOrderUser());
......@@ -838,11 +832,6 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
this.updateById(orderManage);
}
@Resource
private CustomerBalanceMapper customerBalanceMapper;
@Resource
private CustomerBalanceService customerBalanceService;
@Override
public void notifyBalanceWxPayOrder(WxPayOrderNotifyResult result) {
String wxScheduleOrderNo = result.getOutTradeNo();
......@@ -962,18 +951,23 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
}
@Resource
private CustomerMessageMapper customerMessageMapper;
@Override
public void friendPayOrder(Integer orderId, String phone) {
//1、订单状态检查
OrderManage orderManage = this.queryOrder(orderId);
if (!orderManage.getStatus().equals(OrderManage.STATUS_UN_PAY)) {
throw new RRException("订单状态异常");
}
//2、朋友用户检查
Integer currentCustomerId = SessionUtils.getCustomerToken().getCustomerId();
Customer customer = customerService.selectByPhone(phone);
if (customer == null) {
throw new RRException(500, "用户不存在");
}
//3、发送代付消息
Map<String, Object> params = new HashMap<>();
params.put(CustomerMessage.PARAM_FRIEND_PAY_ORDER_ID, orderId);
params.put(CustomerMessage.PARAM_FRIEND_PAY_CUSTOMER_ID, currentCustomerId);
......@@ -1002,14 +996,18 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
@Override
public OrderManage queryOrder(Integer id) {
//1、getById
OrderManage orderManage = this.getById(id);
//2、聚合订单详情
return this.aggregateOrderManage(orderManage);
}
@Override
public OrderManage queryOrderByOrderNo(String orderNo) {
//1、根据订单号查询订单
OrderManage orderManage = this.getOne(new LambdaQueryWrapper<OrderManage>()
.eq(OrderManage::getOrderNo, orderNo));
//2、聚合订单详情
return this.aggregateOrderManage(orderManage);
}
......
......@@ -13,7 +13,6 @@ import com.gogirl.domain.order.serve.OrderManage;
import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.JsonUtilByFsJson;
import com.gogirl.infrastructure.common.util.RandomUtil;
import com.gogirl.infrastructure.config.property.GogirlProperties;
import com.gogirl.infrastructure.feign.wx.WxPayControllerFeign;
import com.gogirl.infrastructure.mapper.market.discount.DiscountConfigMapper;
......@@ -61,9 +60,13 @@ public class PayServiceImpl implements PayService {
@Override
public void consumeBalance(Integer currentCustomerId, Integer orderId) {
//pre、订单状态检测
OrderManage orderManage = orderManageService.queryOrder(orderId);
if (!orderManage.getStatus().equals(OrderManage.STATUS_UN_PAY)) {
throw new RRException("订单状态异常");
}
/*step1.扣除余额*/
/*1、扣除余额*/
ConsumerCommand consumerCmd = ConsumerCommand.builder()
.amount(orderManage.getTotalPaymentAmount().multiply(new BigDecimal(100)).intValue())
.customerId(currentCustomerId)
......@@ -73,6 +76,7 @@ public class PayServiceImpl implements PayService {
.build();
customerBalanceService.consumer(consumerCmd);
/*2、更新订单状态*/
/*2、更新订单*/
orderManage.setRemark("余额支付");
orderManageService.updateById(orderManage);
......@@ -102,12 +106,15 @@ public class PayServiceImpl implements PayService {
OrderManage orderManage = orderManageService.queryOrder(qry.getOrderId());
if (!orderManage.getStatus().equals(OrderManage.STATUS_UN_PAY)) {
throw new RRException("订单状态异常");
}
WxPayOrderQuery qry2 = WxPayOrderQuery
.builder()
.currentCustomerId(qry.getCustomerId())
.openid(qry.getOpenid())
//避免同单不同金额的情况
.orderNo(RandomUtil.randomInt(100000, 999999) + orderManage.getOrderNo())
.orderNo(String.format("%06d", orderManage.getTotalPaymentAmount().multiply(new BigDecimal(100)).intValue()).substring(0, 6) + orderManage.getOrderNo())
.totalPaymentAmount(orderManage.getTotalPaymentAmount())
.build();
......@@ -133,19 +140,23 @@ public class PayServiceImpl implements PayService {
@Override
public WxPayMpOrderResult balanceWxPay(BalanceWxPayQuery qry) throws UnknownHostException, WxPayException {
OrderManage orderManageDTO = orderManageService.queryOrder(qry.getOrderId());
CustomerBalance customerBalance = customerBalanceMapper.selectOne(new LambdaQueryWrapper<CustomerBalance>().eq(CustomerBalance::getCustomerId, orderManageDTO.getOrderUser()));
//1、订单状态检查
OrderManage orderManage = orderManageService.queryOrder(qry.getOrderId());
if (!orderManage.getStatus().equals(OrderManage.STATUS_UN_PAY)) {
throw new RRException("订单状态异常");
}
if (orderManageDTO.getTotalPaymentAmount().multiply(new BigDecimal(100)).intValue() < customerBalance.getBalance()) {
//2、余额检查
CustomerBalance customerBalance = customerBalanceMapper.selectOne(new LambdaQueryWrapper<CustomerBalance>().eq(CustomerBalance::getCustomerId, orderManage.getOrderUser()));
if (orderManage.getTotalPaymentAmount().multiply(new BigDecimal(100)).intValue() < customerBalance.getBalance()) {
throw new RRException("请使用余额支付");
}
BigDecimal leftTotalPaymentAmount = orderManageDTO.getTotalPaymentAmount().subtract(new BigDecimal(customerBalance.getBalance()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
//3、微信统一下单
BigDecimal leftTotalPaymentAmount = orderManage.getTotalPaymentAmount().subtract(new BigDecimal(customerBalance.getBalance()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
WxPayOrderQuery wxPayOrderQuery = WxPayOrderQuery.builder()
//避免同单不同金额的情况
.orderNo(RandomUtil.randomInt(100000, 999999) + orderManageDTO.getOrderNo())
.orderNo(String.format("%06d", leftTotalPaymentAmount.multiply(new BigDecimal(100)).intValue()).substring(0, 6) + orderManage.getOrderNo())
.currentCustomerId(qry.getCustomerId())
.openid(qry.getOpenid())
.totalPaymentAmount(leftTotalPaymentAmount)
......@@ -168,19 +179,27 @@ public class PayServiceImpl implements PayService {
return wxPayControllerFeign.createJsapiOrder(wxPayUnifiedOrderRequest);
}
@Override
public void balancePosPay(Integer currentCustomerId, Integer orderId) {
//1、订单状态检查
OrderManage orderManage = orderManageService.getById(orderId);
if (!orderManage.getStatus().equals(OrderManage.STATUS_UN_PAY)) {
throw new RRException("订单状态异常");
}
//2、余额检查
CustomerBalance customerBalance = customerBalanceMapper.selectOne(new LambdaQueryWrapper<CustomerBalance>().eq(CustomerBalance::getCustomerId, currentCustomerId));
if (orderManage.getTotalPaymentAmount().multiply(new BigDecimal(100)).intValue() < customerBalance.getBalance()) {
throw new RRException("请使用余额支付");
}
//申请余额pos支付
orderManage.setPaymentType(13);
//3、更新订单
//支付类型:请余额pos支付
orderManage.setPaymentType(13);
//多种方式支付字段构建
BigDecimal balanceAmount = new BigDecimal(customerBalance.getBalance()).divide(new BigDecimal(100), 100, BigDecimal.ROUND_HALF_UP);
......@@ -193,20 +212,28 @@ public class PayServiceImpl implements PayService {
//待确认支付
orderManage.setStatus(8);
orderManage.setUpdateTime(new Date());
orderManageService.updateById(orderManage);
}
@Override
public void chosePayType(Integer orderId, Integer payType) {
//1、订单状态检查
OrderManage orderManage = orderManageMapper.selectById(orderId);
if (!orderManage.getStatus().equals(OrderManage.STATUS_UN_PAY)) {
throw new RRException("订单状态异常");
}
//2、更新订单状态
//客户申请pos机支付
if (payType.equals(5)) {
//状态待确认
orderManage.setStatus(OrderManage.STATUS_UN_CONFIRM);
//支付类型状态pos机
orderManage.setPaymentType(OrderManage.PAYMENT_POS);
orderManage.setUpdateTime(new Date());
orderManageMapper.updateById(orderManage);
}
//客户申请团购支付
......@@ -215,8 +242,11 @@ public class PayServiceImpl implements PayService {
orderManage.setStatus(OrderManage.STATUS_UN_CONFIRM);
//支付类型状态pos机
orderManage.setPaymentType(OrderManage.PAYMENT_DZ);
orderManage.setUpdateTime(new Date());
orderManageMapper.updateById(orderManage);
} else {
}
//非法类型
else {
throw new RRException(500, "invalid payType");
}
}
......
......@@ -5,85 +5,7 @@ package com.gogirl.infrastructure.constant;
*/
public class Constans {
// 定义登录后台用户在session中的键
public final static String SESSION_SYSUSER = "SESSION_SYSUSER";
// 定义登录客户端用户在session中的键
public final static String SESSION_CLIENTUSER = "SESSION_CLIENTUSER";
//预约状态
public final static Integer SCHEDULE_STATUS_SERVICE = 1; //正在服务
public final static Integer SCHEDULE_STATUS_ABIDING = 2; //守约
public final static Integer SCHEDULE_STATUS_LOSSOFCONTRACT = 3; //失约
public final static Integer SCHEDULE_STATUS_CANCEL = 4; //已取消
public final static Integer SCHEDULE_STATUS_DELETE = 5; //已删除
public final static Integer SCHEDULE_STATUS_SERVING = 6; //已接单,正在服务
public final static Integer SCHEDULE_STATUS_WAITSERVE = 7; //自动开单,等待接单
public final static Integer SCHEDULE_IS_READ = 1; //已读
public final static Integer SCHEDULE_NO_READ = 2; //未读
public final static Integer SCHEDULE_REMIND_NEW = 1; //用户端新增预约
public final static Integer SCHEDULE_REMIND_TIME = 2; //预约时效提醒
public final static Integer SCHEDULE_TYPE_USER = 1; //用户端
public final static Integer SCHEDULE_TYPE_PC = 2; //店铺端
public final static Integer SCHEDULE_RECORD_UPDATE = 0; //修改 预约记录
public final static Integer SCHEDULE_RECORD_ADD = 1; //增加 预约记录
public final static Integer SCHEDULE_RECORD_DELETE = 2; //删除 预约记录
public final static Integer SCHEDULE_RECORD_OLD = 3; //原始数据 预约记录
//订单
public final static Integer ORDER_TYPE_SCHEDULE = 1; //线上 预约订单(店铺端预约)
public final static Integer ORDER_TYPE_STORE = 2; //线下 新建订单(店铺端订单)
public final static Integer ORDER_TYPE_OTHER = 3; //大众点评
public final static Integer ORDER_TYPE_RECHARGE = 4; //充值
public final static Integer ORDER_TYPE_USER = 5; //线上订单(用户端预约)
public final static Integer ORDER_TYPE_XCX = 6; //小程序预约订单
//订单状态
public final static Integer ORDER_STATUS_SERVE = 1; //正在服务
public final static Integer ORDER_STATUS_PAMENT = 2; //待付款
public final static Integer ORDER_STATUS_EVALUATE = 3; //未评价
public final static Integer ORDER_STATUS_FINISH = 4; //已完成
public final static Integer ORDER_STATUS_SERVING = 5; //接单后服务中
public final static Integer ORDER_STATUS_WAIT = 6; //预约后自动开单
public final static Integer ORDER_STATUS_CANCEL = 7; //用户已取消
public final static Integer ORDER_STATUS_WAIT_SURE = 8; //待美甲师端确认支付
public final static Integer ORDER_STATUS_COUPON_WAIT_SURE = 9; //待确认外部优惠券可用
//支付方式
public final static Integer ORDER_PAYMENT_WEI = 1; //微信
public final static Integer ORDER_PAYMENT_MEMBER = 2; //会员
public final static Integer ORDER_PAYMENT_OTHER = 3; //其他
//订单评价状态
public final static Integer ORDER_COMMENT_EVALUATED = 1; //未评价
public final static Integer ORDER_COMMENT_FINISH = 2; //已评价
//订单开始-结束状态
public final static Integer ORDER_EXECUTION_START = 1; //开始
public final static Integer ORDER_EXECUTION_END = 2; //结束
public final static Integer ORDER_EXECUTION_TIMESLOT = 3; //时间段
public final static Integer ORDER_EXECUTION_COMMEND = 4; //时间段
//会员来源
public final static Integer MEMBER_SCHEDULE = 1; //预约
public final static Integer MEMBER_ORDER = 2; //订单
public final static Integer MEMBER_WEI = 3; //微信
//优惠券和订单关联表状态
public final static Integer COUPON_ORDER_STATUS_CREATE = 1; //待确认
public final static Integer COUPON_ORDER_STATUS_CANUSE = 2; //已确认可用
public final static Integer COUPON_ORDER_STATUS_NOTUSE = 3; //已确认不可用
public final static Integer COUPON_ORDER_STATUS_CUSDEL = 4; //用户删除
public final static Integer COUPON_ORDER_STATUS_TECDEL = 5; //美甲师删除
//优惠券状态
public final static Integer COUPON_STATUS_YES = 1; //正常
public final static Integer COUPON_STATUS_USED = 2; //已使用
public final static Integer COUPON_STATUS_TIMEOUT = 3; //已过期
public static final String WX_PAY_ORDER_PREFIX = "000000";
public static final String WX_BALANCE_PAY_ORDER_PREFIX = "000000";
}
package com.gogirl.infrastructure.util.lock;
import java.util.HashMap;
import java.util.concurrent.locks.ReentrantLock;
/**
*  * 分段锁,系统提供一定数量的原始锁,根据传入用户id值获取对应的锁并加锁  * 注意:要锁的用户id值如果发生改变,有可能导致锁无法成功释放!!!
*/
public class OrderIdLock {
private final static HashMap<Integer, ReentrantLock> lockMap = new HashMap<>();
private Integer segments = 1;// 默认分段数量
private OrderIdLock() {
init(null, false);
}
private OrderIdLock(Integer counts, boolean fair) {
init(counts, fair);
}
/*静态内部类实现单例*/
public static final OrderIdLock getInsatance() {
return SingletonHolder.instance;
}
private void init(Integer counts, boolean fair) {
if (counts != null) {
segments = counts;
}
for (int i = 0; i < segments; i++) {
lockMap.put(i, new ReentrantLock(fair));
}
}
public void lock(int key) {
ReentrantLock lock = lockMap.get(key % segments);
lock.lock();
}
public void unlock(int key) {
ReentrantLock lock = lockMap.get(key % segments);
lock.unlock();
}
@Override
public String toString() {
return "SegmentLock [segments=" + segments + ", lockMap=" + lockMap
+ "]";
}
/*静态内部类实现单例*/
private static class SingletonHolder {
private static final OrderIdLock instance = new OrderIdLock(null, true);
}
}
......@@ -7,21 +7,14 @@ import com.gogirl.application.market.DiscountConfigService;
import com.gogirl.application.order.member.IChargeOrderService;
import com.gogirl.application.order.serve.OrderManageService;
import com.gogirl.application.order.serve.PayService;
import com.gogirl.application.store.store.CustomerDepartmentRelevanceService;
import com.gogirl.application.user.customer.CustomerBalanceService;
import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.application.xcx.GogirlTokenService;
import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.config.property.GogirlProperties;
import com.gogirl.infrastructure.feign.wx.WxPayControllerFeign;
import com.gogirl.infrastructure.mapper.store.store.UserManageMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceRecordMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerMessageMapper;
import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.infrastructure.util.lock.OrderIdLock;
import com.gogirl.shared.member.order.command.BalanceWxPayQuery;
import com.gogirl.shared.member.order.query.UnifiedOrderQuery;
import io.swagger.annotations.Api;
......@@ -42,37 +35,20 @@ import java.util.Optional;
@Slf4j
public class PayController {
/**
* rpc service
*/
private final WxPayControllerFeign wxPayControllerFeign;
/**
* domain service
*/
private final GogirlTokenService gogirlTokenService;
private final DiscountConfigService discountConfigService;
private final CustomerBalanceService balanceService;
private final CustomerService customerService;
private final OrderManageService orderManageService;
/**
* mapper
*/
private final UserManageMapper userManageMapper;
private final CustomerMessageMapper customerMessageMapper;
/**
* cqrs service
*/
private final PayService payService;
/**
* config
*/
private final GogirlProperties gogirlProperties;
private final OrderManageService orderManageService;
private final CustomerDepartmentRelevanceService customerDepartmentRelevanceService;
private final CustomerBalanceMapper customerBalanceMapper;
private final CustomerBalanceRecordMapper customerBalanceRecordMapper;
@ApiOperation(value = "微信支付预约")
@PostMapping("/customer/pay/unifiedOrder")
......@@ -83,8 +59,14 @@ public class PayController {
String openid = gogirlTokenService.getByToken(token).getOpenid();
UnifiedOrderQuery qry = new UnifiedOrderQuery(currentCustomerId, orderId, openid);
WxPayMpOrderResult result = payService.unifiedOrder(qry);
return JsonResult.success(result);
OrderIdLock lock = OrderIdLock.getInsatance();
try {
lock.lock(orderId);
WxPayMpOrderResult result = payService.unifiedOrder(qry);
return JsonResult.success(result);
} finally {
lock.unlock(orderId);
}
}
@ApiOperation(value = "会员卡支付预约订单")
......@@ -95,7 +77,13 @@ public class PayController {
.orElseThrow(() -> new RRException(500, "token不存在"));
log.info("**会员卡支付订单**,会员:{},订单id:{}", currentCustomerId, orderId);
payService.consumeBalance(currentCustomerId, orderId);
OrderIdLock lock = OrderIdLock.getInsatance();
try {
lock.lock(orderId);
payService.consumeBalance(currentCustomerId, orderId);
} finally {
lock.unlock(orderId);
}
return JsonResult.success();
}
......@@ -106,10 +94,13 @@ public class PayController {
@RequestParam @NotNull Integer payType) {
log.info("*****用户选择支付方式,支付类型{}", payType);
Integer currentCustomerId = Optional.ofNullable(gogirlTokenService.getByToken(token).getCustomerId())
.orElseThrow(() -> new RRException(500, "token不存在"));
payService.chosePayType(orderId, payType);
OrderIdLock lock = OrderIdLock.getInsatance();
try {
lock.lock(orderId);
payService.chosePayType(orderId, payType);
} finally {
lock.unlock(orderId);
}
return JsonResult.success();
}
......@@ -124,8 +115,14 @@ public class PayController {
String openid = gogirlTokenService.getByToken(token).getOpenid();
BalanceWxPayQuery qry = new BalanceWxPayQuery(currentCustomerId, orderId, openid);
WxPayMpOrderResult result = payService.balanceWxPay(qry);
return JsonResult.success(result);
OrderIdLock lock = OrderIdLock.getInsatance();
try {
lock.lock(orderId);
WxPayMpOrderResult result = payService.balanceWxPay(qry);
return JsonResult.success(result);
} finally {
lock.unlock(orderId);
}
}
@ApiOperation(value = "预约订单会员余额和pos支付")
......@@ -136,13 +133,19 @@ public class PayController {
Integer currentCustomerId = Optional.ofNullable(gogirlTokenService.getByToken(token).getCustomerId())
.orElseThrow(() -> new RRException(500, "token不存在"));
log.info("**余额pos支付订单**,会员:{},订单id:{} ", currentCustomerId, orderId);
payService.balancePosPay(currentCustomerId, orderId);
OrderIdLock lock = OrderIdLock.getInsatance();
try {
lock.lock(orderId);
payService.balancePosPay(currentCustomerId, orderId);
} finally {
lock.unlock(orderId);
}
return JsonResult.success();
}
private final IChargeOrderService chargeOrderService;
@ApiOperation(value = "用户端充值会员卡")
@ApiOperation(value = "用户端充值会员卡")
@PostMapping("/customer/pay/chargeBalance")
public JsonResult<?> customerChargeBalance(@RequestHeader String token,
@RequestParam Integer chargeId) throws UnknownHostException, WxPayException {
......@@ -156,7 +159,13 @@ public class PayController {
public JsonResult<Integer> friendPayOrder(@RequestHeader String token,
@PathVariable Integer orderId,
@ApiParam("朋友手机号") @RequestParam String phone) {
orderManageService.friendPayOrder(orderId, phone);
OrderIdLock lock = OrderIdLock.getInsatance();
try {
lock.lock(orderId);
orderManageService.friendPayOrder(orderId, phone);
} finally {
lock.unlock(orderId);
}
return JsonResult.success();
}
......@@ -179,7 +188,13 @@ public class PayController {
GogirlToken gt = gogirlTokenService.getByToken(token);
Integer technicianId = SessionUtils.getTechnicianId();
orderManageService.confirmOrder(orderId, payType, technicianId);
OrderIdLock lock = OrderIdLock.getInsatance();
try {
lock.lock(orderId);
orderManageService.confirmOrder(orderId, payType, technicianId);
} finally {
lock.unlock(orderId);
}
return JsonResult.success();
}
......
......@@ -124,13 +124,12 @@
left join order_serve orser on oc.order_id = orser.order_id
left join base_serve ser on orser.serve_id = ser.id
left join store_technician tech on find_in_set(tech.id, orser.technician_id)
left join order_manage om on orser.order_id = om.id
left join order_manage om on oc.order_id = om.id
left join customer cus on om.order_user = cus.id
where oc.technician_id = #{technicianId}
order by create_time desc
</select>
<!--result map子查询-->
<select id="queryListOrderCommentLabel" resultType="com.gogirl.domain.order.serve.OrderCommentLabel">
select t2.*
......
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