OrderController.java 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. /*
  2. *
  3. * OrderController
  4. *
  5. */
  6. package com.hboxs.control.admin;
  7. import cn.afterturn.easypoi.excel.ExcelExportUtil;
  8. import cn.afterturn.easypoi.excel.entity.ExportParams;
  9. import com.hboxs.common.Filter;
  10. import com.hboxs.common.JsonMessage;
  11. import com.hboxs.common.Message;
  12. import com.hboxs.common.Pageable;
  13. import com.hboxs.entity.Admin;
  14. import com.hboxs.entity.Order;
  15. import com.hboxs.excel.OrderTarget;
  16. import com.hboxs.service.AdminService;
  17. import com.hboxs.service.OrderService;
  18. import org.apache.commons.lang.StringUtils;
  19. import org.apache.commons.lang.time.DateUtils;
  20. import org.apache.poi.ss.usermodel.Workbook;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.ui.ModelMap;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RequestMethod;
  25. import org.springframework.web.bind.annotation.ResponseBody;
  26. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  27. import javax.annotation.Resource;
  28. import javax.servlet.http.HttpServletResponse;
  29. import javax.servlet.http.HttpSession;
  30. import java.io.IOException;
  31. import java.io.OutputStream;
  32. import java.net.URLEncoder;
  33. import java.text.ParseException;
  34. import java.text.SimpleDateFormat;
  35. import java.util.ArrayList;
  36. import java.util.Date;
  37. import java.util.List;
  38. /**
  39. * Controller - 订单
  40. */
  41. @Controller("adminOrderController")
  42. @RequestMapping("/asl-admin/order")
  43. public class OrderController extends BaseController {
  44. @Resource(name = "adminServiceImpl")
  45. private AdminService adminService;
  46. @Resource(name = "orderServiceImpl")
  47. private OrderService orderService;
  48. /**
  49. * 添加
  50. */
  51. @RequestMapping(value = "/add", method = RequestMethod.GET)
  52. public String add(ModelMap model, HttpSession session) {
  53. return "/admin/order/add";
  54. }
  55. /**
  56. * 保存
  57. */
  58. @RequestMapping(value = "/save", method = RequestMethod.POST)
  59. public String save(Order order, RedirectAttributes redirectAttributes) {
  60. orderService.save(order);
  61. addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  62. return "redirect:list.htm";
  63. }
  64. /**
  65. * 编辑
  66. */
  67. @RequestMapping(value = "/edit", method = RequestMethod.GET)
  68. public String edit(Long id, ModelMap model, HttpSession session) {
  69. model.addAttribute("order", orderService.find(id));
  70. Admin admin = adminService.getCurrent();
  71. model.addAttribute("admin", admin);
  72. return "/admin/order/edit";
  73. }
  74. /**
  75. * 更新
  76. */
  77. @RequestMapping(value = "/update", method = RequestMethod.POST)
  78. public String update(Order order, RedirectAttributes redirectAttributes) {
  79. orderService.update(order, "");
  80. addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  81. return "redirect:list.htm";
  82. }
  83. /**
  84. * 列表
  85. */
  86. @RequestMapping(value = "/list", method = RequestMethod.GET)
  87. public String list(String sn, String clientId, String productName, Order.Status status, Order.Type type, String beginEndDate, Pageable pageable, ModelMap model) {
  88. Admin admin = adminService.getCurrent();
  89. model.addAttribute("admin", admin);
  90. List<Admin> admins = adminService.findAllLowerAdmin(admin.getId());
  91. Long[] lowerIds = null;
  92. if (admins == null) {
  93. lowerIds = new Long[]{};
  94. } else {
  95. lowerIds = new Long[admins.size()];
  96. for (int i = 0; i < admins.size(); i++) {
  97. lowerIds[i] = admins.get(i).getId();
  98. }
  99. }
  100. switch (admin.getType()) {
  101. case admin:
  102. break;
  103. case agency:
  104. pageable.getFilters().add(Filter.in("adminId", lowerIds));
  105. break;
  106. case merchant:
  107. pageable.getFilters().add(Filter.in("adminId", lowerIds));
  108. break;
  109. case personage:
  110. pageable.getFilters().add(Filter.in("adminId", lowerIds));
  111. break;
  112. }
  113. if (!StringUtils.isEmpty(beginEndDate)) {
  114. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  115. Date begin = null;
  116. Date end = null;
  117. try {
  118. begin = simpleDateFormat.parse(beginEndDate.split(" - ")[0].trim());
  119. end = simpleDateFormat.parse(beginEndDate.split(" - ")[1].trim());
  120. } catch (ParseException e) {
  121. e.printStackTrace();
  122. }
  123. pageable.getFilters().add(Filter.geDate("createDate" , begin));
  124. pageable.getFilters().add(Filter.leDate("createDate" , end));
  125. }
  126. if (!StringUtils.isEmpty(sn)) {
  127. pageable.getFilters().add(Filter.like("sn", "%" + sn + "%"));
  128. }
  129. if (!StringUtils.isEmpty(productName)) {
  130. pageable.getFilters().add(Filter.like("productName", "%" + productName + "%"));
  131. }
  132. if (status != null) {
  133. pageable.getFilters().add(Filter.eq("status", status));
  134. }
  135. if (type != null) {
  136. pageable.getFilters().add(Filter.eq("type", type));
  137. }
  138. if (!StringUtils.isEmpty(clientId)) {
  139. pageable.getFilters().add(Filter.like("clientId", "%" + clientId + "%"));
  140. }
  141. model.addAttribute("page", orderService.findPage(pageable));
  142. model.addAttribute("beginEndDate" , beginEndDate);
  143. model.addAttribute("sn", sn);
  144. model.addAttribute("productName", productName);
  145. model.addAttribute("status", status);
  146. model.addAttribute("type", type);
  147. model.addAttribute("clientId", clientId);
  148. return "/admin/order/list";
  149. }
  150. /**
  151. * 删除
  152. */
  153. @RequestMapping(value = "/delete", method = RequestMethod.POST)
  154. @ResponseBody
  155. public Message delete(Long[] ids) {
  156. orderService.delete(ids);
  157. return SUCCESS_MESSAGE;
  158. }
  159. @RequestMapping(value = "/export")
  160. public Object export(HttpServletResponse response, Long[] ids, String date) {
  161. Admin admin = adminService.getCurrent();
  162. List<Admin> admins = adminService.findAllLowerAdmin(admin.getId());
  163. Long[] lowerIds = null;
  164. if (admins == null) {
  165. lowerIds = new Long[]{};
  166. } else {
  167. lowerIds = new Long[admins.size()];
  168. for (int i = 0; i < admins.size(); i++) {
  169. lowerIds[i] = admins.get(i).getId();
  170. }
  171. }
  172. List<Filter> filters = new ArrayList<>();
  173. switch (admin.getType()) {
  174. case admin:
  175. break;
  176. case agency:
  177. filters.add(Filter.in("adminId", lowerIds));
  178. break;
  179. case merchant:
  180. filters.add(Filter.in("adminId", lowerIds));
  181. break;
  182. case personage:
  183. filters.add(Filter.in("adminId", lowerIds));
  184. break;
  185. }
  186. try {
  187. if (StringUtils.isNotBlank(date)) {
  188. String[] datestring = date.split(" - ");
  189. Date startDate = new SimpleDateFormat("yyyy-MM-dd").parse(datestring[0]);
  190. Date endDate = new SimpleDateFormat("yyyy-MM-dd").parse(datestring[1]);
  191. filters.add(Filter.geDate("createDate", startDate));
  192. filters.add(Filter.leDate("createDate", DateUtils.addDays(endDate, 1)));
  193. }
  194. } catch (ParseException e) {
  195. e.printStackTrace();
  196. return JsonMessage.success("导出错误");
  197. }
  198. //List<Order> list = orderService.findList(ids);
  199. List<Order> list = orderService.findList(null, filters, null);
  200. List<OrderTarget> orderTargetList = orderService.findById(admin, list);
  201. ExportParams exportParams = new ExportParams("订单记录", "sheet1");
  202. Workbook workbook = ExcelExportUtil.exportExcel(exportParams, OrderTarget.class, orderTargetList);
  203. if (workbook != null) {
  204. OutputStream os = null;
  205. try {
  206. os = response.getOutputStream();
  207. SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
  208. response.setContentType("application/vnd.ms-excel;charset=utf-8");
  209. response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("订单记录数据导出" + format.format(new Date()) + ".xls", "UTF-8"));
  210. workbook.write(os);
  211. return JsonMessage.success("导出成功");
  212. } catch (Exception e) {
  213. e.printStackTrace();
  214. return JsonMessage.success("导出错误");
  215. } finally {
  216. try {
  217. os.close();
  218. workbook.close();
  219. } catch (IOException e) {
  220. e.printStackTrace();
  221. }
  222. }
  223. }
  224. return JsonMessage.success("导出错误");
  225. }
  226. }