xiaoyong931011
2022-04-18 7e9976fe57ab5133b019a9258e7c054f74e1d2ab
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.matrix.system.padApi.action;
 
import cn.hutool.core.util.ObjectUtil;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.app.vo.OrderDetailVo;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.enums.BooleanEnum;
import com.matrix.system.hive.action.BaseController;
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.SysOrder;
import com.matrix.system.hive.service.SysOrderService;
import com.matrix.system.padApi.dto.PadOrderListDto;
import com.matrix.system.padApi.vo.PadOrderDetailVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
 
@CrossOrigin(origins = "*")
@Api(value = "PadOrderAction", tags = "pad端订单请求")
@RestController
@RequestMapping(value = "/api/pad/order")
public class PadOrderAction extends BaseController {
 
    @Resource
    private SysOrderService sysOrderService;
 
    @Resource
    private SysOrderService orderService;
 
    @Autowired
    private BusParameterSettingsDao busParameterSettingsDao;
 
    @ApiOperation(value = "获取订单列表", notes = "获取订单列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = PadOrderDetailVo.class)
    })
    @PostMapping(value = "/findOrderList")
    public AjaxResult findOrderList(@RequestBody @Validated PadOrderListDto orderListDto) {
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        int offset = (orderListDto.getPageNum() - 1) * orderListDto.getPageSize();
        int limit = orderListDto.getPageSize();
        PaginationVO pageVo = new PaginationVO();
        pageVo.setOffset(offset);
        pageVo.setLimit(limit);
 
        if (!DataAuthUtil.hasAllShopAuth()) {
            orderListDto.setShopId(user.getShopId());
        }
        QueryUtil.setQueryLimitCom(orderListDto);
        return AjaxResult.buildSuccessInstance(sysOrderService.findPadApiOrderListInPage(orderListDto, pageVo),
                sysOrderService.findPadApiOrderListTotal(orderListDto));
    }
 
    @ApiOperation(value = "获取订单详情", notes = "获取订单详情")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = OrderDetailVo.class)
    })
    @GetMapping(value = "/findOrderDetail/{orderId}")
    public AjaxResult findOrderDetail(@PathVariable("orderId") Long orderId) {
        OrderDetailVo orderDetail = sysOrderService.findApiOrderDetailByOrderId(orderId);
        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
        ajaxResult.putInMap("orderDetail", orderDetail);
        return ajaxResult;
    }
 
    @ApiOperation(value = "取消订单", notes = "取消订单")
    @GetMapping(value = "/cancelOrder/{id}")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult cancelOrder(Long id) {
 
        SysOrder order = orderService.findById(id);
        if (ObjectUtil.isEmpty(order)) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "订单不存在!");
        }
 
        BusParameterSettings shopManageAbleCancelDfkOrder = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER, order.getCompanyId());
        if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue())
                && BooleanEnum.TRUE.getValue() == shopManageAbleCancelDfkOrder.getIntParamValue()) {
 
            if (!Dictionary.ORDER_STATU_DFK.equals(order.getStatu())) {
                return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待付款订单");
            }
        }
        orderService.cancelOrder(id);
        return AjaxResult.buildSuccessInstance("取消成功");
    }
 
    @ApiOperation(value = "收款", notes = "收款")
    @PostMapping(value = "/sk")
    public AjaxResult sk(@RequestBody SysOrder order) throws GlobleException {
        orderService.payOrder(order);
        return AjaxResult.buildSuccessInstance("收款成功");
    }
 
    @ApiOperation(value = "补交", notes = "补交")
    @PostMapping(value = "/bj")
    public AjaxResult bj(@RequestBody SysOrder order){
        orderService.updateAfterMoney(order);
        return AjaxResult.buildSuccessInstance("补交成功");
    }
 
 
}