Jelajahi Sumber

增加预约用户查询条件
增加预约用户的导出

hgw 3 tahun lalu
induk
melakukan
5c299c17c8

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java

@@ -41,6 +41,8 @@ public interface ImLiveBroadcastRoomDao extends BaseMapper<ImLiveBroadcastRoom>
     IPage<RoomReservationUserVo> queryRoomUser(@Param("page") IPage<RoomReservationUserVo> page,
                                                @Param("query") RoomReservationUserSearch query);
 
+    List<RoomReservationUserVo> queryRoomUser(@Param("query") RoomReservationUserSearch query);
+
     String querySchoolIds(@Param("organIds") String organIds);
 
     String queryTeamIds(@Param("organIds") String organIds);

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java

@@ -12,6 +12,8 @@ import com.ym.mec.biz.dal.vo.RoomReservationUserVo;
 import com.ym.mec.common.entity.ImUserState;
 import com.ym.mec.common.page.PageInfo;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -96,6 +98,15 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
      * @return
      */
     PageInfo<RoomReservationUserVo> queryRoomUser(RoomReservationUserSearch query);
+
+    /**
+     * 导出直播间预约用户信息
+     *
+     * @param query
+     * @param response
+     */
+    void exportReservationRoomUser(RoomReservationUserSearch query, HttpServletResponse response) throws IOException;
+
     //查询直播间商品订单列表
     PageInfo<LiveRoomGoodsOrderVo> queryLiveRoomGoodsOrderList(LiveRoomGoodsOrderQueryInfo queryInfo);
 }

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -31,9 +31,11 @@ import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
 import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.redisson.api.RBucket;
 import org.redisson.api.RLock;
 import org.redisson.api.RMap;
@@ -45,6 +47,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
 import java.io.Serializable;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
@@ -1264,6 +1269,42 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         return PageUtil.pageInfo(page);
     }
 
+    /**
+     * 导出直播间预约用户信息
+     *
+     * @param query
+     * @param response
+     */
+    public void exportReservationRoomUser(RoomReservationUserSearch query, HttpServletResponse response) throws IOException {
+        //训练营详情-查询条件时间设置
+        List<RoomReservationUserVo> list = baseMapper.queryRoomUser(query);
+        OutputStream outputStream = response.getOutputStream();
+        HSSFWorkbook workbook = null;
+        try {
+            String[] header = {"编号", "姓名", "手机号", "分部", "声部"};
+            String[] body = {"userId", "username", "phone", "organName", "subjectName"};
+            workbook = POIUtil.exportExcel(header, body, list);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+            workbook.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    workbook.close();
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
     @Override
     public PageInfo<LiveRoomGoodsOrderVo> queryLiveRoomGoodsOrderList(LiveRoomGoodsOrderQueryInfo queryInfo) {
         PageInfo<LiveRoomGoodsOrderVo> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());

+ 6 - 1
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml

@@ -197,7 +197,6 @@
     </select>
 
     <select id="queryRoomUser" resultType="com.ym.mec.biz.dal.vo.RoomReservationUserVo">
-
         select
         su.id_ as userId
         ,su.username_ as username
@@ -216,6 +215,12 @@
             or su.phone_ like concat('%',#{query.search},'%')
             or su.username_ like concat('%',#{query.search},'%'))
         </if>
+        <if test="query.subjectId != null">
+            and find_in_set(#{query.subjectId},s.subject_id_list_)
+        </if>
+        <if test="query.organId != null">
+            and su.organ_id_ = #{query.organId}
+        </if>
     </select>
 
     <select id="querySchoolIds" resultType="string">

+ 20 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java

@@ -18,7 +18,9 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
@@ -54,13 +56,30 @@ public class ImLiveBroadcastRoomController extends BaseController {
         return succeed(imLiveBroadcastRoomService.queryPage(param));
     }
 
-
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "模糊查询关键字"),
+            @ApiImplicitParam(name = "subjectId", dataType = "Integer", value = "声部id"),
+            @ApiImplicitParam(name = "organId", dataType = "Integer", value = "分部id"),
+            @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
+    })
     @ApiOperation("直播间预约人员信息")
     @PostMapping("/query/roomUser")
     public HttpResponseResult<PageInfo<RoomReservationUserVo>> queryRoomUser(@RequestBody @Valid RoomReservationUserSearch query) {
         return succeed(imLiveBroadcastRoomService.queryRoomUser(query));
     }
 
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "模糊查询关键字"),
+            @ApiImplicitParam(name = "subjectId", dataType = "Integer", value = "声部id"),
+            @ApiImplicitParam(name = "organId", dataType = "Integer", value = "分部id"),
+    })
+    @ApiOperation(value = "导出训练营详情")
+    @PostMapping(value = "/exportReservationRoomUser")
+    public void exportReservationRoomUser(@RequestBody RoomReservationUserSearch query, HttpServletResponse response) throws IOException {
+        imLiveBroadcastRoomService.exportReservationRoomUser(query, response);
+    }
+
     @ApiOperation("查询房间信息并校验房间是否合规")
     @GetMapping("/queryRoom")
     public HttpResponseResult<ImLiveBroadcastRoomVo> queryRoomAndCheck(@ApiParam(value = "房间uid", required = true) String roomUid,