jyy
2021-01-26 ab2879bbcb846256cc182198b9c04e50fbc276c1
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
package com.matrix.system.hiveErp.action;
 
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.DateUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.core.tools.excl.ExcelSheetPO;
import com.matrix.core.tools.excl.ExcelUtil;
import com.matrix.core.tools.excl.ExcelVersion;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.tools.ResponseHeadUtil;
import com.matrix.system.hive.action.BaseController;
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.MoneyCardUse;
import com.matrix.system.hive.bean.SysOrder;
import com.matrix.system.hive.bean.SysOrderItem;
import com.matrix.system.hive.dao.SysOrderDao;
import com.matrix.system.hive.dao.SysOrderItemDao;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.service.AchieveNewService;
import com.matrix.system.hive.service.MoneyCardUseService;
import com.matrix.system.hive.service.SysOrderItemService;
import com.matrix.system.hive.service.SysOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 线下订单
 *
 * @author jiangyouyao
 * @date 2016-09-08
 */
@Controller
@RequestMapping(value = "admin/erpOrder")
public class ErpOrderController extends BaseController {
    @Resource
    private SysOrderService orderService;
 
    @Autowired
    private SysOrderItemDao orderItemDao;
 
    @Resource
    private MoneyCardUseService cardUseService;
 
    @Autowired
    private SysOrderItemService orderItemService;
 
    @Autowired
    private SysOrderDao sysOrderDao;
 
    @Autowired
    private AchieveNewService achieveNewService;
 
 
    /**
     * 列表显示
     */
    @RequestMapping(value = "/showList")
    public @ResponseBody
    AjaxResult showList(SysOrder sysOrder, PaginationVO pageVo) {
        //默认排序
        QueryUtil.setQueryLimitCom(sysOrder);
        if(StringUtils.isBlank(pageVo.getSort())){pageVo.setSort("order_time");}
        if(StringUtils.isBlank(pageVo.getOrder())){pageVo.setOrder("desc");}
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, orderService.findInPage(sysOrder, pageVo),
                orderService.findTotal(sysOrder));
    }
 
 
 
//=======================================页面转发==================================
 
 
    /**
     * 跳转 消费流水详情页面
     *
     * @author jyy
     */
    @RequestMapping(value = "/orderItem")
    public String orderItem(Long id, HttpServletRequest request) {
        // 根据id查到对应的订单信息
        SysOrder order = orderService.findById(id);
        List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(id);
        order.setItems(sysOrderItems);
 
        WebUtil.getRequest().setAttribute("order", order);
        // 根据会员Id查到会员有效的会员卡
        // 根据订单号查找订单条目
        SysOrderItem orderItem = new SysOrderItem();
        orderItem.setOrderId(id);
        List<SysOrderItem> orderItems = orderItemService.findByModel(orderItem);
        WebUtil.getRequest().setAttribute("orderItems", orderItems);
 
        MoneyCardUse moneyCardUse = new MoneyCardUse();
        moneyCardUse.setVipId(order.getVipId());
        List<MoneyCardUse> cards = cardUseService.findByModel(moneyCardUse);
 
        WebUtil.getRequest().setAttribute("orderParam", id);
 
        WebUtil.getRequest().setAttribute("cards", cards);
        return "admin/hive-erp/order/orderXq-form";
    }
 
 
    /**
     * 取消订单
     */
    @Transactional(rollbackFor = Exception.class)
    @RequestMapping(value = "/cancelOrder")
    public @ResponseBody
    AjaxResult cancelOrder(Long id, HttpServletRequest request) {
 
        AjaxResult result = new AjaxResult();
        SysOrder order = orderService.findById(id);
        if (order == null) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "订单不存在!");
        }
        orderService.cancelOrder(id);
        result.setStatus(AjaxResult.STATUS_SUCCESS);
        result.setInfo("取消成功!");
        return result;
    }
 
    @RequestMapping(value = "/exportExcel")
    public void report(ModelMap model, HttpServletRequest request, HttpServletResponse response,
                       SysOrder sysOrder) throws Exception {
        List<ExcelSheetPO> res = new ArrayList<>();
        ExcelSheetPO orderSheet = new ExcelSheetPO();
        String title = "订单记录";
        orderSheet.setSheetName(title);
        orderSheet.setTitle(title);
        String[] header = {"订单号", "客户姓名", "客户手机", "下单时间", "订单总价", "折后价", "现金付款", "卡付款", "顾问姓名", "所属门店", "订单状态"};
        orderSheet.setHeaders(header);
        SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        sysOrder.setShopId(users.getShopId());
        List<SysOrder> dataList = orderService.findInPage(sysOrder, null);
        List<List<Object>> list = new ArrayList<>();
        if (dataList.size() > 0) {
            for (SysOrder item : dataList) {
                List<Object> temp = new ArrayList<>();
                temp.add(item.getOrderNo());
                temp.add(item.getVipName());
                temp.add(item.getVipPhone());
                temp.add(DateUtil.dateToString(item.getOrderTime(), DateUtil.DATE_FORMAT_MM));
                temp.add(item.getTotal());
                temp.add(item.getZkTotal());
                temp.add(item.getCashPay());
                temp.add(item.getCardPay());
                temp.add(item.getStaffName());
                temp.add(item.getShopName());
                temp.add(item.getStatu());
                list.add(temp);
            }
        }
        orderSheet.setDataList(list);
        res.add(orderSheet);
        response = ResponseHeadUtil.setExcelHead(response);
        response.setHeader("Content-Disposition",
                "attachment;filename=" + URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8"));
        OutputStream os = response.getOutputStream();
        ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true);
 
    }
 
 
 
}