wuweihao 3 лет назад
Родитель
Сommit
2b094159ae

+ 8 - 9
gis_cms/src/main/java/com/gis/cms/controller/DonateController.java

@@ -1,9 +1,9 @@
 package com.gis.cms.controller;
 
-import com.gis.cms.entity.dto.DonateDto;
 import com.gis.cms.entity.po.DonateEntity;
 import com.gis.cms.service.DonateService;
 import com.gis.common.base.aop.WebControllerLog;
+import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.util.Result;
 import io.swagger.annotations.Api;
@@ -12,13 +12,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
 
 /**
  * Created by owen on 2021/6/24 0008 9:54
  */
 @Slf4j
-@Api(tags = "捐赠管理")
+@Api(tags = "v0.1-捐赠管理")
 @RestController
 @RequestMapping("cms/donate")
 public class DonateController {
@@ -34,12 +33,12 @@ public class DonateController {
         return entityService.search(param, null);
     }
 
-//    @WebControllerLog(description = "捐赠管理-新增/编辑", addDb = true)
-//    @ApiOperation(value = "新增/编辑")
-//    @PostMapping("save")
-//    public Result save(@Valid @RequestBody DonateDto param) {
-//        return entityService.saveEntity(param);
-//    }
+    @WebControllerLog(description = "弹幕管理-导出Excel", addDb = true)
+    @ApiOperation("v0.1-导出Excel")
+    @PostMapping("exportExcel")
+    public Result exportExcel(@RequestBody DateDto param) {
+        return entityService.exportExcel(param);
+    }
 
 
     @WebControllerLog(description = "捐赠管理-删除", addDb = true)

+ 28 - 0
gis_cms/src/main/java/com/gis/cms/entity/vo/DonateVoExcel.java

@@ -0,0 +1,28 @@
+package com.gis.cms.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * Created by owen on 2022/2/17.
+ *
+ */
+@Data
+public class DonateVoExcel {
+
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "提交时间")
+    private String createTime;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+    @ApiModelProperty(value = "描述")
+    private String description;
+
+
+}

+ 9 - 0
gis_cms/src/main/java/com/gis/cms/mapper/DonateMapper.java

@@ -1,15 +1,24 @@
 package com.gis.cms.mapper;
 
 
+import com.gis.cms.entity.vo.BarrageVoExcel;
+import com.gis.cms.entity.vo.DonateVoExcel;
+import com.gis.cms.mapper.provider.BaseProvider;
 import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.cms.entity.po.DonateEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.SelectProvider;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 
 @Component
 @Mapper
 public interface DonateMapper extends IBaseMapper<DonateEntity, Long> {
 
+    @SelectProvider(type = BaseProvider.class, method = "selectSql")
+    List<DonateVoExcel> expertSql(String sqlStr);
+
 
 }

+ 3 - 0
gis_cms/src/main/java/com/gis/cms/service/DonateService.java

@@ -3,6 +3,7 @@ package com.gis.cms.service;
 
 import com.gis.cms.entity.dto.DonateDto;
 import com.gis.cms.entity.po.DonateEntity;
+import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
@@ -23,6 +24,8 @@ public interface DonateService extends IBaseService<DonateEntity, Long> {
 
     Result<DonateEntity> search(PageDateDto param, Integer display);
 
+    Result exportExcel(DateDto param);
+
 
 
 

+ 54 - 0
gis_cms/src/main/java/com/gis/cms/service/impl/DonateServiceImpl.java

@@ -2,14 +2,21 @@ package com.gis.cms.service.impl;
 
 import com.gis.cms.entity.dto.DonateDto;
 import com.gis.cms.entity.po.DonateEntity;
+import com.gis.cms.entity.vo.BarrageVoExcel;
+import com.gis.cms.entity.vo.DonateVoExcel;
 import com.gis.cms.mapper.DonateMapper;
+import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.exception.BaseRuntimeException;
 import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.common.base.service.impl.IBaseServiceImpl;
+import com.gis.common.util.ExcelUtils;
+import com.gis.common.util.MyStrUtil;
 import com.gis.common.util.Result;
 import com.gis.cms.service.FileService;
 import com.gis.cms.service.DonateService;
 import com.github.pagehelper.PageInfo;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -18,6 +25,8 @@ import org.springframework.stereotype.Service;
 import tk.mybatis.mapper.entity.Condition;
 
 import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
 
 
 /**
@@ -38,6 +47,51 @@ public class DonateServiceImpl extends IBaseServiceImpl<DonateEntity, Long> impl
         return this.entityMapper;
     }
 
+
+    @Override
+    public Result exportExcel(DateDto param) {
+        List<DonateVoExcel> rows = findByDate(param);
+
+        // 保存地址
+        String filePath = "/excel/" + MyStrUtil.getTimeStr() + ".xlsx";
+        String savePath = configConstant.serverBasePath + filePath;
+
+
+        HashMap<String, String> rowTitle = new HashMap<>();
+        rowTitle.put("createTime", "提交时间");
+        rowTitle.put("name", "名称");
+        rowTitle.put("phone", "电话");
+        rowTitle.put("description", "描述");
+
+        ExcelUtils.createExcel(rows, savePath, rowTitle);
+        HashMap<String, Object> result = new HashMap<>();
+        result.put("size", rows.size());
+        result.put("path", filePath);
+
+
+        return Result.success(result);
+    }
+
+
+    private List<DonateVoExcel> findByDate(DateDto param){
+
+        String startTime = param.getStartTime();
+        String endTime = param.getEndTime();
+        if (StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)){
+            throw new BaseRuntimeException("日期不能为空");
+        }
+
+        StringBuffer sql = new StringBuffer();
+        sql.append("select * from tb_donate where is_delete=0 ");
+        sql.append(" and create_time >= ").append("'").append(startTime).append("'");
+        sql.append(" and create_time <= ").append("'").append(endTime).append("'");
+        sql.append(" order by create_time desc");
+        String sqlStr = sql.toString();
+        log.info("sql: {}", sqlStr);
+        return entityMapper.expertSql(sqlStr);
+
+    }
+
     @Override
     public Result<DonateEntity> search(PageDateDto param, Integer display) {
         startPage(param);