ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ExpressCompanyMap.java
New file @@ -0,0 +1,35 @@ package com.ruoyi.common.core.constant; import java.util.HashMap; import java.util.Map; public class ExpressCompanyMap { public static final Map<String, String> EXPRESS_COMPANY_MAP = new HashMap<>(); static { // 初始化快递公司信息 EXPRESS_COMPANY_MAP.put("shunfeng", "顺丰"); EXPRESS_COMPANY_MAP.put("zhongtong", "中通"); EXPRESS_COMPANY_MAP.put("yuantong", "圆通"); EXPRESS_COMPANY_MAP.put("huitongkuaidi", "汇通快递"); EXPRESS_COMPANY_MAP.put("shentong", "申通"); EXPRESS_COMPANY_MAP.put("yunda", "韵达"); EXPRESS_COMPANY_MAP.put("ems", "EMS"); EXPRESS_COMPANY_MAP.put("jd", "京东快递"); EXPRESS_COMPANY_MAP.put("zhaijisong", "宅急送"); EXPRESS_COMPANY_MAP.put("debangkuaidi", "德邦快递"); EXPRESS_COMPANY_MAP.put("shansong", "闪送"); EXPRESS_COMPANY_MAP.put("kfw", "快分网"); } /** * 根据编码获取快递公司名称 * * @param code 快递公司编码 * @return 快递公司名称,如果编码不存在则返回 null */ public static String getCompanyNameByCode(String code) { return EXPRESS_COMPANY_MAP.get(code); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -9,6 +9,7 @@ import com.ruoyi.account.api.model.UserAddress; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.core.web.page.TableDataInfo; @@ -520,7 +521,19 @@ */ @PostMapping("/importExpress") public R importExpress(@RequestParam("file") MultipartFile file){ return null; orderService.importExpress(file); return R.ok(); } /** * 导出订单信息 */ @GetMapping("/exportExpress") public void exportExpress(HttpServletResponse response,OrderPageList orderPage){ PageInfo<OrderPageListVo> orderPageList = orderService.getOrderPageList(orderPage); List<OrderPageListVo> list = orderPageList.getRecords(); ExcelUtil<OrderPageListVo> util = new ExcelUtil<OrderPageListVo>(OrderPageListVo.class); util.exportExcel(response, list, "订单数据"); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.*; import com.ruoyi.account.api.model.*; import com.ruoyi.common.core.constant.ExpressCompanyMap; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; @@ -345,6 +346,14 @@ List<ShopBalanceStatement> data = shopBalanceStatementClient.getShopBalanceStatementList(Arrays.asList(1, 2, 3), Long.valueOf(orderPageListVo.getId())).getData(); BigDecimal reduce = data.stream().map(ShopBalanceStatement::getVariableAmount).reduce(BigDecimal.ZERO, BigDecimal::add); orderPageListVo.setGetCommission(reduce); String expressJson = orderPageListVo.getExpressJson(); // {"com":"zhongtong","num":"78853319672621"} JSONObject jsonObject = JSONObject.parseObject(expressJson); String companyName = ExpressCompanyMap.getCompanyNameByCode(jsonObject.getString("com")); orderPageListVo.setExpressCompany(companyName); orderPageListVo.setExpressNum(jsonObject.getString("num")); } return pageInfo.setRecords(list); } @@ -910,11 +919,30 @@ try (InputStream inputStream = file.getInputStream()) { Workbook workbook = WorkbookFactory.create(inputStream); Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet for (Row row : sheet) { // cell.getStringCellValue() System.out.println(); int lastRowNum = sheet.getLastRowNum(); for (int i = 1; i <= lastRowNum; i++) { Row row = sheet.getRow(i); String orderNum = row.getCell(1).getStringCellValue(); // 快递单号 String expressNum = row.getCell(7).getStringCellValue(); // 快递公司名称 String expressName = row.getCell(8).getStringCellValue(); // 省区划代码 String provinceCode = row.getCell(10).getStringCellValue(); // 市区划代码 String cityCode = row.getCell(12).getStringCellValue(); Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNumber, orderNum)); if (order != null){ JSONObject jsonObject = new JSONObject(); jsonObject.put("com", expressName); jsonObject.put("num", expressNum); order.setExpressJson(jsonObject.toJSONString()); order.setDeliverProvinceCode(provinceCode); order.setDeliverCityCode(cityCode); this.updateById(order); } } } catch (IOException e) { throw new RuntimeException(e); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java
New file @@ -0,0 +1,5 @@ package com.ruoyi.order.vo; public class OrderExport { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageListVo.java
@@ -1,5 +1,6 @@ package com.ruoyi.order.vo; import com.ruoyi.common.core.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,20 +17,26 @@ @ApiModelProperty("订单id") private String id; @ApiModelProperty("订单编号") @Excel(name = "订单编号") private String code; @ApiModelProperty("下单时间") @Excel(name = "下单时间") private String createTime; @ApiModelProperty("售后截止时间") private String afterSaleTime; @ApiModelProperty("下单用户") @Excel(name = "下单用户") private String userName; @ApiModelProperty("联系电话") @Excel(name = "联系方式") private String phone; @ApiModelProperty("商品类型(1=服务,2=单品)") @Excel(name = "订单类型", readConverterExp = "1=服务,2=单品") private Integer goodsType; @ApiModelProperty("支付方式(1=微信,2=余额,3=积分)") private Integer paymentType; @ApiModelProperty("订单金额") @Excel(name = "支付金额") private BigDecimal orderMoney; @ApiModelProperty("订单积分") private BigDecimal point; @@ -39,6 +46,25 @@ private Integer distributionMode; @ApiModelProperty("获得分佣") private BigDecimal getCommission; // 快递单号 @Excel(name = "快递单号") private String expressNum; // 快递公司 @Excel(name = "快递公司") private String expressCompany; // 省 @Excel(name = "省") private String deliverProvince; // 市 @Excel(name = "市") private String deliverProvinceCode; // 省区划代码 @Excel(name = "省区划代码") private String deliverCity; // 市区划代码 @Excel(name = "市区划代码") private String deliverCityCode; /** * 用户id */ @@ -48,6 +74,8 @@ private Integer shopId; private String expressJson; public BigDecimal getGetPoint(){ return point; } ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -62,7 +62,12 @@ point, order_status as status, shop_id, distribution_mode as distributionMode distribution_mode as distributionMode, express_json, deliver_province, deliver_province_code, deliver_city, deliver_city_code from t_order where del_flag = 0 and pay_status = 2 <if test="null != item.code and '' != item.code"> and order_number like CONCAT('%', #{item.code}, '%')