jiangping
2024-05-11 5adc2541559cfefe3f9794d4a42a705b1ce83172
最新版本
已修改13个文件
70 ■■■■■ 文件已修改
server/meeting/meeting_admin/src/main/java/com/doumee/MeetingAdminApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/api/business/BookingsController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/api/common/HomeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsCloudController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/ProjectsCloudController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomsServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/model/LoginUserModel.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/MeetingAdminApplication.java
@@ -16,8 +16,8 @@
@Slf4j
@EnableAsync
@SpringBootApplication
@MapperScan("com.doumee.dao.*")
@EnableDiscoveryClient
@MapperScan("com.doumee.dao")
public class MeetingAdminApplication {
    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(MeetingAdminApplication.class);
server/meeting/meeting_admin/src/main/java/com/doumee/api/business/BookingsController.java
@@ -66,7 +66,7 @@
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:bookings:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        bookingsService.deleteById(id);
        bookingsService.deleteById(id,this.getLoginUser(null));
        return ApiResponse.success(null);
    }
@@ -79,7 +79,7 @@
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        bookingsService.deleteByIdInBatch(idList);
        bookingsService.deleteByIdInBatch(idList,this.getLoginUser(null));
        return ApiResponse.success(null);
    }
server/meeting/meeting_admin/src/main/java/com/doumee/api/common/HomeController.java
@@ -83,7 +83,7 @@
        bq2.eq(Bookings::getStatus, Constants.ZERO);
        bq2.apply("DATE_FORMAT(t.START_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d') " );
       // bq2.last("limit 1");
        bq2.select("(select count(u.id) from user_rel u where u.ISDELETED=0 and u.OBJ_ID=t.id)as bookingUser");
        bq2.select("(select count(u.id) from meeting_user_rel u where u.ISDELETED=0 and u.OBJ_ID=t.id)as bookingUser");
        List<Bookings> bk2= bookingsJoinMapper.selectJoinList(Bookings.class,bq2);
        Integer bookingUser=0;
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsCloudController.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
@@ -23,7 +24,6 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -54,7 +54,7 @@
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:bookings:create")
    @CloudRequiredPermission("business:bookings:create")
    public ApiResponse create(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        LoginUserInfo user = getLoginUser(token);
        bookings.setLoginUserInfo(user);
@@ -64,7 +64,7 @@
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:bookings:delete")
    @CloudRequiredPermission("business:bookings:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        bookingsService.deleteById(id,this.getLoginUser(token));
        return ApiResponse.success(null);
@@ -72,7 +72,7 @@
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:bookings:delete")
    @CloudRequiredPermission("business:bookings:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
@@ -85,7 +85,7 @@
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:bookings:update")
    @CloudRequiredPermission("business:bookings:update")
    public ApiResponse updateById(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        LoginUserInfo user = getLoginUser(token);
        bookings.setLoginUserInfo(user);
@@ -96,21 +96,21 @@
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:bookings:query")
    @CloudRequiredPermission("business:bookings:query")
    public ApiResponse<PageData<Bookings>> findPage (@RequestBody PageWrap<Bookings> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(bookingsService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:bookings:exportExcel")
    @CloudRequiredPermission("business:bookings:exportExcel")
    public void exportExcel (@RequestBody PageWrap<Bookings> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        ExcelExporter.build(Bookings.class).export(bookingsService.findPage(pageWrap).getRecords(), "会议室预定信息表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:bookings:query")
    @CloudRequiredPermission("business:bookings:query")
    public ApiResponse<MeetingDetailResponse> findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(bookingsService.getMeetingDetail(id));
    }
@@ -118,7 +118,7 @@
    @ApiOperation("取消")
    @PostMapping("/cancelById")
    @RequiresPermissions("business:bookings:update")
    @CloudRequiredPermission("business:bookings:update")
    public ApiResponse cancelById(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        bookings.setLoginUserInfo(this.getLoginUser(token));
        bookingsService.cancelById(bookings);
@@ -127,21 +127,21 @@
    @ApiOperation("会议室使用时长统计")
    @GetMapping("/getRoomStatistics")
    @RequiresPermissions("business:bookings:update")
    @CloudRequiredPermission("business:bookings:update")
    public ApiResponse<List<RoomStatisticsVo>> getRoomStatistics(@RequestParam Integer yearNum, @RequestParam Integer roomId){
        return ApiResponse.success(bookingsService.getRoomStatistics(yearNum));
    }
    @ApiOperation("人员参加会议时常")
    @PostMapping("/getUserStatistics")
    @RequiresPermissions("business:bookings:update")
    @CloudRequiredPermission("business:bookings:update")
    public ApiResponse<PageData<UserStatisticsVo>> getUserStatistics(@RequestBody PageWrap<UserStatisticsDTO> pageWrap ){
        return ApiResponse.success(bookingsService.getUserStatistics(pageWrap));
    }
    @ApiOperation("人员参会时长统计导出Excel")
    @PostMapping("/exportUserStatistics")
    @RequiresPermissions("business:bookings:exportExcel")
    @CloudRequiredPermission("business:bookings:exportExcel")
    public void exportUserStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        List<UserStatisticsVo> records = bookingsService.getUserStatistics(pageWrap).getRecords();
@@ -165,7 +165,7 @@
    @ApiOperation("会议室使用时长统计导出Excel")
    @PostMapping("/exportRoomStatistics")
    @RequiresPermissions("business:bookings:exportExcel")
    @CloudRequiredPermission("business:bookings:exportExcel")
    public void exportRoomStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        List<RoomStatisticsVo> roomStatistics = bookingsService.getRoomStatistics(pageWrap.getModel().getYearNum());
        if (!CollectionUtils.isEmpty(roomStatistics)){
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/ProjectsCloudController.java
@@ -19,6 +19,7 @@
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * @author 江蹄蹄
@@ -93,13 +94,12 @@
        return ApiResponse.success(projectsService.findById(id));
    }
    @ApiOperation("会议关联的项目")
    @PostMapping("/findListByObjId")
    @CloudRequiredPermission("business:projects:query")
    public ApiResponse<List<ProjectsResponse>> findListByObjId (@RequestParam Integer objId, @RequestParam Integer objType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(projectsService.getProjectsList(objId,objType));
    public ApiResponse<List<ProjectsResponse>> findListByObjId (@RequestBody Map<String,Object> param, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
//        @RequestParam Integer objId, @RequestParam Integer objType,
        return ApiResponse.success(projectsService.getProjectsList((Integer) param.get("objId"), (Integer) param.get("objType")));
    }
}
server/meeting/meeting_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -59,6 +59,7 @@
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setRealm(shiroRealm);
        securityManager.setSessionManager(this.sessionManager());
        securityManager.setCacheManager(shiroCacheManager);
        return securityManager;
    }
@@ -67,7 +68,7 @@
    public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(securityManager);
        Map<String, String> map = new HashMap<>();
        Map<String, String> map = new LinkedHashMap<>();
        // 路径拦截配置
        map.put("/system/login", "anon");
        map.put("/system/logout", "anon");
@@ -75,7 +76,6 @@
        //文件上传取消拦截
        map.put("/public/**", "anon");
        map.put(Constants.CLOUD_SERVICE_URL_INDEX+"/**", "anon");
        // - 放行swagger
        map.put("/doc.html", "anon");
        map.put("/webjars/**", "anon");
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -513,7 +513,7 @@
            prquery.selectAll(ProjectRel.class);
            prquery.eq(ProjectRel::getIsdeleted, MeetConstants.ZERO);
            prquery.eq(ProjectRel::getObjId, s.getId());
            prquery.select("(select p.name from projects p where t.PROJECT_ID = p.id and p.ISDELETED = 0  ) as projectName");
            prquery.select("(select p.name from meeting_projects p where t.PROJECT_ID = p.id and p.ISDELETED = 0  ) as projectName");
            List<ProjectRel> prList = projectRelJoinMapper.selectJoinList(ProjectRel.class, prquery);
            s.setProjectList(prList);
@@ -744,7 +744,7 @@
    @Override
    public List<Bookings> getMyBookings(Integer userId, String dateMsg) {
        return bookingsMapper.selectList(new QueryWrapper<Bookings>()
                .apply(" id in ( select u.OBJ_ID from user_rel u where u.USER_ID = '" + userId + "' and u.ISDELETED = 0 and OBJ_TYPE = 1  ) ")
                .apply(" id in ( select u.OBJ_ID from meeting_user_rel u where u.USER_ID = '" + userId + "' and u.ISDELETED = 0 and OBJ_TYPE = 1  ) ")
                .eq("ISDELETED",MeetConstants.ZERO)
//                .eq("STATUS",MeetConstants.ZERO)
                .apply(" ROOM_ID in ( select r.id from rooms r where r.ISDELETED = 0 and r.STATUS = 0  )")
@@ -765,7 +765,7 @@
                        j -> j.like("a.NAME",pageWrap.getModel().getRoomsName()).or()
                                .like(" b.NAME", pageWrap.getModel().getRoomsName()))
                        .exists(pageWrap.getModel().getQueryType().equals(MeetConstants.ONE) && !Objects.isNull(pageWrap.getModel().getUserId()),
                                " select 1 from user_rel u where a.id = u.OBJ_ID and  u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and OBJ_TYPE = 1  ")
                                " select 1 from meeting_user_rel u where a.id = u.OBJ_ID and  u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and OBJ_TYPE = 1  ")
                        .eq(pageWrap.getModel().getQueryType().equals(MeetConstants.TWO) && !Objects.isNull(pageWrap.getModel().getUserId()), "a.CREATOR", pageWrap.getModel().getUserId())
                        .like(StringUtils.isNotBlank(pageWrap.getModel().getQueryDate()), "a.START_TIME", pageWrap.getModel().getQueryDate())
                        .eq(!Objects.isNull(pageWrap.getModel().getRoomsId()), "b.id", pageWrap.getModel().getRoomsId())
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java
@@ -180,7 +180,7 @@
    public List<ProjectsResponse> getProjectsList(Integer objId,Integer objType) {
        return projectsMapper.getProjectsList(new QueryWrapper<ProjectsResponse>()
                        .eq("ISDELETED",MeetConstants.ZERO)
                .exists(" select 1 from project_rel p where p.PROJECT_ID = projects.id and p.OBJ_ID = "+objId+" and p.OBJ_TYPE = "+objType+"  ")
                .exists(" select 1 from meeting_project_rel p where p.PROJECT_ID = projects.id and p.OBJ_ID = "+objId+" and p.OBJ_TYPE = "+objType+"  ")
        );
    }
}
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomsServiceImpl.java
@@ -450,7 +450,7 @@
         //   queryWrapper.leftJoin(UserRel.class,UserRel::getObjId,Rooms::getId);
            List<Integer> collect = pageWrap.getModel().getSysList().stream().map(UserRel::getUserId).collect(Collectors.toList());
            queryWrapper.exists("select u.id from user_rel u where u.ISDELETED=0 and u.OBJ_ID =t.id and  u.USER_ID in (" +     StringUtils.strip(collect.toString(),"[]")+" )");
            queryWrapper.exists("select u.id from meeting_user_rel u where u.ISDELETED=0 and u.OBJ_ID =t.id and  u.USER_ID in (" +     StringUtils.strip(collect.toString(),"[]")+" )");
        }
        String path = systemDictDataBiz.queryByCode(Constants.FTP, Constants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
@@ -536,7 +536,7 @@
                .eq("STATUS",Constants.ZERO)
                .eq("ISDELETED",Constants.ZERO)
                .like(StringUtils.isNotBlank(pageWrap.getModel().getRoomsName()),"NAME",pageWrap.getModel().getRoomsName())
                .exists(" select 1 from user_rel u where u.USER_ID = "+pageWrap.getModel().getUserId()+" and u.ISDELETED = 0 and u.OBJ_ID = rooms.id and u.OBJ_TYPE = 0  ")
                .exists(" select 1 from meeting_user_rel u where u.USER_ID = "+pageWrap.getModel().getUserId()+" and u.ISDELETED = 0 and u.OBJ_ID = rooms.id and u.OBJ_TYPE = 0  ")
                .orderByDesc("CREATE_DATE")
        );
        String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP, Constants.FTP_RESOURCE_PATH).getCode()
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -145,7 +145,7 @@
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"路径参数不完整");
        }
        SystemDict queryDto = new SystemDict();
        queryDto.setCode(Constants.OSS);
        queryDto.setCode(Constants.FTP);
        queryDto.setDeleted(Boolean.FALSE);
        SystemDict dictData = systemDictService.findOne(queryDto);
        if (dictData == null) {
server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
@@ -32,6 +32,7 @@
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if(handler instanceof HandlerMethod){
        HandlerMethod handlerMethod = (HandlerMethod) handler;
        Class<?> beanType = handlerMethod.getBeanType();
        if (!beanType.isAnnotationPresent(LoginNoRequired.class) && !handlerMethod.hasMethodAnnotation(LoginNoRequired.class)) {
@@ -72,6 +73,10 @@
                throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
            }
        }
        }else{
            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
        }
        return true;
    }
server/system_service/src/main/java/com/doumee/core/model/LoginUserModel.java
@@ -1,6 +1,8 @@
package com.doumee.core.model;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
/**
@@ -11,6 +13,7 @@
@Data
public class LoginUserModel {
    @TableField(exist = false)
    @ApiModelProperty(hidden = true)
    private LoginUserInfo loginUserInfo;
}
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -32,6 +32,8 @@
    @ApiModelProperty(value = "主键", example = "1")
    @NotNull(message = "主键不能为空", groups = {OperaType.Update.class})
    private Integer id;
    @ApiModelProperty(value = "用户编码(关联member)", example = "1")
    private Integer memberId;
    @ApiModelProperty(value = "用户名")
    @NotBlank(message = "用户名不能为空")