luodangjia
2025-01-24 856a6a86a65d4abc03eb2df11ad5afb6d6f5e7c7
12.18
4个文件已修改
2个文件已添加
126 ■■■■■ 已修改文件
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ExpressCompanyMap.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageListVo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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}, '%')