123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- /*
- *
- * OrderController
- *
- */
- package com.hboxs.control.admin;
- import cn.afterturn.easypoi.excel.ExcelExportUtil;
- import cn.afterturn.easypoi.excel.entity.ExportParams;
- import com.hboxs.common.Filter;
- import com.hboxs.common.JsonMessage;
- import com.hboxs.common.Message;
- import com.hboxs.common.Pageable;
- import com.hboxs.entity.Admin;
- import com.hboxs.entity.Order;
- import com.hboxs.excel.OrderTarget;
- import com.hboxs.service.AdminService;
- import com.hboxs.service.OrderService;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.lang.time.DateUtils;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.servlet.mvc.support.RedirectAttributes;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.net.URLEncoder;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * Controller - 订单
- */
- @Controller("adminOrderController")
- @RequestMapping("/asl-admin/order")
- public class OrderController extends BaseController {
- @Resource(name = "adminServiceImpl")
- private AdminService adminService;
- @Resource(name = "orderServiceImpl")
- private OrderService orderService;
- /**
- * 添加
- */
- @RequestMapping(value = "/add", method = RequestMethod.GET)
- public String add(ModelMap model, HttpSession session) {
- return "/admin/order/add";
- }
- /**
- * 保存
- */
- @RequestMapping(value = "/save", method = RequestMethod.POST)
- public String save(Order order, RedirectAttributes redirectAttributes) {
- orderService.save(order);
- addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
- return "redirect:list.htm";
- }
- /**
- * 编辑
- */
- @RequestMapping(value = "/edit", method = RequestMethod.GET)
- public String edit(Long id, ModelMap model, HttpSession session) {
- model.addAttribute("order", orderService.find(id));
- Admin admin = adminService.getCurrent();
- model.addAttribute("admin", admin);
- return "/admin/order/edit";
- }
- /**
- * 更新
- */
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- public String update(Order order, RedirectAttributes redirectAttributes) {
- orderService.update(order, "");
- addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
- return "redirect:list.htm";
- }
- /**
- * 列表
- */
- @RequestMapping(value = "/list", method = RequestMethod.GET)
- public String list(String sn, String clientId, String productName, Order.Status status, Order.Type type, String beginEndDate, Pageable pageable, ModelMap model) {
- Admin admin = adminService.getCurrent();
- model.addAttribute("admin", admin);
- List<Admin> admins = adminService.findAllLowerAdmin(admin.getId());
- Long[] lowerIds = null;
- if (admins == null) {
- lowerIds = new Long[]{};
- } else {
- lowerIds = new Long[admins.size()];
- for (int i = 0; i < admins.size(); i++) {
- lowerIds[i] = admins.get(i).getId();
- }
- }
- switch (admin.getType()) {
- case admin:
- break;
- case agency:
- pageable.getFilters().add(Filter.in("adminId", lowerIds));
- break;
- case merchant:
- pageable.getFilters().add(Filter.in("adminId", lowerIds));
- break;
- case personage:
- pageable.getFilters().add(Filter.in("adminId", lowerIds));
- break;
- }
- if (!StringUtils.isEmpty(beginEndDate)) {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date begin = null;
- Date end = null;
- try {
- begin = simpleDateFormat.parse(beginEndDate.split(" - ")[0].trim());
- end = simpleDateFormat.parse(beginEndDate.split(" - ")[1].trim());
- } catch (ParseException e) {
- e.printStackTrace();
- }
- pageable.getFilters().add(Filter.geDate("createDate" , begin));
- pageable.getFilters().add(Filter.leDate("createDate" , end));
- }
- if (!StringUtils.isEmpty(sn)) {
- pageable.getFilters().add(Filter.like("sn", "%" + sn + "%"));
- }
- if (!StringUtils.isEmpty(productName)) {
- pageable.getFilters().add(Filter.like("productName", "%" + productName + "%"));
- }
- if (status != null) {
- pageable.getFilters().add(Filter.eq("status", status));
- }
- if (type != null) {
- pageable.getFilters().add(Filter.eq("type", type));
- }
- if (!StringUtils.isEmpty(clientId)) {
- pageable.getFilters().add(Filter.like("clientId", "%" + clientId + "%"));
- }
- model.addAttribute("page", orderService.findPage(pageable));
- model.addAttribute("beginEndDate" , beginEndDate);
- model.addAttribute("sn", sn);
- model.addAttribute("productName", productName);
- model.addAttribute("status", status);
- model.addAttribute("type", type);
- model.addAttribute("clientId", clientId);
- return "/admin/order/list";
- }
- /**
- * 删除
- */
- @RequestMapping(value = "/delete", method = RequestMethod.POST)
- @ResponseBody
- public Message delete(Long[] ids) {
- orderService.delete(ids);
- return SUCCESS_MESSAGE;
- }
- @RequestMapping(value = "/export")
- public Object export(HttpServletResponse response, Long[] ids, String date) {
- Admin admin = adminService.getCurrent();
- List<Admin> admins = adminService.findAllLowerAdmin(admin.getId());
- Long[] lowerIds = null;
- if (admins == null) {
- lowerIds = new Long[]{};
- } else {
- lowerIds = new Long[admins.size()];
- for (int i = 0; i < admins.size(); i++) {
- lowerIds[i] = admins.get(i).getId();
- }
- }
- List<Filter> filters = new ArrayList<>();
- switch (admin.getType()) {
- case admin:
- break;
- case agency:
- filters.add(Filter.in("adminId", lowerIds));
- break;
- case merchant:
- filters.add(Filter.in("adminId", lowerIds));
- break;
- case personage:
- filters.add(Filter.in("adminId", lowerIds));
- break;
- }
- try {
- if (StringUtils.isNotBlank(date)) {
- String[] datestring = date.split(" - ");
- Date startDate = new SimpleDateFormat("yyyy-MM-dd").parse(datestring[0]);
- Date endDate = new SimpleDateFormat("yyyy-MM-dd").parse(datestring[1]);
- filters.add(Filter.geDate("createDate", startDate));
- filters.add(Filter.leDate("createDate", DateUtils.addDays(endDate, 1)));
- }
- } catch (ParseException e) {
- e.printStackTrace();
- return JsonMessage.success("导出错误");
- }
- //List<Order> list = orderService.findList(ids);
- List<Order> list = orderService.findList(null, filters, null);
- List<OrderTarget> orderTargetList = orderService.findById(admin, list);
- ExportParams exportParams = new ExportParams("订单记录", "sheet1");
- Workbook workbook = ExcelExportUtil.exportExcel(exportParams, OrderTarget.class, orderTargetList);
- if (workbook != null) {
- OutputStream os = null;
- try {
- os = response.getOutputStream();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("订单记录数据导出" + format.format(new Date()) + ".xls", "UTF-8"));
- workbook.write(os);
- return JsonMessage.success("导出成功");
- } catch (Exception e) {
- e.printStackTrace();
- return JsonMessage.success("导出错误");
- } finally {
- try {
- os.close();
- workbook.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return JsonMessage.success("导出错误");
- }
- }
|