Commit a6c5c26d by 黄森林

宽带订单管理功能完成

parent 0089f27e
package com.winsun.bean; package com.winsun.bean;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.util.Date; import java.util.Date;
import java.io.Serializable; import java.io.Serializable;
...@@ -9,11 +13,13 @@ import java.io.Serializable; ...@@ -9,11 +13,13 @@ import java.io.Serializable;
* @author makejava * @author makejava
* @since 2020-02-18 16:56:54 * @since 2020-02-18 16:56:54
*/ */
@TableName("order_view")
public class OrderView implements Serializable { public class OrderView implements Serializable {
private static final long serialVersionUID = -61996751798804758L; private static final long serialVersionUID = -61996751798804758L;
/** /**
* 设置主键自增 * 设置主键自增
*/ */
@TableId(value = "order_id", type = IdType.AUTO)
private Integer orderId; private Integer orderId;
/** /**
* 订单号码 * 订单号码
......
package com.winsun.constant;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/**
* 排序
* @author Liph
* @datetime 2019-09-19/9/27 11:19
*/
public enum OrderStatus {
//
PENDINGSUBMISSION("1", "待提交"),
FILE("4", "归档"),
INVALID("5", "作废"),
ACCEPTANCESUCCESSFUL("3", "受理成功"),
CHARGED("9", "已收费"),
ACCEPTEXCEPTCION("10", "受理异常"),
PENDINGACCEPTANCE("2", "待受理"),
NOTPAID("100", "未支付");
OrderStatus(String id, String name) {
this.id = id;
this.name = name;
};
private static final Map<String, OrderStatus> DATAS = new HashMap<>();
static {
Arrays.asList(values()).forEach(data -> DATAS.put(data.getId(), data));
}
private String id;
private String name;
public String getId() {
return id;
}
public String getName() {
return name;
}
public static OrderStatus findById(String id) {
return DATAS.getOrDefault(id, null);
}
}
package com.winsun.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.winsun.bean.OrderView;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @Author: chancy
* @Date: 2020/2/18 17:04
*/
@Mapper
@Component
public interface OrderViewMapper extends BaseMapper<OrderView> {
@Select("<script>SELECT * FROM `order_view` <where> ${ew.sqlSegment} </where> </script>")
List<Map<String, Object>> downloadOrderView(@Param("ew") Wrapper<OrderView> wrapper);
}
package com.winsun.controller;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.auth.core.util.IOUtils;
import com.winsun.bean.OrderView;
import com.winsun.bean.UniversityInfo;
import com.winsun.constant.OrderStatus;
import com.winsun.mapper.OrderViewMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 宽带订单管理
* @Author: chancy
* @Date: 2020/2/12 17:26
*/
@Slf4j
@RestController
@RequestMapping("/orderView")
public class OrderViewController extends BaseController {
private static OrderViewMapper orderViewMapper;
@Autowired
public OrderViewController(OrderViewMapper orderViewMapper) {
OrderViewController.orderViewMapper = orderViewMapper;
}
@Permission(menuname = "查询宽带订单(列表)", value = "list", method = RequestMethod.POST)
public ResponseData<Page<OrderView>> listOrderView(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime,
@RequestParam("orderseq") String orderseq, @RequestParam("orderUniversityName") String orderUniversityName,
@RequestParam("status") String status, @RequestParam("ordername") String ordername,
@RequestParam(name = "pageNo") int pageIndex, @RequestParam(name = "pageSize") int pageSize) {
ShiroUser user = getShiroUser();
if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) {
return ResponseData.error("无数据权限");
}
String dateFormat = "YYYY-MM-DD";
if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
startTime = startTime.substring(0, dateFormat.length()) + " 00:00:00";
endTime = endTime.substring(0, dateFormat.length()) + " 23:59:59";
} else {
startTime = null;
endTime = null;
}
String state=null;
if(StringUtils.isNotBlank(status)){
state = OrderStatus.findById(status).getId();
}
Wrapper<OrderView> wrapper = new EntityWrapper();
wrapper.like(StringUtils.isNotBlank(orderseq), "orderSeq", orderseq, SqlLike.DEFAULT);
wrapper.like(StringUtils.isNotBlank(ordername), "orderName", ordername, SqlLike.DEFAULT);
wrapper.like(StringUtils.isNotBlank(orderUniversityName), "order_university_name", orderUniversityName, SqlLike.DEFAULT);
wrapper.eq(StringUtils.isNotBlank(status), "status",state);
wrapper.ge(StringUtils.isNotBlank(startTime),"orderDate",startTime);
wrapper.le(StringUtils.isNotBlank(endTime),"orderDate",endTime);
Page<OrderView> page = new Page<>(pageIndex, pageSize);
List<OrderView> OrderViews = orderViewMapper.selectPage(page, wrapper);
page.setRecords(OrderViews);
return ResponseData.success(page, "查询完毕!");
}
@Permission(menuname = "导出宽带订单", value = "download", method = RequestMethod.POST)
public void downloadOrderView(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime,
@RequestParam("orderseq") String orderseq, @RequestParam("orderUniversityName") String orderUniversityName,
@RequestParam("status") String status, @RequestParam("ordername") String ordername) {
String dateFormat = "YYYY-MM-DD";
if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
startTime = startTime.substring(0, dateFormat.length()) + " 00:00:00";
endTime = endTime.substring(0, dateFormat.length()) + " 23:59:59";
} else {
startTime = null;
endTime = null;
}
String state=null;
if(StringUtils.isNotBlank(status)){
state = OrderStatus.findById(status).getId();
}
Wrapper<OrderView> wrapper = new EntityWrapper();
wrapper.like(StringUtils.isNotBlank(orderseq), "orderSeq", orderseq, SqlLike.DEFAULT);
wrapper.like(StringUtils.isNotBlank(ordername), "orderName", ordername, SqlLike.DEFAULT);
wrapper.like(StringUtils.isNotBlank(orderUniversityName), "order_university_name", orderUniversityName, SqlLike.DEFAULT);
wrapper.eq(StringUtils.isNotBlank(status), "status",state);
wrapper.ge(StringUtils.isNotBlank(startTime),"orderDate",startTime);
wrapper.le(StringUtils.isNotBlank(endTime),"orderDate",endTime);
List<Map<String, Object>> OrderViews = orderViewMapper.downloadOrderView(wrapper);
List<String> tops = new ArrayList<>();
tops.add("订单id");
tops.add("订单编号");
tops.add("产品名称");
tops.add("产品价格");
tops.add("套餐");
tops.add("学校");
tops.add("区域");
tops.add("客户姓名");
tops.add("联系电话");
tops.add("订单状态");
tops.add("备注");
tops.add("创建时间");
tops.add("支付平台");
tops.add("支付方式");
tops.add("支付时间");
tops.add("穗易付订单号");
tops.add("接入商");
tops.add("支付平台流水号");
tops.add("智能平台订单号");
List<String> columns = new ArrayList<>();
columns.add("order_id");
columns.add("orderSeq");
columns.add("productName");
columns.add("webOrderAmount");
columns.add("order_set_meal");
columns.add("order_university_name");
columns.add("order_region");
columns.add("orderName");
columns.add("orderPhone");
columns.add("status");
columns.add("order_customer_remarks");
columns.add("orderDate");
columns.add("ipay");
columns.add("payType");
columns.add("order_payment_time");
columns.add("orderReqtranSeq");
columns.add("customeRid");
columns.add("uptranseq");
columns.add("orderSeqTHD");
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("宽带订单清单");
//添加表头
final XSSFRow row = sheet.createRow(0);
//设置列宽度
sheet.setColumnWidth(1, 6500);
sheet.setColumnWidth(2, 6500);
sheet.setColumnWidth(5, 7000);
sheet.setColumnWidth(8, 4000);
sheet.setColumnWidth(11, 6500);
sheet.setColumnWidth(14, 6500);
sheet.setColumnWidth(15, 7000);
sheet.setColumnWidth(17, 7500);
sheet.setColumnWidth(18, 600);
//第一行字段名称
tops.forEach(column -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(column);
});
//数据
int rowIndex = row.getRowNum();
for (Map<String, Object> maps: OrderViews) {
final XSSFRow rowdata = sheet.createRow(++rowIndex);
for (String column : columns) {
XSSFCell cell = rowdata.createCell(Math.max(rowdata.getLastCellNum(), 0));
if (maps.get(column) != null) {
cell.setCellValue(maps.get(column).toString());
}
}
}
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (Exception e) {
log.error("文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment