| @@ -36,7 +36,6 @@ | |||
| <!-- 依赖声明 --> | |||
| <dependencyManagement> | |||
| <dependencies> | |||
| <!-- SpringFramework的依赖配置--> | |||
| <dependency> | |||
| <groupId>org.springframework</groupId> | |||
| @@ -118,19 +117,6 @@ | |||
| <version>${oshi.version}</version> | |||
| </dependency> | |||
| <!-- Swagger3依赖 --> | |||
| <dependency> | |||
| <groupId>io.springfox</groupId> | |||
| <artifactId>springfox-boot-starter</artifactId> | |||
| <version>${swagger.version}</version> | |||
| <exclusions> | |||
| <exclusion> | |||
| <groupId>io.swagger</groupId> | |||
| <artifactId>swagger-models</artifactId> | |||
| </exclusion> | |||
| </exclusions> | |||
| </dependency> | |||
| <!-- io常用工具类 --> | |||
| <dependency> | |||
| <groupId>commons-io</groupId> | |||
| @@ -8,7 +8,7 @@ | |||
| <version>4.7.9</version> | |||
| </parent> | |||
| <modelVersion>4.0.0</modelVersion> | |||
| <packaging>jar</packaging> | |||
| <packaging>war</packaging> | |||
| <artifactId>rwk-admin</artifactId> | |||
| <description> | |||
| @@ -31,10 +31,10 @@ | |||
| </dependency> | |||
| <!-- swagger3--> | |||
| <dependency> | |||
| <groupId>io.springfox</groupId> | |||
| <artifactId>springfox-boot-starter</artifactId> | |||
| </dependency> | |||
| <!-- <dependency>--> | |||
| <!-- <groupId>io.springfox</groupId>--> | |||
| <!-- <artifactId>springfox-boot-starter</artifactId>--> | |||
| <!-- </dependency>--> | |||
| <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 --> | |||
| <dependency> | |||
| @@ -81,11 +81,6 @@ | |||
| <scope>test</scope> | |||
| <version>2.5.0</version> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>com.h2database</groupId> | |||
| <artifactId>h2</artifactId> | |||
| <scope>test</scope> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.junit.vintage</groupId> | |||
| @@ -8,8 +8,7 @@ import com.rwk.common.core.domain.Ztree; | |||
| import com.rwk.common.core.domain.entity.SysDept; | |||
| import com.rwk.common.core.domain.entity.SysUser; | |||
| import com.rwk.common.utils.ShiroUtils; | |||
| import com.rwk.system.domain.RwkAddressGroup; | |||
| import com.rwk.system.domain.RwkBookGroup; | |||
| import com.rwk.system.domain.*; | |||
| import com.rwk.system.service.IRwkAddressGroupService; | |||
| import com.rwk.system.service.IRwkBookGroupService; | |||
| import org.apache.shiro.authz.annotation.RequiresPermissions; | |||
| @@ -23,7 +22,6 @@ import org.springframework.web.bind.annotation.RequestMapping; | |||
| import org.springframework.web.bind.annotation.ResponseBody; | |||
| import com.rwk.common.annotation.Log; | |||
| import com.rwk.common.enums.BusinessType; | |||
| import com.rwk.system.domain.RwkAddressBook; | |||
| import com.rwk.system.service.IRwkAddressBookService; | |||
| import com.rwk.common.core.controller.BaseController; | |||
| import com.rwk.common.core.domain.AjaxResult; | |||
| @@ -184,20 +182,21 @@ public class RwkAddressBookController extends BaseController | |||
| */ | |||
| @PostMapping("/address/move") | |||
| @ResponseBody | |||
| public AjaxResult moveSave(String addressIds, String byGroupId,String groupIds) | |||
| public AjaxResult moveSave(RwkBookGroupVo vo) | |||
| { | |||
| String[] addressIdArray = addressIds.split(","); | |||
| String[] groupIdArray = groupIds.split(","); | |||
| String[] addressIdArray = vo.getAddressIds().split(","); | |||
| String[] groupIdArray = vo.getGroupIds().split(","); | |||
| List<RwkBookGroup> list=new ArrayList<>(); | |||
| for (int i = 0; i < addressIdArray.length; i++){ | |||
| for (int j = 0; j < groupIdArray.length; j++){ | |||
| RwkBookGroup rbg= new RwkBookGroup(); | |||
| rbg.setBookId(Long.valueOf(addressIdArray[i])); | |||
| rbg.setGroupId(Long.valueOf(groupIdArray[j])); | |||
| rbg.setByGroupId(Long.valueOf(vo.getByGroupId())); | |||
| list.add(rbg); | |||
| } | |||
| } | |||
| return toAjax(rwkBookGroupService.insertRwkBookGroupList(list)); | |||
| return toAjax(rwkBookGroupService.updateRwkBookGroupList(list)); | |||
| } | |||
| /** | |||
| @@ -244,7 +243,7 @@ public class RwkAddressBookController extends BaseController | |||
| mmap.put("groups", rwkAddressGroupService.selectRwkAddressGroupList(sysUser.getLoginName())); | |||
| mmap.put("addressIds", ids); | |||
| mmap.put("byGroupId", byGroupId); | |||
| return prefix + "/groupTree"; | |||
| return prefix + "/groupTreeMove"; | |||
| } | |||
| @@ -1,67 +1,67 @@ | |||
| package com.rwk.web.core.config; | |||
| import org.springframework.beans.factory.annotation.Value; | |||
| import org.springframework.context.annotation.Bean; | |||
| import org.springframework.context.annotation.Configuration; | |||
| import com.rwk.common.config.RuoYiConfig; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import springfox.documentation.builders.ApiInfoBuilder; | |||
| import springfox.documentation.builders.PathSelectors; | |||
| import springfox.documentation.builders.RequestHandlerSelectors; | |||
| import springfox.documentation.service.ApiInfo; | |||
| import springfox.documentation.service.Contact; | |||
| import springfox.documentation.spi.DocumentationType; | |||
| import springfox.documentation.spring.web.plugins.Docket; | |||
| /** | |||
| * Swagger2的接口配置 | |||
| * | |||
| * @author ruoyi | |||
| */ | |||
| @Configuration | |||
| public class SwaggerConfig | |||
| { | |||
| /** 是否开启swagger */ | |||
| @Value("${swagger.enabled}") | |||
| private boolean enabled; | |||
| /** | |||
| * 创建API | |||
| */ | |||
| @Bean | |||
| public Docket createRestApi() | |||
| { | |||
| return new Docket(DocumentationType.OAS_30) | |||
| // 是否启用Swagger | |||
| .enable(enabled) | |||
| // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) | |||
| .apiInfo(apiInfo()) | |||
| // 设置哪些接口暴露给Swagger展示 | |||
| .select() | |||
| // 扫描所有有注解的api,用这种方式更灵活 | |||
| .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) | |||
| // 扫描指定包中的swagger注解 | |||
| //.apis(RequestHandlerSelectors.basePackage("com.rwk.project.tool.swagger")) | |||
| // 扫描所有 .apis(RequestHandlerSelectors.any()) | |||
| .paths(PathSelectors.any()) | |||
| .build(); | |||
| } | |||
| /** | |||
| * 添加摘要信息 | |||
| */ | |||
| private ApiInfo apiInfo() | |||
| { | |||
| // 用ApiInfoBuilder进行定制 | |||
| return new ApiInfoBuilder() | |||
| // 设置标题 | |||
| .title("标题:管理系统_接口文档") | |||
| // 描述 | |||
| .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") | |||
| // 作者信息 | |||
| .contact(new Contact(RuoYiConfig.getName(), null, null)) | |||
| // 版本 | |||
| .version("版本号:" + RuoYiConfig.getVersion()) | |||
| .build(); | |||
| } | |||
| } | |||
| //package com.rwk.web.core.config; | |||
| // | |||
| //import org.springframework.beans.factory.annotation.Value; | |||
| //import org.springframework.context.annotation.Bean; | |||
| //import org.springframework.context.annotation.Configuration; | |||
| //import com.rwk.common.config.RuoYiConfig; | |||
| //import io.swagger.annotations.ApiOperation; | |||
| //import springfox.documentation.builders.ApiInfoBuilder; | |||
| //import springfox.documentation.builders.PathSelectors; | |||
| //import springfox.documentation.builders.RequestHandlerSelectors; | |||
| //import springfox.documentation.service.ApiInfo; | |||
| //import springfox.documentation.service.Contact; | |||
| //import springfox.documentation.spi.DocumentationType; | |||
| //import springfox.documentation.spring.web.plugins.Docket; | |||
| // | |||
| ///** | |||
| // * Swagger2的接口配置 | |||
| // * | |||
| // * @author ruoyi | |||
| // */ | |||
| //@Configuration | |||
| //public class SwaggerConfig | |||
| //{ | |||
| // /** 是否开启swagger */ | |||
| // @Value("${swagger.enabled}") | |||
| // private boolean enabled; | |||
| // | |||
| // /** | |||
| // * 创建API | |||
| // */ | |||
| // @Bean | |||
| // public Docket createRestApi() | |||
| // { | |||
| // return new Docket(DocumentationType.OAS_30) | |||
| // // 是否启用Swagger | |||
| // .enable(enabled) | |||
| // // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) | |||
| // .apiInfo(apiInfo()) | |||
| // // 设置哪些接口暴露给Swagger展示 | |||
| // .select() | |||
| // // 扫描所有有注解的api,用这种方式更灵活 | |||
| // .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) | |||
| // // 扫描指定包中的swagger注解 | |||
| // //.apis(RequestHandlerSelectors.basePackage("com.rwk.project.tool.swagger")) | |||
| // // 扫描所有 .apis(RequestHandlerSelectors.any()) | |||
| // .paths(PathSelectors.any()) | |||
| // .build(); | |||
| // } | |||
| // | |||
| // /** | |||
| // * 添加摘要信息 | |||
| // */ | |||
| // private ApiInfo apiInfo() | |||
| // { | |||
| // // 用ApiInfoBuilder进行定制 | |||
| // return new ApiInfoBuilder() | |||
| // // 设置标题 | |||
| // .title("标题:管理系统_接口文档") | |||
| // // 描述 | |||
| // .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") | |||
| // // 作者信息 | |||
| // .contact(new Contact(RuoYiConfig.getName(), null, null)) | |||
| // // 版本 | |||
| // .version("版本号:" + RuoYiConfig.getVersion()) | |||
| // .build(); | |||
| // } | |||
| //} | |||
| @@ -6,8 +6,8 @@ spring: | |||
| druid: | |||
| # 主库数据源 | |||
| master: | |||
| url: jdbc:dm://150.158.136.65:5236/TZB_RWK?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true | |||
| username: TZB_RWK | |||
| url: jdbc:dm://150.158.136.65:5236/TZB_ZGC?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true | |||
| username: TZB_ZGC | |||
| password: hk64335593 | |||
| # 从库数据源 | |||
| slave: | |||
| @@ -9,7 +9,7 @@ ruoyi: | |||
| # 实例演示开关 | |||
| demoEnabled: false | |||
| # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) | |||
| profile: D:/ruoyi/uploadPath | |||
| profile: /opt/data | |||
| # profile: /home/ruoyi/uploadPath | |||
| # 获取ip地址开关 | |||
| addressEnabled: false | |||
| @@ -17,7 +17,7 @@ ruoyi: | |||
| # 开发环境配置 | |||
| server: | |||
| # 服务器的HTTP端口,默认为80 | |||
| port: 8080 | |||
| port: 8088 | |||
| servlet: | |||
| # 应用的访问路径 | |||
| context-path: / | |||
| @@ -1,7 +1,7 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <configuration> | |||
| <!-- 日志存放路径 --> | |||
| <property name="log.path" value="/home/ruoyi/logs" /> | |||
| <property name="log.path" value="/opt" /> | |||
| <!-- 日志输出格式 --> | |||
| <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> | |||
| @@ -82,3 +82,55 @@ | |||
| text-align: right; | |||
| margin-left: 14px; | |||
| } | |||
| /*.trapezoid {*/ | |||
| /* width: 0;*/ | |||
| /* height: 0;*/ | |||
| /* border-bottom: 100px solid red; !* 梯形的底边 *!*/ | |||
| /* border-left: 50px solid transparent; !* 左侧斜边 *!*/ | |||
| /* border-right: 50px solid transparent; !* 右侧斜边 *!*/ | |||
| /* transform: rotate(-90deg); !* 反方向旋转 90 度 *!*/ | |||
| /* transform-origin: top left; !* 设置旋转中心点 *!*/ | |||
| /*}*/ | |||
| .container { | |||
| position: relative; | |||
| width: 300px; /* Adjust the width as needed */ | |||
| height: 400px; /* Adjust the height as needed */ | |||
| background-color: white; | |||
| overflow: hidden; | |||
| } | |||
| .container::before { | |||
| content: ''; | |||
| position: absolute; | |||
| width: 2px; /* Thickness of the vertical line */ | |||
| height: 100%; | |||
| background-color: black; | |||
| left: 50%; /* Center the line */ | |||
| transform: translateX(-50%); | |||
| } | |||
| .container::after { | |||
| content: ''; | |||
| position: absolute; | |||
| width: 60px; /* Width of the irregular shape */ | |||
| height: 60px; /* Height of the irregular shape */ | |||
| background-color: black; | |||
| border-radius: 50%; /* Make it circular */ | |||
| top: 100px; /* Position it below the vertical line */ | |||
| left: calc(50% - 30px); /* Center it horizontally */ | |||
| transform: translateX(-50%); | |||
| } | |||
| .vertical-line { | |||
| width: 90px; | |||
| height: 10px; | |||
| background-color: #CECECE; | |||
| border-radius: 50% / 100% 100% 0 0; | |||
| transform: rotate(-90deg); | |||
| margin-top: 270px; | |||
| margin-left: -50px; | |||
| } | |||
| @@ -26,8 +26,8 @@ | |||
| <div class="col-sm-12"> | |||
| <form id="signupForm" autocomplete="off"> | |||
| <h4 class="no-margins" style="font-size: 20px;">登录:</h4> | |||
| <input type="text" name="username" class="form-control uname" placeholder="用户名" value="admin" /> | |||
| <input type="password" name="password" class="form-control pword" placeholder="密码" value="admin123" /> | |||
| <input type="text" name="username" class="form-control uname" placeholder="用户名" value="" /> | |||
| <input type="password" name="password" class="form-control pword" placeholder="密码" value="" /> | |||
| <div class="row m-t" th:if="${captchaEnabled==true}"> | |||
| <div class="col-xs-6"> | |||
| <input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" /> | |||
| @@ -32,7 +32,7 @@ | |||
| <div style="width: 40%;margin-left: 5px;margin-right: 5px;"> | |||
| <div style="width:100%;display: flex;"> | |||
| <div class="arrange div1"> | |||
| <div style="margin-top: 10px;">同年教育培训次数</div> | |||
| <div style="margin-top: 10px;">同年教育培训人次</div> | |||
| <div style="font-size: 26px;font-style: italic;margin-top: 6px;">5321</div> | |||
| </div> | |||
| <div class="arrange div2"> | |||
| @@ -45,7 +45,7 @@ | |||
| </div> | |||
| <div class="arrange div3"> | |||
| <div> | |||
| <div>未参会率</div> | |||
| <div>知联之友</div> | |||
| <div style="font-size: 10px;"> | |||
| <span style="font-size: 24px;font-style: italic;margin-right: 10px;color: #016BFF;">5</span>% | |||
| </div> | |||
| @@ -79,6 +79,8 @@ | |||
| return; | |||
| }else { | |||
| $.operate.save(prefix + "/address/add", $('#form-addressbook-add').serialize()); | |||
| $.modal.close(); | |||
| parent.location.reload(true); | |||
| } | |||
| } | |||
| @@ -38,6 +38,8 @@ | |||
| return; | |||
| }else { | |||
| $.operate.save(prefix + "/addgroup/add", $('#form-group-add').serialize()); | |||
| $.modal.close(); | |||
| parent.location.reload(true); | |||
| } | |||
| } | |||
| </script> | |||
| @@ -10,7 +10,7 @@ | |||
| <div class="col-md-12 select-table" > | |||
| <div class="col-md-12 search-collapse" style="border:none;padding-right: 0;padding-left: 0;margin-bottom: 10px;"> | |||
| <form id="formId"> | |||
| <div class="select-list"> | |||
| <div class="select-list" > | |||
| <ul> | |||
| <li style="margin-left: 20px;"> | |||
| <label>通讯录:</label> | |||
| @@ -35,7 +35,7 @@ | |||
| <a class="btn btn-style1"> | |||
| 导入联系人 | |||
| </a> | |||
| <a class="btn btn-style1"> | |||
| <a class="btn btn-style1" onclick="$.table.exportExcel()"> | |||
| 导出联系人 | |||
| </a> | |||
| <a class="btn btn-style1"> | |||
| @@ -70,8 +70,8 @@ | |||
| <div style="border: 6px solid #F1F3F7;"></div> | |||
| </div> | |||
| <div class="col-md-12"> | |||
| <div class="col-md-3"> | |||
| <div id="groups" class="group-list"> | |||
| <div class="col-md-3" style="display: inline-block"> | |||
| <div id="groups" class="group-list" style="height: 520px; overflow: auto;"> | |||
| <ul> | |||
| <li class="click click-bg" th:onclick="setOptionParam([[${item.id}]],[[${item.groupName}]])" th:if="${rwkAddressGroups != null}" th:each="item : ${allddressGroups}"> | |||
| <div>[[${item.groupName}]](<span >[[${item.num}]]</span>)</div> | |||
| @@ -82,7 +82,10 @@ | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| <div class=" table-striped" style="float: right;width: 75%"> | |||
| <div style="background-color: #CECECE;;width: 3px;height: 560px;display: inline-block"> | |||
| <div class="vertical-line"></div> | |||
| </div> | |||
| <div class=" table-striped" style="width: 72%;display: inline-block;margin-left: -4px"> | |||
| <table id="bootstrap-table"></table> | |||
| </div> | |||
| </div> | |||
| @@ -147,8 +150,6 @@ | |||
| yes: function (index, layero) { | |||
| var iframeWin = layero.find('iframe')[0]; | |||
| iframeWin.contentWindow.submitHandler(index, layero); | |||
| $.modal.close(index); | |||
| window.location.reload(true); | |||
| } | |||
| }; | |||
| $.modal.openOptions(options); | |||
| @@ -169,8 +170,6 @@ | |||
| yes: function (index, layero) { | |||
| var iframeWin = layero.find('iframe')[0]; | |||
| iframeWin.contentWindow.submitHandler(index, layero); | |||
| $.modal.close(index); | |||
| window.location.reload(true); | |||
| } | |||
| }; | |||
| $.modal.openOptions(options); | |||
| @@ -192,8 +191,6 @@ | |||
| yes: function (index, layero) { | |||
| var iframeWin = layero.find('iframe')[0]; | |||
| iframeWin.contentWindow.submitHandler(index, layero); | |||
| $.modal.close(index); | |||
| window.location.reload(true); | |||
| } | |||
| }; | |||
| $.modal.openOptions(options); | |||
| @@ -212,15 +209,13 @@ | |||
| type:1, | |||
| btn: ['确定','取消'], | |||
| closeBtn: 0, | |||
| width: 750, | |||
| width: 320, | |||
| height: 520, | |||
| offset:'150px', | |||
| anim:2, | |||
| yes: function (index, layero) { | |||
| var iframeWin = layero.find('iframe')[0]; | |||
| iframeWin.contentWindow.submitHandler(index, layero); | |||
| $.modal.close(index); | |||
| window.location.reload(true); | |||
| } | |||
| }; | |||
| $.modal.openOptions(options); | |||
| @@ -240,15 +235,13 @@ | |||
| type:1, | |||
| btn: ['确定','取消'], | |||
| closeBtn: 0, | |||
| width: 750, | |||
| width: 320, | |||
| height: 520, | |||
| offset:'150px', | |||
| anim:2, | |||
| yes: function (index, layero) { | |||
| var iframeWin = layero.find('iframe')[0]; | |||
| iframeWin.contentWindow.submitHandler(index, layero); | |||
| $.modal.close(index); | |||
| window.location.reload(true); | |||
| } | |||
| }; | |||
| $.modal.openOptions(options); | |||
| @@ -271,6 +264,7 @@ | |||
| var options = { | |||
| url: prefix + "/list", | |||
| editUrl: prefix + "/edit/{id}", | |||
| exportUrl: prefix + "/export", | |||
| height: 580, | |||
| pagination:false, | |||
| sidePagination: "client", | |||
| @@ -62,6 +62,8 @@ | |||
| return; | |||
| }else { | |||
| $.operate.save(prefix + "/address/edit", $('#form-addressbook-edit').serialize()); | |||
| $.modal.close(); | |||
| parent.location.reload(true); | |||
| } | |||
| } | |||
| @@ -13,13 +13,12 @@ | |||
| <!-- <button class="btn btn-unite" onclick="submitHandler()">保存</button>--> | |||
| <!-- </div>--> | |||
| <!-- </ul>--> | |||
| <form class="form-group" id="form-group"> | |||
| <input hidden type="text" name="addressIds" id="addressIds" th:value="${addressIds}"> | |||
| <input hidden type="text" name="groupIds" id="groupIds" > | |||
| <div class="col-md-12"> | |||
| <div class="col-md-3"> | |||
| <div id="groups" class="group-list"> | |||
| <div id="groups" class="group-list" style="height: 320px; overflow: auto;"> | |||
| <ul> | |||
| <li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | |||
| <div>[[${item.groupName}]]</div> | |||
| @@ -60,6 +59,8 @@ | |||
| }else { | |||
| $('#groupIds').val(groupids.toString()); | |||
| $.operate.save(prefix + "/address/copy", $('#form-group').serialize()); | |||
| $.modal.close(); | |||
| parent.location.reload(true); | |||
| } | |||
| } | |||
| @@ -20,7 +20,7 @@ | |||
| <input hidden type="text" name="groupIds" id="groupIds" > | |||
| <div class="col-md-12"> | |||
| <div class="col-md-3"> | |||
| <div id="groups" class="group-list"> | |||
| <div id="groups" class="group-list" style="height: 320px; overflow: auto;"> | |||
| <ul> | |||
| <li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | |||
| <div>[[${item.groupName}]]</div> | |||
| @@ -42,18 +42,15 @@ | |||
| object.classList.add("click-bg"); | |||
| } | |||
| function hasClass (ele, className) { | |||
| var reg = new RegExp('(^|\\s)' + className + '(\\s|$)') | |||
| return reg.test(ele.className) | |||
| } | |||
| function submitHandler() { | |||
| if (groupids.length==0){ | |||
| $.modal.alertWarning("请选择组名再提交!"); | |||
| return; | |||
| }else { | |||
| $('#groupIds').val(groupids.toString()); | |||
| $.operate.update(prefix + "/address/move", $('#form-group').serialize()); | |||
| $.operate.save(prefix + "/address/move", $('#form-group').serialize()); | |||
| $.modal.close(); | |||
| parent.location.reload(true); | |||
| } | |||
| } | |||
| @@ -21,6 +21,12 @@ | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-web</artifactId> | |||
| <exclusions> | |||
| <exclusion> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-tomcat</artifactId> | |||
| </exclusion> | |||
| </exclusions> | |||
| </dependency> | |||
| <!-- SpringBoot 拦截器 --> | |||
| @@ -29,12 +29,10 @@ public class RwkAddressBook extends BaseEntity | |||
| private String information; | |||
| /** 归属部门/个人 */ | |||
| @Excel(name = "归属部门/个人") | |||
| private Long addressGroup; | |||
| /** 创建时间 */ | |||
| @JsonFormat(pattern = "yyyy-MM-dd") | |||
| @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") | |||
| private Date createDate; | |||
| /** email */ | |||
| @@ -23,6 +23,8 @@ public class RwkBookGroup extends BaseEntity | |||
| @Excel(name = "分组id") | |||
| private Long groupId; | |||
| private Long byGroupId; | |||
| public void setBookId(Long bookId) | |||
| { | |||
| this.bookId = bookId; | |||
| @@ -33,6 +35,14 @@ public class RwkBookGroup extends BaseEntity | |||
| return bookId; | |||
| } | |||
| public Long getByGroupId() { | |||
| return byGroupId; | |||
| } | |||
| public void setByGroupId(Long byGroupId) { | |||
| this.byGroupId = byGroupId; | |||
| } | |||
| public Long getGroupId() { | |||
| return groupId; | |||
| } | |||
| @@ -1,4 +1,32 @@ | |||
| package com.rwk.system.domain; | |||
| public class RwkBookGroupVo { | |||
| private String addressIds; | |||
| private String byGroupId; | |||
| private String groupIds; | |||
| public String getAddressIds() { | |||
| return addressIds; | |||
| } | |||
| public void setAddressIds(String addressIds) { | |||
| this.addressIds = addressIds; | |||
| } | |||
| public String getByGroupId() { | |||
| return byGroupId; | |||
| } | |||
| public void setByGroupId(String byGroupId) { | |||
| this.byGroupId = byGroupId; | |||
| } | |||
| public String getGroupIds() { | |||
| return groupIds; | |||
| } | |||
| public void setGroupIds(String groupIds) { | |||
| this.groupIds = groupIds; | |||
| } | |||
| } | |||
| @@ -45,6 +45,9 @@ public interface RwkBookGroupMapper | |||
| */ | |||
| public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | |||
| public int updateRwkBookGroupList(@Param("rwkBookGroupList") List<RwkBookGroup> rwkBookGroupList); | |||
| /** | |||
| * 删除【请填写功能名称】 | |||
| * | |||
| @@ -44,6 +44,9 @@ public interface IRwkBookGroupService | |||
| */ | |||
| public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | |||
| public int updateRwkBookGroupList(List<RwkBookGroup> rwkBookGroup); | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| @@ -81,6 +81,12 @@ public class RwkBookGroupServiceImpl implements IRwkBookGroupService | |||
| return rwkBookGroupMapper.updateRwkBookGroup(rwkBookGroup); | |||
| } | |||
| @Override | |||
| public int updateRwkBookGroupList(List<RwkBookGroup> rwkBookGroup) | |||
| { | |||
| return rwkBookGroupMapper.updateRwkBookGroupList(rwkBookGroup); | |||
| } | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| @@ -55,6 +55,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| where book_id = #{bookId} | |||
| </update> | |||
| <update id="updateRwkBookGroupList" > | |||
| <foreach collection="rwkBookGroupList" item="rwkBookGroup" separator=";"> | |||
| update rwk_book_group set group_id=#{rwkBookGroup.groupId} where book_id = #{rwkBookGroup.bookId} and group_id=#{rwkBookGroup.byGroupId} | |||
| </foreach> | |||
| </update> | |||
| <delete id="deleteRwkBookGroupByBookId" parameterType="Long"> | |||
| delete from rwk_book_group where book_id = #{bookId} | |||
| </delete> | |||