Ver código fonte

导出 代充操作数据

zoujiajian 9 meses atrás
pai
commit
660ce9161f

+ 52 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelGptRechargeStatisticsData.java

@@ -0,0 +1,52 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: ExcelGptRechargeStatisticsData
+ * 创建者: JavaZou
+ * 创建时间:2025/11/20 10:29
+ */
+@Getter
+@Setter
+@ExcelIgnoreUnannotated
+@SearchBean(tables = "gpt_user_recharge_num_record gur left join order_don o on o.user_id = gur.user_id and o.relation_id = gur.relation_id" +
+		" left join goods_don_sku sku on sku.id = o.sku_id" +
+		" left join goods_don g on g.id = sku.goods_id",
+		where = "gur.num < 0 and gur.operator != ''")
+public class ExcelGptRechargeStatisticsData {
+	@DbField("o.order_no")
+	@ExcelProperty("订单号")
+	private String orderNo;
+
+	@DbField("o.goods_id")
+	private Long goodsId;
+
+	@DbField("g.title")
+	@ExcelProperty("平台")
+	private String title;
+
+	@DbField("sku.spec_val")
+	@ExcelProperty("规格")
+	private String specVal;
+
+	@DbField("gur.operator")
+	@ExcelProperty("操作人")
+	private String operator;
+
+	@DbField("gur.remark")
+	@ExcelProperty("备注")
+	private String remark;
+
+	@DbField("gur.created_time")
+	@ExcelProperty("操作时间")
+	private Date createdTime;
+}

+ 2 - 4
netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml

@@ -480,14 +480,12 @@
     </select>
 
     <select id="selectRechargeRecordNum" resultType="com.cyksj.model.response.GptRechargeStatisticsRecordResp">
-        select gur.operator,count(1) as num from gpt_user_recharge_num_record gur left join groups_relation gr on gr.id = gur.relation_id
-        left join groups_trips gt on gt.id = gr.groups_id
-        left join goods_don_sku sku on sku.id = gt.sku_id
+        select gur.operator,count(1) as num from gpt_user_recharge_num_record gur left join order_don o on o.user_id = gur.user_id and o.relation_id = gur.relation_id
         where gur.num &lt; 0
         and gur.operator != ''
         and gur.created_time between #{start} and #{end}
         <if test="goodsIds != null">
-            and sku.goods_id in
+            and o.goods_id in
             <foreach collection="goodsIds" item="item" open="(" separator="," close=")">
                 #{item}
           </foreach>

+ 28 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/group/CmsGroupRelationController.java

@@ -19,6 +19,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.model.entity.*;
+import com.cyksj.model.excel.ExcelGptRechargeStatisticsData;
 import com.cyksj.model.excel.ExcelRechargeAccountData;
 import com.cyksj.model.manage.views.AccountView;
 import com.cyksj.model.manage.views.GroupsRelationBackView;
@@ -414,6 +415,33 @@ public class CmsGroupRelationController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(recordResps);
     }
 
+    /**
+     * 导出 代充操作数据
+     */
+    @GetMapping("/export/recharge/operate/statistics/data")
+    public void exportRechargeStatisticsData(@RequestParam(name = "goodsIds", required = false) List<Long> goodsIds, String startTime, String endTime, String operator, HttpServletResponse response) {
+        if (StrUtil.isEmpty(startTime)) {
+            startTime = DateUtil.beginOfMonth(DateTime.now()).toString();
+            endTime = DateUtil.endOfMonth(DateTime.now()).toString();
+        }
+        List<CmsUserVO> customers = beanSearcher.searchAll(CmsUserVO.class, MapUtils.builder()
+                .field(CmsUserVO::getRoleNames, List.of("客服", "root", "售后客服")).op(Operator.InList)
+                .field(CmsUserVO::getStatus, Boolean.TRUE)
+                .build());
+        List<String> showUsers = customers.stream().map(CmsUserVO::getNickname).collect(Collectors.toList());
+        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+        if (StrUtil.isNotBlank(operator)) {
+            builder.field(ExcelGptRechargeStatisticsData::getOperator, operator);
+        } else {
+            builder.field(ExcelGptRechargeStatisticsData::getOperator, showUsers).op(Operator.InList);
+        }
+        if (CollUtil.isNotEmpty(goodsIds)) {
+            builder.field(ExcelGptRechargeStatisticsData::getGoodsId, goodsIds).op(Operator.InList);
+        }
+        List<ExcelGptRechargeStatisticsData> list = beanSearcher.searchAll(ExcelGptRechargeStatisticsData.class, builder.field(ExcelGptRechargeStatisticsData::getCreatedTime, startTime, endTime).op(Operator.Between).build());
+        EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelGptRechargeStatisticsData.class, list, "代充操作统计数据", "代充操作统计数据", ExcelTypeEnum.XLSX, null);
+    }
+
     /**
      * 编辑代充备注
      */