Przeglądaj źródła

商品回收订单导出

cup 2 lat temu
rodzic
commit
06cd9a855b

+ 55 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/UserPrizeRecoveryMgrController.java

@@ -2,16 +2,23 @@ package com.qs.mp.web.controller.api.admin;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.admin.domain.PrizeRecovery;
+import com.qs.mp.admin.domain.excel.PrizeRecoveryExcel;
 import com.qs.mp.admin.domain.param.PrizeRecoveryListQueryParam;
 import com.qs.mp.admin.domain.vo.PrizeRecoveryListVO;
 import com.qs.mp.admin.service.IPrizeRecoveryService;
+import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.utils.StringUtils;
+import com.qs.mp.user.domain.excel.DeliverOrderExcel;
+import com.qs.mp.user.domain.vo.UserDeliverOrderItemVO;
+import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
+import com.qs.mp.utils.ExcelUtil;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -19,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
@@ -60,4 +68,51 @@ public class UserPrizeRecoveryMgrController extends BaseApiController {
 
         return getDataTable(list);
     }
+
+    @PostMapping("/export")
+    @PreAuthorize("@ss.hasPermi('business:recovery:export')")
+    @ApiOperation("回收订单列表导出")
+    public AjaxResult export(@RequestBody PrizeRecoveryListQueryParam prizeRecoveryListQueryParam) {
+        QueryWrapper<PrizeRecovery> queryWrapper = new QueryWrapper<>();
+        if (StringUtils.isNotBlank(prizeRecoveryListQueryParam.getTitle())) {
+            queryWrapper.like("t1.title",prizeRecoveryListQueryParam.getTitle());
+        }
+        if (StringUtils.isNotBlank(prizeRecoveryListQueryParam.getUserPhone())) {
+            queryWrapper.eq("t2.phonenumber", prizeRecoveryListQueryParam.getUserPhone());
+        }
+        if (Objects.nonNull(prizeRecoveryListQueryParam.getStartTime()) && Objects.nonNull(prizeRecoveryListQueryParam.getEndTime())) {
+            queryWrapper.between("t1.created_time", prizeRecoveryListQueryParam.getStartTime(), prizeRecoveryListQueryParam.getEndTime());
+        }
+        queryWrapper.orderByDesc("t1.created_time");
+        int totalSize =  prizeRecoveryService.countByWrapper(queryWrapper);
+        if (totalSize == 0) {
+            return AjaxResult.error("没有符合条件的用户提货订单");
+        }
+
+        List<PrizeRecoveryExcel> excelList = new ArrayList<>();
+        List<PrizeRecoveryListVO> listAll = new ArrayList<>();
+
+        int pageSize = 2000;
+        if (totalSize > pageSize) {
+            int totalPage = totalSize % pageSize == 0 ? totalSize / pageSize : totalSize / pageSize + 1;
+            for (int i = 0; i < totalPage; i++) {
+                queryWrapper.last("limit " + (i * pageSize) + ", " + pageSize);
+                List<PrizeRecoveryListVO> prizeRecoveryListVOS = prizeRecoveryService.listByWrapper(queryWrapper);
+                if (null != prizeRecoveryListVOS && prizeRecoveryListVOS.size() > 0) {
+                    listAll.addAll(prizeRecoveryListVOS);
+                }
+            }
+        } else {
+            listAll = prizeRecoveryService.listByWrapper(queryWrapper);
+        }
+        for (PrizeRecoveryListVO prizeRecoveryListVO : listAll) {
+            PrizeRecoveryExcel prizeRecoveryExcel = new PrizeRecoveryExcel();
+            BeanUtils.copyProperties(prizeRecoveryListVO, prizeRecoveryExcel);
+            excelList.add(prizeRecoveryExcel);
+        }
+
+        ExcelUtil<PrizeRecoveryExcel> util = new ExcelUtil<>(PrizeRecoveryExcel.class);
+        return util.exportExcel(excelList, "商品回收订单导出", false);
+    }
+
 }

+ 10 - 9
mp-service/src/main/java/com/qs/mp/admin/domain/excel/PrizeRecoveryExcel.java

@@ -1,6 +1,7 @@
 package com.qs.mp.admin.domain.excel;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.qs.mp.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -16,31 +17,31 @@ import java.util.Date;
 @Data
 public class PrizeRecoveryExcel {
 
-    @ApiModelProperty("回收时间")
+    @Excel(name = "回收时间")
     private Date createdTime;
 
-    @ApiModelProperty("商品名称")
+    @Excel(name = "商品名称")
     private String title;
 
-    @ApiModelProperty("商品sku")
+    @Excel(name = "商品sku")
     private String properties;
 
-    @ApiModelProperty("商品单价(盲豆)")
+    @Excel(name = "商品单价(盲豆)")
     private Integer exchangePrice;
 
-    @ApiModelProperty("数量")
+    @Excel(name = "数量")
     private Integer num;
 
-    @ApiModelProperty("回收折扣(%)")
+    @Excel(name = "回收折扣(%)")
     private BigDecimal discountRate;
 
-    @ApiModelProperty("返还盲豆数")
+    @Excel(name = "返还盲豆数")
     private Integer refundCoin;
 
-    @ApiModelProperty("用户昵称")
+    @Excel(name = "用户昵称")
     private String nickName;
 
-    @ApiModelProperty("用户手机号")
+    @Excel(name = "用户手机号")
     private String userPhone;
 
 

+ 7 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/PrizeRecoveryMapper.java

@@ -24,4 +24,11 @@ public interface PrizeRecoveryMapper extends BaseMapper<PrizeRecovery> {
      */
     List<PrizeRecoveryListVO> listByWrapper(@Param(Constants.WRAPPER) QueryWrapper<PrizeRecovery> queryWrapper);
 
+    /**
+     * 根据条件统计回收列表信息总数
+     * @param queryWrapper
+     * @return
+     */
+    int countByWrapper(@Param(Constants.WRAPPER) QueryWrapper<PrizeRecovery> queryWrapper);
+
 }

+ 7 - 0
mp-service/src/main/java/com/qs/mp/admin/service/IPrizeRecoveryService.java

@@ -34,4 +34,11 @@ public interface IPrizeRecoveryService extends IService<PrizeRecovery> {
      */
     List<PrizeRecoveryListVO> listByWrapper(QueryWrapper<PrizeRecovery> queryWrapper);
 
+    /**
+     * 根据条件统计回收列表信息总数
+     * @param queryWrapper
+     * @return
+     */
+    int countByWrapper(QueryWrapper<PrizeRecovery> queryWrapper);
+
 }

+ 4 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/PrizeRecoveryServiceImpl.java

@@ -48,6 +48,10 @@ public class PrizeRecoveryServiceImpl extends ServiceImpl<PrizeRecoveryMapper, P
     @Autowired
     private IUserCoinService userCoinService;
 
+    @Override
+    public int countByWrapper(QueryWrapper<PrizeRecovery> queryWrapper) {
+        return this.baseMapper.countByWrapper(queryWrapper);
+    }
 
     @Override
     public List<PrizeRecoveryListVO> listByWrapper(QueryWrapper<PrizeRecovery> queryWrapper) {

+ 7 - 0
mp-service/src/main/resources/mapper/admin/PrizeRecoveryMapper.xml

@@ -33,4 +33,11 @@
         left join sys_user t2 on t1.user_id = t2.user_id;
         ${ew.customSqlSegment}
     </select>
+
+    <select id="countByWrapper" resultType="int">
+        select count(*)
+        from mp_prize_recovery t1
+        left join sys_user t2 on t1.user_id = t2.user_id;
+        ${ew.customSqlSegment}
+    </select>
 </mapper>