mitao
2024-06-06 3d2b51ea4520533de5e78f88dddf5b5c7dce4247
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.sinata.rest.modular.member.service.impl;
 
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sinata.rest.modular.member.dao.MyUserCouponOrderMapper;
import com.sinata.rest.modular.member.model.MyCoupon;
import com.sinata.rest.modular.member.model.MyUserCoupon;
import com.sinata.rest.modular.member.model.MyUserCouponOrder;
import com.sinata.rest.modular.member.service.IMyCouponService;
import com.sinata.rest.modular.member.service.IMyUserCouponOrderService;
import com.sinata.rest.modular.member.service.IMyUserCouponService;
import jdk.nashorn.internal.runtime.logging.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
 
/**
 * <p>
 * 有价优惠券订单 服务实现类
 * </p>
 *
 * @author fq
 * @since 2023-03-14
 */
@Service
public class MyUserCouponOrderServiceImpl extends ServiceImpl<MyUserCouponOrderMapper, MyUserCouponOrder> implements IMyUserCouponOrderService {
 
    @Autowired
    @Lazy
    IMyCouponService myCouponService;
    @Autowired
    IMyUserCouponService myUserCouponService;
 
    @Override
    public void paySuccess(String orderNo) {
        LambdaQueryWrapper<MyUserCouponOrder> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(MyUserCouponOrder::getOrderNo,orderNo);
        MyUserCouponOrder order = getOne(wrapper,Boolean.FALSE);
        //获取优惠券信息
        MyCoupon myCoupon = myCouponService.getById(order.getCouponId());
        MyUserCoupon userCoupon = new MyUserCoupon();
        userCoupon.setUserId(order.getUserId());
        userCoupon.setCouponId(myCoupon.getId());
        userCoupon.setBeginTime(myCoupon.getBeginTime());
        userCoupon.setEndTime(myCoupon.getEndTime());
        myUserCouponService.save(userCoupon);
        //更改订单信息
        order.setPayStatus(2);
        order.setUserCouponId(userCoupon.getId());
        updateById(order);
        //减扣库存
        myCoupon.setStock(myCoupon.getStock() - 1);
        myCouponService.updateById(myCoupon);
    }
}