Преглед изворни кода

fix 导出发布车票列表

zoujiajian пре 2 година
родитељ
комит
39c301b55a

+ 129 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelGroupRelationData.java

@@ -0,0 +1,129 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.cyksj.model.entity.GroupsTrips;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: yhlxj
+ *文件名: ExcelGroupRelationData
+ *创建者: JavaZou
+ *创建时间:2023/9/12 18:01
+ */
+@Getter
+@Setter
+@SearchBean(tables = "groups_trips gt left join goods_don_sku sku on gt.sku_id = sku.id " +
+		"left join goods_don g on g.id = sku.goods_id " +
+		"left join account a on a.id = gt.account_id ")
+public class ExcelGroupRelationData {
+
+	@DbField("gt.id")
+	@ExcelIgnore
+	private Long groupId;
+
+	/**
+	 * 商品skuId
+	 */
+	@DbField("gt.sku_id")
+	@ExcelIgnore
+	private Long skuId;
+
+	/**
+	 * 账号id
+	 */
+	@DbField("gt.account_id")
+	@ExcelIgnore
+	private Long accountId;
+
+	/**
+	 * 账号
+	 */
+	@DbField("a.account")
+	@ExcelProperty("账号")
+	private String account;
+
+	/**
+	 * 密码
+	 */
+	@DbField("a.password")
+	@ExcelProperty("密码")
+	private String password;
+
+	/**
+	 * 商品id
+	 */
+	@DbField("g.id")
+	@ExcelIgnore
+	private Long goodsId;
+
+	/**
+	 * 标题
+	 */
+	@DbField("g.title")
+	@ExcelProperty("平台")
+	private String title;
+
+	/**
+	 * 商品规格
+	 */
+	@DbField("sku.spec_val")
+	@ExcelProperty("规格")
+	private String specVal;
+
+	/**
+	 * 车位数量
+	 */
+	@DbField("gt.num")
+	@ExcelProperty("车位数量")
+	private Integer num;
+
+	/**
+	 * 可用车位数
+	 */
+	@DbField("gt.available_num")
+	@ExcelProperty("剩余车位")
+	private Integer availableNum;
+
+	/**
+	 * 状态
+	 */
+	@DbField("gt.status")
+	@ExcelIgnore
+	private GroupsTrips.Status status;
+
+	/**
+	 * 状态
+	 */
+	@DbIgnore
+	@ExcelProperty("状态")
+	private String cnStatus;
+
+	@DbField("a.expiry_time")
+	@ExcelProperty("过期时间")
+	private Date expiryTime;
+
+	/**
+	 * 创建时间
+	 */
+	@DbField("gt.created_time")
+	@ExcelProperty("创建时间")
+	private Date createdTime;
+
+	/**
+	 * 更新时间
+	 */
+	@DbField("gt.update_time")
+	@ExcelIgnore
+	private Date updateTime;
+
+	public String getCnStatus() {
+		return status.getDesc();
+	}
+}

+ 32 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/group/CmsGroupController.java

@@ -7,6 +7,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONObject;
+import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.Log;
 import com.cyksj.common.annotation.Log;
 import com.cyksj.common.annotation.NoSubmit;
 import com.cyksj.common.annotation.NoSubmit;
@@ -20,6 +21,7 @@ import com.cyksj.mapper.UserMapper;
 import com.cyksj.model.entity.Account;
 import com.cyksj.model.entity.Account;
 import com.cyksj.model.entity.GroupsTrips;
 import com.cyksj.model.entity.GroupsTrips;
 import com.cyksj.model.entity.GroupsTripsAccountReplaceRecord;
 import com.cyksj.model.entity.GroupsTripsAccountReplaceRecord;
+import com.cyksj.model.excel.ExcelGroupRelationData;
 import com.cyksj.model.request.AccountGroupsReq;
 import com.cyksj.model.request.AccountGroupsReq;
 import com.cyksj.model.request.ReplaceTripsAccountReq;
 import com.cyksj.model.request.ReplaceTripsAccountReq;
 import com.cyksj.model.views.CloseGroupsTripsView;
 import com.cyksj.model.views.CloseGroupsTripsView;
@@ -28,6 +30,7 @@ import com.cyksj.model.views.GroupsTripsWaitingView;
 import com.cyksj.service.mange.AccountCommonService;
 import com.cyksj.service.mange.AccountCommonService;
 import com.cyksj.service.mange.CmsAccountService;
 import com.cyksj.service.mange.CmsAccountService;
 import com.cyksj.service.mange.CmsGroupService;
 import com.cyksj.service.mange.CmsGroupService;
+import com.cyksj.web.util.EasyExcelUtils;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.param.Operator;
@@ -40,6 +43,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
 
 
@@ -93,6 +97,34 @@ public class CmsGroupController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }
     }
 
 
+    /**
+     * 导出车票列表
+     */
+    @GetMapping("/export")
+    public void export(String account, Long userId, String showId, String nickName, String submitAccount, Boolean isEmpty, HttpServletResponse response) {
+        MapBuilder mapBuilder = MapUtils.flatBuilder(request.getParameterMap());
+        if (StrUtil.isNotBlank(showId)) {
+            userId = userMapper.getUserIdByShowId(showId);
+        }
+        if (userId != null || StringUtils.isNotBlank(nickName) || StringUtils.isNotBlank(submitAccount)) {
+            List<Long> ids = relationMapper.getAccountIdsByUserIdOrNickNameOrSubmitAccount(userId, nickName, submitAccount);
+            if (ids.isEmpty()) {
+                throw BusinessRuntimeException.getInstance("暂无数据..");
+            }
+
+            mapBuilder.field(ExcelGroupRelationData::getGroupId, ids).op(Operator.InList);
+        }
+        if (isEmpty != null && isEmpty) {
+            mapBuilder.field(ExcelGroupRelationData::getNum, ExcelGroupRelationData::getAvailableNum).sql("$1 = $2");
+        }
+
+        List<ExcelGroupRelationData> list = beanSearcher.searchAll(ExcelGroupRelationData.class, mapBuilder
+                .field(ExcelGroupRelationData::getAccount, StringUtils.isBlank(account) ? null : account).op(Operator.EndWith)
+                .build()
+        );
+        EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelGroupRelationData.class, list, "发布车票列表", "发布车票列表", ExcelTypeEnum.XLSX, null);
+    }
+
     /**
     /**
      * 各平台待发车详情
      * 各平台待发车详情
      */
      */