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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package com.agentdriving.user.modular.system.service.impl;
 
import com.agentdriving.user.core.util.ToolUtil;
import com.agentdriving.user.modular.system.dao.BillMapper;
import com.agentdriving.user.modular.system.model.Bill;
import com.agentdriving.user.modular.system.model.Order;
import com.agentdriving.user.modular.system.service.IBillService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.agentdriving.user.modular.system.service.IOrderService;
import com.agentdriving.user.modular.system.util.ResultUtil;
import com.agentdriving.user.modular.system.warpper.BillWarpper;
import com.agentdriving.user.modular.system.warpper.Invoicing;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.Arrays;
import java.util.Date;
import java.util.List;
 
/**
 * @author zhibing.pu
 * @date 2023/3/24 10:07
 */
@Service
public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IBillService {
 
    @Autowired
    private IOrderService orderService;
 
 
    /**
     * 开票操作
     * @param uid
     * @param invoicing
     * @return
     * @throws Exception
     */
    @Override
    public ResultUtil invoicing(Integer uid, Invoicing invoicing) throws Exception {
        if(ToolUtil.isEmpty(invoicing.getOrderIds())){
            return ResultUtil.error("请选择有效的开票订单");
        }
        String[] split = invoicing.getOrderIds().split(",");
        List<Order> orders = orderService.selectBatchIds(Arrays.asList(split));
        for (Order order : orders) {
            if(null != order.getIsInvoice() && order.getIsInvoice() == 1){
                continue;
            }
            Bill bill = new Bill();
            BeanUtils.copyProperties(invoicing, bill);
            bill.setUserId(order.getUserId());
            bill.setOrderId(order.getId().intValue());
            bill.setBillType(1);
            bill.setBillContent("代驾服务费");
            bill.setBillAmount(order.getPayMoney());
            bill.setState(1);
            bill.setCreateTime(new Date());
            this.insert(bill);
 
            order.setIsInvoice(1);
            orderService.updateById(order);
        }
        return ResultUtil.success();
    }
 
 
    /**
     * 获取开票记录
     * @param uid
     * @param pageNum
     * @param pageSize
     * @return
     * @throws Exception
     */
    @Override
    public List<BillWarpper> queryBillList(Integer uid, Integer pageNum, Integer pageSize) throws Exception {
        pageNum = (pageNum - 1) * pageSize;
        return this.baseMapper.queryBillList(uid, pageNum, pageSize);
    }
}