yangyb 1 неделя назад
Родитель
Сommit
93b3f70910

+ 21 - 93
mall-api/src/main/java/com/txz/mall/constants/Constants.java

@@ -269,72 +269,7 @@ public class Constants {
     public static final int CATEGORY_TYPE_CONFIG = 6; //配置分类
     public static final int CATEGORY_TYPE_SKILL = 7; //秒杀配置
 
-    //首页Banner图片
-    public static final int INDEX_RECOMMEND_BANNER = 1; //首页精品推荐Banner图片
-    public static final int INDEX_HOT_BANNER = 2; //热门榜单推荐Banner图片
-    public static final int INDEX_NEW_BANNER = 3; //首页首发新品推荐Banner图片
-    public static final int INDEX_BENEFIT_BANNER = 4; //首页促销单品推荐Banner图片
-    public static final int INDEX_LIMIT_DEFAULT = 3; //首页默认list分页条数
-    public static final int INDEX_GOOD_BANNER = 5; //优选推荐
-
-    public static final String INDEX_BAST_LIMIT = "bastNumber"; //精品推荐个数
-    public static final String INDEX_FIRST_LIMIT = "firstNumber"; //首发新品个数
-    public static final String INDEX_SALES_LIMIT = "promotionNumber"; //促销单品个数
-    public static final String INDEX_HOT_LIMIT = "hotNumber"; //热门推荐个数
-
-
-    //用户资金
-    public static final String USER_BILL_CATEGORY_MONEY = "now_money"; //用户余额
-    public static final String USER_BILL_CATEGORY_INTEGRAL = "integral"; //积分
-    public static final String USER_BILL_CATEGORY_SHARE = "share"; //分享
-    public static final String USER_BILL_CATEGORY_EXPERIENCE = "experience"; //经验
-    public static final String USER_BILL_CATEGORY_BROKERAGE_PRICE = "brokerage_price"; //佣金金额
-    public static final String USER_BILL_CATEGORY_SIGN_NUM = "sign_num"; //签到天数
-
-    public static final String USER_BILL_TYPE_BROKERAGE = "brokerage"; //推广佣金
-    public static final String USER_BILL_TYPE_DEDUCTION = "deduction"; //抵扣
-    public static final String USER_BILL_TYPE_EXTRACT = "extract"; //提现
-    public static final String USER_BILL_TYPE_TRANSFER_IN = "transferIn"; //佣金转入余额
-    public static final String USER_BILL_TYPE_GAIN = "gain"; //购买商品赠送
-    public static final String USER_BILL_TYPE_PAY_MONEY = "pay_money"; //购买
-    public static final String USER_BILL_TYPE_PAY_PRODUCT = "pay_product"; //购买商品
-    public static final String USER_BILL_TYPE_PAY_PRODUCT_INTEGRAL_BACK = "pay_product_integral_back"; //商品退积分
-    public static final String USER_BILL_TYPE_PAY_PRODUCT_REFUND = "pay_product_refund"; //商品退款
-    public static final String USER_BILL_TYPE_RECHARGE = "recharge"; //佣金转入
-    public static final String USER_BILL_TYPE_PAY_RECHARGE = "pay_recharge"; //充值
-    public static final String USER_BILL_TYPE_SHARE = "share"; //用户分享记录
-    public static final String USER_BILL_TYPE_SIGN = "sign"; //签到
-    public static final String USER_BILL_TYPE_ORDER = "order"; //订单
-    public static final String USER_BILL_TYPE_PAY_ORDER = "pay_order"; //订单支付
-    public static final String USER_BILL_TYPE_SYSTEM_ADD = "system_add"; //系统增加
-    public static final String USER_BILL_TYPE_SYSTEM_SUB = "system_sub"; //系统减少
-    public static final String USER_BILL_TYPE_PAY_MEMBER = "pay_member";// 会员支付
-    public static final String USER_BILL_TYPE_OFFLINE_SCAN = "offline_scan";// 线下支付
-    public static final String USER_BILL_TYPE_USER_RECHARGE_REFUND = "user_recharge_refund";// 用户充值退款
-
-    //订单状态
-    public static final int ORDER_STATUS_ALL = 0; //所有
-    public static final int ORDER_STATUS_UNPAID = 1; //未支付
-    public static final int ORDER_STATUS_WAIT_OPEN = 2; // 等待开团
-    public static final int ORDER_STATUS_OPEN_SUCCESS = 3;// 开团成功
-    public static final int ORDER_STATUS_OPEN_FAIL = 4; // 开团失败
-    public static final int ORDER_STATUS_WIN = 5; // 中奖
-    public static final int ORDER_STATUS_NOT_WIN = 6; // 未中奖
-    public static final int ORDER_STATUS_WAIT_DELIVER = 7; //待发货
-    public static final int ORDER_STATUS_WAIT_RECEIVER = 8; //待收货
-    public static final int ORDER_STATUS_RECEIVED_GOOD = 9;  // 已收货
-    public static final int ORDER_STATUS_COMPLETE = 10; //完成
-    public static final int ORDER_STATUS_CANCEL = 11;  // 取消
-    public static final int ORDER_STATUS_CLOSE = 12;//关闭
-
-//    public static final Integer ORDER_STATUS_NOT_SHIPPED = "notShipped"; //未发货
-//    public static final Integer ORDER_STATUS_SPIKE = "spike"; //待收货
-//    public static final Integer ORDER_STATUS_BARGAIN = "bargain"; //已收货待评价
-//    public static final Integer ORDER_STATUS_COMPLETE = "complete"; //交易完成
-//    public static final Integer ORDER_STATUS_APPLY_REFUNDING = "applyRefund"; //申请退款
-//    public static final Integer ORDER_STATUS_REFUNDING = "refunding"; //退款中
-//    public static final Integer ORDER_STATUS_REFUNDED = "refunded"; //已退款
-//    public static final Integer ORDER_STATUS_DELETED = "deleted"; //已删除
+
 
     public static final String ORDER_STATUS_STR_UNPAID = "未支付"; //未支付
     public static final String ORDER_STATUS_STR_NOT_SHIPPED = "未发货"; //未发货
@@ -348,21 +283,27 @@ public class Constants {
     public static final String ORDER_STATUS_STR_REFUNDED = "已退款"; //已退款
     public static final String ORDER_STATUS_STR_DELETED = "已删除"; //已删除
 
-    // H5 端订单状态
-    public static final int ORDER_STATUS_H5_UNPAID = 0; // 未支付
-    public static final int ORDER_STATUS_H5_NOT_SHIPPED = 1; // 待发货
-    public static final int ORDER_STATUS_H5_SPIKE = 2; // 待收货
-    public static final int ORDER_STATUS_H5_JUDGE = 3; // 待评价
-    public static final int ORDER_STATUS_H5_COMPLETE = 4; // 已完成
-    public static final int ORDER_STATUS_H5_VERIFICATION = 5; // 待核销
-    public static final int ORDER_STATUS_H5_REFUNDING = -1; // 退款中
-    public static final int ORDER_STATUS_H5_REFUNDED = -2; // 已退款
-    public static final int ORDER_STATUS_H5_REFUND = -3; // 退款
+    // H5 端
 
-    public static final int ORDER_STATUS_INT_PAID = 0; //已支付
-    public static final int ORDER_STATUS_INT_SPIKE = 1; //待收货
-    public static final int ORDER_STATUS_INT_BARGAIN = 2; //已收货,待评价
-    public static final int ORDER_STATUS_INT_COMPLETE = 3; //已完成
+    // 支付状态
+    public static final int ORDER_STATUS_H5_UNPAID = 0; // 未支付
+    public static final int ORDER_STATUS_H5_PAID = 1; // 已支付
+    // 订单状态
+    public static final int ORDER_STATUS_H5_NOT_SHIPPED = 0; // 待发货
+    public static final int ORDER_STATUS_H5_SPIKE = 1; // 待收货
+    public static final int ORDER_STATUS_H5_COMPLETE = 3; // 已完成
+    public static final int ORDER_STATUS_H5_CLOSE = 4;// 关闭
+    public static final int ORDER_STATUS_H5_CANCEL = 5;// 取消
+    // 退款状态
+    public static final int ORDER_STATUS_H5_NOT_REFUND = 0; //未退款
+    public static final int ORDER_STATUS_H5_REFUNDING = 1; // 申请中
+    public static final int ORDER_STATUS_H5_REFUNDED = 2; // 已退款
+    public static final int ORDER_STATUS_H5_REFUND = 3; // 退款中
+    // 拼团状态
+    public static final int ORDER_STATUS_H5_NOT_OPEN = -1; // 未开团
+    public static final int ORDER_STATUS_H5_OPEN_SUCCESS = 1;// 开团成功
+    public static final int ORDER_STATUS_H5_OPEN_FAIL = 2;// 开团失败
+    public static final int ORDER_STATUS_H5_WAIT_OPEN = 3;// 等待开团
 
 
     //订单操作redis队列
@@ -371,19 +312,6 @@ public class Constants {
     public static final String ORDER_TASK_REDIS_KEY_AFTER_CANCEL_BY_USER = "alterOrderCancelByUser"; // 用户取消订单后续操作
     public static final String ORDER_TASK_REDIS_KEY_AFTER_REFUND_BY_USER = "alterOrderRefundByUser"; // 用户订单退款后续操作
 
-    //支付方式
-    public static final String PAY_TYPE_WE_CHAT = "weixin"; //微信支付
-    public static final String PAY_TYPE_YUE = "yue"; //余额支付
-    public static final String PAY_TYPE_OFFLINE = "offline"; //线下支付
-    public static final String PAY_TYPE_ALI_PAY = "alipay"; //支付宝
-
-    //支付方式
-    public static final String PAY_TYPE_STR_WE_CHAT = "微信支付"; //微信支付
-    public static final String PAY_TYPE_STR_YUE = "余额支付"; //余额支付
-    public static final String PAY_TYPE_STR_OFFLINE = "线下支付"; //线下支付
-    public static final String PAY_TYPE_STR_ALI_PAY = "支付宝支付"; //支付宝
-    public static final String PAY_TYPE_STR_OTHER = "其他支付"; //其他支付
-
     //需要支付的业务类型
     public static final String SERVICE_PAY_TYPE_ORDER = "order"; //订单
     public static final String SERVICE_PAY_TYPE_RECHARGE = "recharge"; //充值

+ 18 - 2
mall-service/src/main/java/com/txz/mall/controller/OrderController.java

@@ -1,5 +1,6 @@
 package com.txz.mall.controller;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.txz.mall.business.OrderServiceBusiness;
@@ -14,6 +15,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import vo.MyRecord;
 import vo.StoreOrderCountItemVO;
 import vo.StoreOrderVO;
@@ -134,8 +136,8 @@ public class OrderController {
 
     @ApiOperation("导出订单")
     @PostMapping("/export")
-    public Result exportFile(HttpServletResponse response) {
-        storeOrderService.exportFile(response);
+    public Result exportFile(@RequestBody StoreOrderDTO dto, HttpServletResponse response) {
+        storeOrderService.exportFile(dto, response);
         return Result.success();
     }
 
@@ -198,4 +200,18 @@ public class OrderController {
         Boolean result = storeOrderService.goPay(dto);
         return Result.success(result);
     }
+
+    @ApiOperation("导出发货模版")
+    @PostMapping("/exportDelivery")
+    public Result exportDelivery(HttpServletResponse response) {
+        storeOrderService.exportDelivery(response);
+        return Result.success();
+    }
+
+    @ApiOperation("导入发货单")
+    @PostMapping("/importDelivery")
+    public Result importDelivery(@JSONField(serialize = false) @RequestParam("file") MultipartFile file) {
+        storeOrderService.importDelivery(file);
+        return Result.success();
+    }
 }

+ 6 - 0
mall-service/src/main/java/com/txz/mall/dubbo/client/CifAccountDubboServiceClient.java

@@ -81,6 +81,12 @@ public class CifAccountDubboServiceClient {
         return accountDubboService.accomplishGroup(param);
     }
 
+    /**
+     * 签到
+     *
+     * @param param
+     * @return
+     */
     public Result addRedEnvelope(SignRedEnvelopeParam param) {
         return accountDubboService.addRedEnvelope(param);
     }

+ 6 - 0
mall-service/src/main/java/com/txz/mall/model/Banner.java

@@ -1,5 +1,6 @@
 package com.txz.mall.model;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.persistence.*;
@@ -18,16 +19,19 @@ public class Banner {
     /**
      * 名称
      */
+    @ApiModelProperty(value = "名称")
     private String title;
 
     /**
      * 图片地址
      */
+    @ApiModelProperty(value = "图片地址")
     private String image;
 
     /**
      * 0-内链,1-外链
      */
+    @ApiModelProperty(value = "0-内链,1-外链")
     @Column(name = "link_type")
     private Integer linkType;
 
@@ -64,11 +68,13 @@ public class Banner {
     /**
      * 跳转地址
      */
+    @ApiModelProperty(value = "跳转地址")
     private String link;
 
     /**
      * 排序
      */
+    @ApiModelProperty(value = "排序")
     private Integer seq;
 
 }

+ 12 - 1
mall-service/src/main/java/com/txz/mall/service/StoreOrderService.java

@@ -3,6 +3,7 @@ package com.txz.mall.service;
 import com.txz.mall.core.Service;
 import com.txz.mall.model.StoreOrder;
 import dto.*;
+import org.springframework.web.multipart.MultipartFile;
 import vo.MyRecord;
 import vo.OrderRefundApplyVO;
 import vo.StoreOrderCountItemVO;
@@ -39,7 +40,7 @@ public interface StoreOrderService extends Service<StoreOrder> {
      *
      * @param response 响应
      */
-    void exportFile(HttpServletResponse response);
+    void exportFile(StoreOrderDTO dto, HttpServletResponse response);
 
     /**
      * 批量发货
@@ -133,4 +134,14 @@ public interface StoreOrderService extends Service<StoreOrder> {
      * @param id 订单编号
      */
     void cancel(Long id);
+
+    /**
+     * 导出发货模版
+     */
+    void exportDelivery(HttpServletResponse response);
+
+    /**
+     * 导入发货单
+     */
+    void importDelivery(MultipartFile file);
 }

+ 72 - 20
mall-service/src/main/java/com/txz/mall/service/impl/StoreOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.txz.mall.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.EasyExcel;
@@ -19,9 +20,9 @@ import com.txz.mall.core.ResultCode;
 import com.txz.mall.core.ServiceException;
 import com.txz.mall.dubbo.client.CifAccountDubboServiceClient;
 import com.txz.mall.dubbo.client.CifUserDubboServiceClient;
-import com.txz.mall.enums.OrderStatusEnum;
 import com.txz.mall.model.*;
 import com.txz.mall.service.*;
+import com.txz.mall.util.EasyExcelUtil;
 import com.txz.mall.util.OrderUtils;
 import dto.*;
 import lombok.AllArgsConstructor;
@@ -31,12 +32,15 @@ import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import po.OrderDeliveryPO;
 import po.StoreProductPO;
 import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example;
 import vo.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
@@ -71,13 +75,13 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         int type = 2;
         // 全部订单
 
-        response.setAll(getCount(OrderStatusEnum.ALL.getKey(), type));
-        // 未支付订单
-        response.setUnPaid(getCount(OrderStatusEnum.UNPAID.getKey(), type));
-        // 待发货订单
-        response.setNotShipped(getCount(OrderStatusEnum.WAIT_DELIVER.getKey(), type));
-        // 待收货订单
-        response.setSpike(getCount(OrderStatusEnum.WAIT_RECEIVER.getKey(), type));
+//        response.setAll(getCount(OrderStatusEnum.ALL.getKey(), type));
+//        // 未支付订单
+//        response.setUnPaid(getCount(OrderStatusEnum.UNPAID.getKey(), type));
+//        // 待发货订单
+//        response.setNotShipped(getCount(OrderStatusEnum.WAIT_DELIVER.getKey(), type));
+//        // 待收货订单
+//        response.setSpike(getCount(OrderStatusEnum.WAIT_RECEIVER.getKey(), type));
 //        // 待评价订单
 //        response.setBargain(getCount(Constants.ORDER_STATUS_BARGAIN, type));
 //        // 交易完成订单
@@ -237,7 +241,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
     }
 
     @Override
-    public void exportFile(HttpServletResponse response) {
+    public void exportFile(StoreOrderDTO dto, HttpServletResponse response) {
         OutputStream outputStream;
         try {
             outputStream = response.getOutputStream();
@@ -246,7 +250,12 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
             String fileName = URLEncoder.encode("导出订单", "UTF-8").replaceAll("\\+", "%20");
             response.setHeader(
                     "Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
-            List<StoreProductPO> list = new ArrayList<>();
+            List<StoreOrderVO> voList = orderList(dto);
+            List<StoreProductPO> list = voList.stream().map(vo -> {
+                StoreProductPO po = new StoreProductPO();
+                BeanUtils.copyProperties(vo, po);
+                return po;
+            }).collect(Collectors.toList());
             EasyExcel.write(outputStream, StoreProductPO.class).sheet("导出订单").doWrite(list);
         } catch (Exception e) {
             throw new ServiceException("模板下载失败, 请联系管理员");
@@ -1006,13 +1015,13 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
             return;
         }
         switch (status) {
-            case Constants.ORDER_STATUS_ALL:
-                break;
-            case Constants.ORDER_STATUS_UNPAID:
-                criteria.andEqualTo("paid", 0);
-                criteria.andEqualTo("status", 0);
-                criteria.andEqualTo("isDelete", 0);
-                break;
+//            case Constants.ORDER_STATUS_ALL:
+//                break;
+//            case Constants.ORDER_STATUS_UNPAID:
+//                criteria.andEqualTo("paid", 0);
+//                criteria.andEqualTo("status", 0);
+//                criteria.andEqualTo("isDelete", 0);
+//                break;
 //            case Constants.ORDER_STATUS_WAIT_DELIVER:
 //                criteria.andEqualTo("paid", 1);
 //                criteria.andEqualTo("status", 0);
@@ -1293,15 +1302,19 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
     @Override
     public void refund(Long id) {
         StoreOrder storeOrder = findById(id);
-        if (storeOrder.getPaid().equals(OrderStatusEnum.UNPAID.getKey())) {
+        if (storeOrder.getPaid().equals(Constants.ORDER_STATUS_H5_UNPAID)) {
             throw new ServiceException("当前状态不支持退款");
         }
+        storeOrder.setRefundStatus(1);
+        update(storeOrder);
+
+//        accountDubboServiceClient.refund(id.toString(), storeOrder.getOrderId(), storeOrder.getPayPrice());
     }
 
     @Override
     public void close(Long id) {
         StoreOrder storeOrder = findById(id);
-//        storeOrder.setStatus(OrderStatusEnum.CLOSE.getKey());
+        storeOrder.setStatus(Constants.ORDER_STATUS_H5_CLOSE);
 //        update(storeOrder);
     }
 
@@ -1309,13 +1322,52 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
     public void cancel(Long id) {
         StoreOrder storeOrder = findById(id);
         if (storeOrder.getPaid().equals(0)) {
-            storeOrder.setStatus(OrderStatusEnum.CANCEL.getKey());
+            storeOrder.setStatus(Constants.ORDER_STATUS_H5_CANCEL);
             update(storeOrder);
         } else {
             throw new ServiceException("当前状态不支持取消");
         }
     }
 
+    @Override
+    public void exportDelivery(HttpServletResponse response) {
+        OutputStream outputStream;
+        try {
+            outputStream = response.getOutputStream();
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            String fileName = URLEncoder.encode("导出订单", "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader(
+                    "Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            ArrayList<OrderDeliveryPO> list = new ArrayList<>();
+            EasyExcel.write(outputStream, OrderDeliveryPO.class).sheet("导出发货模版").doWrite(list);
+        } catch (Exception e) {
+            throw new ServiceException("模板下载失败, 请联系管理员");
+        }
+    }
+
+    @Override
+    public void importDelivery(MultipartFile file) {
+        String name = file.getOriginalFilename();
+        String suffix = FileUtil.extName(name);
+        log.info("获取到的文件名为----->{},后缀为----->{},入参------->{}", name, suffix);
+        if ("xlsx".equals(suffix) || "xls".equals(suffix)) {
+            throw new ServiceException("请传入xlsx或xls文档格式文件");
+        }
+        try {
+            List<OrderDeliveryPO> list = EasyExcelUtil.syncReadModel(file.getInputStream(),
+                    OrderDeliveryPO.class,
+                    0,
+                    1);
+
+            if (CollUtil.isEmpty(list)) {
+                throw new ServiceException("请填写内容后再提交!");
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     /**
      * 校验商品库存(生成订单)
      *

+ 23 - 0
mall-service/src/main/java/po/OrderDeliveryPO.java

@@ -0,0 +1,23 @@
+package po;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class OrderDeliveryPO {
+
+
+    @ApiModelProperty("订单号")
+    @ExcelProperty("订单号")
+    private String orderNo;
+
+    @ApiModelProperty("配送方式")
+    @ExcelProperty("配送方式")
+    private String deliveryType;
+
+    @ApiModelProperty("配送单号")
+    @ExcelProperty("配送单号")
+    private String deliveryId;
+
+}