Files
nuttyreading-java/src/main/java/com/peanut/modules/book/controller/ExpressController.java
wangjinlei 57641b2e2a log-slf4j
2023-11-22 10:45:21 +08:00

126 lines
5.4 KiB
Java

package com.peanut.modules.book.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.peanut.common.utils.HttpsUtil;
import com.peanut.common.utils.R;
import com.peanut.modules.book.entity.ExpressCompany;
import com.peanut.modules.book.entity.ExpressOrder;
import com.peanut.modules.book.service.ExpressCompanyService;
import com.peanut.modules.book.service.ExpressOrderService;
import com.peanut.modules.book.to.ExpressPrintDto;
import com.peanut.modules.book.vo.ExpressCompanyVo;
import com.peanut.modules.book.vo.response.PrintTemplateVo;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description: 快递 Controller
* @Author: Cauchy
* @CreateTime: 2023/10/16
*/
@Slf4j
@RestController
@RequestMapping("/express")
public class ExpressController {
@Autowired
private ExpressCompanyService expressCompanyService;
@Autowired
private ExpressOrderService expressOrderService;
/**
* 获取快递公司列表
*
* @return R
*/
@RequestMapping(path = "/getExpressCompanyList", method = RequestMethod.GET)
public R getExpressCompanyList() {
List<ExpressCompanyVo> expressCompanyList = expressCompanyService.getExpressCompanyList();
return R.ok().put("result", expressCompanyList);
}
/**
* 获取面单列表
* @param expressPrintDto
* @return
*/
@RequestMapping("/getExpressPrints")
public R getExpressPrints(@RequestBody ExpressPrintDto expressPrintDto) throws IOException {
LambdaQueryWrapper<ExpressOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(expressPrintDto.getExpressOrderSn()),ExpressOrder::getExpressOrderSn,expressPrintDto.getExpressOrderSn());
if(expressPrintDto.getDate()!=null&&expressPrintDto.getDate()!=""){
String startDate = expressPrintDto.getDate()+" 00:00:00";
String endDate = expressPrintDto.getDate()+" 23:59:59";
wrapper.between(ExpressOrder::getCreateTime,startDate,endDate);
}
wrapper.eq(expressPrintDto.getType()!=0,ExpressOrder::getTemplatePrinted,expressPrintDto.getType()==1?1:0);
wrapper.orderByDesc(ExpressOrder::getCreateTime);
Page<ExpressOrder> expressOrderPage = expressOrderService.getBaseMapper().selectPage(new Page<>(expressPrintDto.getPage(), expressPrintDto.getLimit()), wrapper);
for (ExpressOrder e :expressOrderPage.getRecords()){
if(e.getPrintTemplate()!=null){
String c_string = HttpsUtil.getHttps(e.getPrintTemplate());
e.setPrintString(c_string);
}
}
return R.ok().put("page",expressOrderPage);
}
/**
* 获取快递面单列表(废弃)
*
* @return R
*/
@RequestMapping(path = "/getPrintTemplateList", method = RequestMethod.GET)
public R getPrintTemplate(@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(value = "currentPage", defaultValue = "1") Integer currentPage) {
Page<ExpressOrder> expressOrderPage = new Page<>(currentPage, pageSize);
QueryWrapper<ExpressOrder> expressOrderQueryWrapper = new QueryWrapper<>();
int totalDataSize = expressOrderService.count(expressOrderQueryWrapper);
int totalPage = totalDataSize / pageSize + 1;
Page<ExpressOrder> page = expressOrderService.page(expressOrderPage, expressOrderQueryWrapper);
List<ExpressOrder> expressOrderList = page.getRecords();
List<PrintTemplateVo> data = new ArrayList<>();
for (ExpressOrder expressOrder : expressOrderList) {
PrintTemplateVo vo = new PrintTemplateVo();
QueryWrapper<ExpressCompany> expressCompanyQueryWrapper = new QueryWrapper<>();
expressCompanyQueryWrapper.eq("code", expressOrder.getExpressCompanyCode());
ExpressCompany expressCompany = expressCompanyService.getOne(expressCompanyQueryWrapper);
vo.setExpressCompanyCode(expressCompany.getName());
vo.setPrintTemplate(expressOrder.getPrintTemplate());
vo.setExpressOrderSn(expressOrder.getExpressOrderSn());
vo.setTemplatedPrinted(vo.getTemplatedPrinted());
data.add(vo);
}
Map<String, Object> result = new HashMap<>();
result.put("data", data);
result.put("currentPage", currentPage);
result.put("pageSize", pageSize);
result.put("totalDataSize", totalDataSize);
result.put("totalPage", totalPage);
return R.ok().put("result", result);
}
@RequestMapping(value = "/printTemplate", method = RequestMethod.POST)
public R printTemplate(@RequestBody List<Integer> expressOrderIdList) {
UpdateWrapper<ExpressOrder> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("template_printed", 1);
updateWrapper.in("id", expressOrderIdList);
expressOrderService.update(updateWrapper);
return R.ok();
}
}