| Autor | SHA1 | Mensagem | Data |
|---|---|---|---|
|
|
3f92c68cd4 | Merge remote-tracking branch 'origin/master' | há 1 ano |
|
|
456c36f251 | 通讯录修改 | há 1 ano |
| @@ -1,6 +1,17 @@ | |||
| package com.rwk.web.controller.ability; | |||
| import java.util.ArrayList; | |||
| import java.util.LinkedList; | |||
| import java.util.List; | |||
| 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.service.IRwkAddressGroupService; | |||
| import com.rwk.system.service.IRwkBookGroupService; | |||
| import org.apache.shiro.authz.annotation.RequiresPermissions; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Controller; | |||
| @@ -34,10 +45,31 @@ public class RwkAddressBookController extends BaseController | |||
| @Autowired | |||
| private IRwkAddressBookService rwkAddressBookService; | |||
| @Autowired | |||
| private IRwkAddressGroupService rwkAddressGroupService; | |||
| @Autowired | |||
| private IRwkBookGroupService rwkBookGroupService; | |||
| @RequiresPermissions("system:addressbook:view") | |||
| @GetMapping() | |||
| public String book() | |||
| public String book(ModelMap map) | |||
| { | |||
| List<RwkAddressGroup> resultGroup = new LinkedList<>(); | |||
| SysUser sysUser = ShiroUtils.getSysUser(); | |||
| Long deptId = sysUser.getDept().getDeptId(); | |||
| // 所有联系人 | |||
| List<RwkAddressGroup> rwkAddressGroups1 = rwkAddressGroupService.selectRwkAddressGroupListAllByDept(deptId); | |||
| // 未分组联系人(停用) | |||
| // List<RwkAddressGroup> rwkAddressGroups2 = rwkAddressGroupService.selectRwkAddressGroupListLackByDept(deptId); | |||
| // resultGroup.addAll(rwkAddressGroups2); | |||
| // 分组联系人 | |||
| List<RwkAddressGroup> rwkAddressGroups3 = rwkAddressGroupService.selectRwkAddressGroupList(sysUser.getLoginName()); | |||
| resultGroup.addAll(rwkAddressGroups3); | |||
| map.put("rwkAddressGroups", resultGroup); | |||
| map.put("allddressGroups", rwkAddressGroups1); | |||
| return prefix + "/addressbook"; | |||
| } | |||
| @@ -54,7 +86,6 @@ public class RwkAddressBookController extends BaseController | |||
| return getDataTable(list); | |||
| } | |||
| /** | |||
| * 导出通讯录主列表 | |||
| */ | |||
| @@ -69,14 +100,14 @@ public class RwkAddressBookController extends BaseController | |||
| return util.exportExcel(list, "通讯录主数据"); | |||
| } | |||
| /** | |||
| * 新增通讯录人员 | |||
| */ | |||
| @GetMapping("/add") | |||
| public String add() | |||
| { | |||
| return prefix + "/add"; | |||
| } | |||
| // /** | |||
| // * 新增通讯录人员 | |||
| // */ | |||
| // @GetMapping("/add") | |||
| // public String add() | |||
| // { | |||
| // return prefix + "/add"; | |||
| // } | |||
| /** | |||
| * 新增通讯录分组 | |||
| @@ -89,11 +120,26 @@ public class RwkAddressBookController extends BaseController | |||
| /** | |||
| * 新增通讯录分组 | |||
| * 新增保存通讯录分组 | |||
| */ | |||
| @PostMapping("/addgroup/add") | |||
| @ResponseBody | |||
| public AjaxResult addGroupSave(RwkAddressGroup rwkAddressGroup) | |||
| { | |||
| SysUser sysUser = ShiroUtils.getSysUser(); | |||
| rwkAddressGroup.setGroupByUser(sysUser.getLoginName()); | |||
| return toAjax(rwkAddressGroupService.insertRwkAddressGroup(rwkAddressGroup)); | |||
| } | |||
| /** | |||
| * 新增通讯录人员 | |||
| */ | |||
| @GetMapping("/addbook") | |||
| public String addbook() | |||
| public String addbook(ModelMap map) | |||
| { | |||
| SysUser sysUser = ShiroUtils.getSysUser(); | |||
| List<RwkAddressGroup> rwkAddressGroups = rwkAddressGroupService.selectRwkAddressGroupList(sysUser.getLoginName()); | |||
| map.put("rwkAddressGroups", rwkAddressGroups); | |||
| return prefix + "/addbook"; | |||
| } | |||
| @@ -102,13 +148,58 @@ public class RwkAddressBookController extends BaseController | |||
| */ | |||
| @RequiresPermissions("system:book:add") | |||
| @Log(title = "通讯录主", businessType = BusinessType.INSERT) | |||
| @PostMapping("/add") | |||
| @PostMapping("/address/add") | |||
| @ResponseBody | |||
| public AjaxResult addSave(RwkAddressBook rwkAddressBook) | |||
| { | |||
| SysUser sysUser = ShiroUtils.getSysUser(); | |||
| SysDept dept = sysUser.getDept(); | |||
| rwkAddressBook.setDeptId(dept.getDeptId()); | |||
| return toAjax(rwkAddressBookService.insertRwkAddressBook(rwkAddressBook)); | |||
| } | |||
| /** | |||
| * 通讯录复制关系 | |||
| */ | |||
| @PostMapping("/address/copy") | |||
| @ResponseBody | |||
| public AjaxResult copySave(String addressIds, String groupIds) | |||
| { | |||
| String[] addressIdArray = addressIds.split(","); | |||
| String[] groupIdArray = groupIds.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])); | |||
| list.add(rbg); | |||
| } | |||
| } | |||
| return toAjax(rwkBookGroupService.insertRwkBookGroupList(list)); | |||
| } | |||
| /** | |||
| * 通讯录移动关系 | |||
| */ | |||
| @PostMapping("/address/move") | |||
| @ResponseBody | |||
| public AjaxResult moveSave(String addressIds, String byGroupId,String groupIds) | |||
| { | |||
| String[] addressIdArray = addressIds.split(","); | |||
| String[] groupIdArray = groupIds.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])); | |||
| list.add(rbg); | |||
| } | |||
| } | |||
| return toAjax(rwkBookGroupService.insertRwkBookGroupList(list)); | |||
| } | |||
| /** | |||
| * 修改通讯录 | |||
| */ | |||
| @@ -118,15 +209,49 @@ public class RwkAddressBookController extends BaseController | |||
| { | |||
| RwkAddressBook rwkAddressBook = rwkAddressBookService.selectRwkAddressBookById(id); | |||
| mmap.put("rwkAddressBook", rwkAddressBook); | |||
| return prefix + "/edit"; | |||
| return prefix + "/editbook"; | |||
| } | |||
| /** | |||
| * 个人通讯录分组树 | |||
| * @param | |||
| * @param mmap | |||
| * @return | |||
| */ | |||
| @GetMapping("/selectGroupsTree/{addressIds}") | |||
| public String selectDeptTree(ModelMap mmap,@PathVariable("addressIds") String addressIds) | |||
| { | |||
| SysUser sysUser = ShiroUtils.getSysUser(); | |||
| mmap.put("groups", rwkAddressGroupService.selectRwkAddressGroupList(sysUser.getLoginName())); | |||
| mmap.put("addressIds", addressIds); | |||
| return prefix + "/groupTree"; | |||
| } | |||
| /** | |||
| * 通讯录关系移动 | |||
| * @param | |||
| * @param mmap | |||
| * @return | |||
| */ | |||
| @GetMapping("/selectGroupsTreeMove/{str}") | |||
| public String selectGroupsTreeMove(ModelMap mmap,@PathVariable("str") String str) | |||
| { | |||
| SysUser sysUser = ShiroUtils.getSysUser(); | |||
| String[] split = str.split("gId="); | |||
| String ids=split[0]; | |||
| String byGroupId=split[1]; | |||
| mmap.put("groups", rwkAddressGroupService.selectRwkAddressGroupList(sysUser.getLoginName())); | |||
| mmap.put("addressIds", ids); | |||
| mmap.put("byGroupId", byGroupId); | |||
| return prefix + "/groupTree"; | |||
| } | |||
| /** | |||
| * 修改保存通讯录 | |||
| */ | |||
| @RequiresPermissions("system:book:edit") | |||
| @Log(title = "通讯录主", businessType = BusinessType.UPDATE) | |||
| @PostMapping("/edit") | |||
| @PostMapping("/address/edit") | |||
| @ResponseBody | |||
| public AjaxResult editSave(RwkAddressBook rwkAddressBook) | |||
| { | |||
| @@ -136,12 +261,32 @@ public class RwkAddressBookController extends BaseController | |||
| /** | |||
| * 删除通讯录 | |||
| */ | |||
| @RequiresPermissions("system:book:remove") | |||
| @Log(title = "通讯录主", businessType = BusinessType.DELETE) | |||
| @PostMapping( "/remove") | |||
| @PostMapping( "/address/delete") | |||
| @ResponseBody | |||
| public AjaxResult remove(String ids) | |||
| { | |||
| return toAjax(rwkAddressBookService.deleteRwkAddressBookByIds(ids)); | |||
| } | |||
| /** | |||
| * 删除通讯录 | |||
| */ | |||
| @PostMapping( "/addgroup/delete") | |||
| @ResponseBody | |||
| public AjaxResult removeGroup(String ids) | |||
| { | |||
| return toAjax(rwkBookGroupService.deleteRwkBookGroupByBookIds(ids)); | |||
| } | |||
| /** | |||
| * 删除通讯录分组(包含其成员关系) | |||
| */ | |||
| @PostMapping( "/addgroup/delete/all") | |||
| @ResponseBody | |||
| public AjaxResult removeGroupAll(Long groupid ) | |||
| { | |||
| // 删除组下关系 | |||
| rwkBookGroupService.deleteRwkBookGroupByGroupId(groupid); | |||
| return toAjax(rwkAddressGroupService.deleteRwkAddressGroupById(groupid)); | |||
| } | |||
| } | |||
| @@ -19,6 +19,10 @@ | |||
| background-color: #CECECE; | |||
| } | |||
| .click-bg{ | |||
| background-color: #CECECE; | |||
| } | |||
| .bootstrap-table .fixed-table-container.fixed-height:not(.has-footer){ | |||
| border: 0px!important; | |||
| } | |||
| @@ -12,14 +12,16 @@ | |||
| <!-- <button class="btn btn-unite" onclick="submitHandler()">保存</button>--> | |||
| <!-- </div>--> | |||
| <!-- </ul>--> | |||
| <form class="form-horizontal"> | |||
| <div style="height: 50px;width: 100%"></div> | |||
| <form class="form-horizontal" id="form-addressbook-add"> | |||
| <div class="col-md-12" > | |||
| <div class="form-group" > | |||
| <div class="address-from-left"> | |||
| <span style="color: red">*</span>姓名: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="" class="form-control" placeholder="请输入姓名"> | |||
| <input type="text" id="bookName" name="bookName" class="form-control" placeholder="请输入姓名"> | |||
| </div> | |||
| </div> | |||
| @@ -28,7 +30,7 @@ | |||
| 电话: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="" class="form-control" placeholder="请输入电话"> | |||
| <input type="text" name="information" class="form-control" placeholder="请输入电话"> | |||
| </div> | |||
| </div> | |||
| @@ -37,22 +39,48 @@ | |||
| Email: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="" class="form-control" placeholder="请输入Email"> | |||
| <input type="text" name="email" class="form-control" placeholder="请输入Email"> | |||
| </div> | |||
| </div> | |||
| <div class="form-group" style="margin-top: 30px"> | |||
| <div class="address-from-left"> | |||
| 其他联系方式: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="othersInf" class="form-control" placeholder="请输入其他联系方式"> | |||
| </div> | |||
| </div> | |||
| <div class="form-group" style="margin-top: 30px"> | |||
| <div class="address-from-left"> | |||
| 分组归类: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="" class="form-control" placeholder="请输入分组归类"> | |||
| <select name="addressGroup" class="form-control" placeholder="请选择分组归类"> | |||
| <option value="">默认分组</option> | |||
| <option th:each="item : ${rwkAddressGroups}" th:text="${item.groupName}" th:value="${item.id}"></option> | |||
| </select> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| <th:block th:include="include :: footer" /> | |||
| <script th:inline="javascript"> | |||
| var prefix = ctx + "system/addressbook"; | |||
| $("#form-addressbook-add").validate({ | |||
| focusCleanup: true | |||
| }); | |||
| function submitHandler() { | |||
| let bookname=$('#bookName').val(); | |||
| if (bookname == '') { | |||
| $.modal.alertWarning("请填写姓名再提交!"); | |||
| return; | |||
| }else { | |||
| $.operate.save(prefix + "/address/add", $('#form-addressbook-add').serialize()); | |||
| } | |||
| } | |||
| </script> | |||
| </body> | |||
| @@ -13,18 +13,33 @@ | |||
| <!-- <button class="btn btn-unite" onclick="submitHandler()">保存</button>--> | |||
| <!-- </div>--> | |||
| <!-- </ul>--> | |||
| <form class="form-horizontal"> | |||
| <form class="form-group-add" id="form-group-add"> | |||
| <div class="form-group" style="margin-left:48px;margin-top: 20px"> | |||
| <label class="col-sm-4 control-label is-required" style="float: left">组名称 :</label> | |||
| <div class="col-sm-8" style="float: left"> | |||
| <input name="groupname" class="form-control addgroup_frame" placeholder="请填写组名称" > | |||
| <input id="groupName" name="groupName" class="form-control addgroup_frame" placeholder="请填写组名称" > | |||
| </div> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| <th:block th:include="include :: footer" /> | |||
| <script th:inline="javascript"> | |||
| var prefix = ctx + "system/addressbook"; | |||
| $("#form-group-add").validate({ | |||
| focusCleanup: true | |||
| }); | |||
| function submitHandler() { | |||
| let gn=$('#groupName').val(); | |||
| if (gn == '') { | |||
| $.modal.alertWarning("请填写组名称再提交!"); | |||
| return; | |||
| }else { | |||
| $.operate.save(prefix + "/addgroup/add", $('#form-group-add').serialize()); | |||
| } | |||
| } | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -16,13 +16,15 @@ | |||
| <label>通讯录:</label> | |||
| </li> | |||
| <li class="flexLayout" style="float: right;"> | |||
| <input type="text" class="form-control searchTag" placeholder="搜索姓名关键字"/> | |||
| <button class="btn btn-success" style="width:65px;margin-left: 10px;height: 36px;background-color: #185EFF;" onclick="$.table.search()"> | |||
| <input type="text" name="bookName" class="form-control searchTag" placeholder="搜索姓名关键字"/> | |||
| <a class="btn btn-success" style="width:65px;margin-left: 10px;height: 36px;background-color: #185EFF;" onclick="$.table.search()"> | |||
| 搜索 | |||
| </button> | |||
| </a> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| <input hidden type="text" name="addressGroup" id="addressGroup"> | |||
| <input hidden type="text" name="keyword" id="keyword"> | |||
| </form> | |||
| </div> | |||
| <div class="col-md-12"> | |||
| @@ -40,20 +42,23 @@ | |||
| 使用帮助 | |||
| </a> | |||
| </div> | |||
| <div style="margin-top: 10px;"> | |||
| <div style="margin-top: 10px;"> | |||
| <a class="btn btn-style2" onclick="addressAdd()"> | |||
| 新建联系人 | |||
| </a> | |||
| <a class="btn btn-style2 multiple disabled"> | |||
| <a class="btn btn-style2 multiple" id="deleteAddress" onclick="deleteAddress()"> | |||
| 删除联系人 | |||
| </a> | |||
| <a class="btn btn-style2" onclick="addressgroupAdd()"> | |||
| 创建组 | |||
| </a> | |||
| <a class="btn btn-style2"> | |||
| <a class="btn btn-style2" id="deleteGroup" onclick="deleteAddressGroup()"> | |||
| 删除组 | |||
| </a> | |||
| <a class="btn btn-style2" onclick="copyAddress()"> | |||
| 复制到组 | |||
| </a> | |||
| <a class="btn btn-style2"> | |||
| <a class="btn btn-style2" id="moveGroup" onclick="moveAddress()"> | |||
| 移动到组 | |||
| </a> | |||
| <a class="btn btn-style2" onclick="$.table.search()"> | |||
| @@ -68,12 +73,12 @@ | |||
| <div class="col-md-3"> | |||
| <div id="groups" class="group-list"> | |||
| <ul> | |||
| <li><div>所有联系人(<span id="manTotal">11</span>)</div></li> | |||
| <li><div>分组1(<span>4</span>)</div></li> | |||
| <li><div>分组2(<span>7</span>)</div></li> | |||
| <li><div>分组3(<span>1</span>)</div></li> | |||
| <li><div>分组4(<span>0</span>)</div></li> | |||
| <li><div>未分组联系人(<span id="notDivide">1</span>)</div></li> | |||
| <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> | |||
| </li> | |||
| <li class="click" th:onclick="setOptionParam([[${item.id}]],[[${item.groupName}]])" th:if="${rwkAddressGroups != null}" th:each="item : ${rwkAddressGroups}"> | |||
| <div>[[${item.groupName}]](<span >[[${item.num}]]</span>)</div> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| @@ -93,8 +98,38 @@ | |||
| var editFlag =""; | |||
| $(function() { | |||
| queryUserList(); | |||
| queryGroupTree(); | |||
| $('#deleteGroup').addClass("disabled"); | |||
| $('#moveGroup').addClass("disabled"); | |||
| }); | |||
| $('#click-all').click(function () { | |||
| $('#delete').removeClass("disabled"); | |||
| }); | |||
| var operateflag=false; | |||
| /** | |||
| * 点击修改背景色 按钮权限控制器 | |||
| */ | |||
| $('.click').click(function () { | |||
| $('.click-bg').removeClass("click-bg"); | |||
| this.classList.add("click-bg"); | |||
| $('.click-bg').each(function(){ | |||
| if ($(this).text().search("所有联系人")==-1){ | |||
| $('#deleteAddress').addClass("disabled"); | |||
| $('#moveGroup').removeClass("disabled"); | |||
| $('#deleteGroup').removeClass("disabled"); | |||
| operateflag=true; | |||
| }else { | |||
| $('#deleteAddress').removeClass("disabled"); | |||
| $('#moveGroup').addClass("disabled"); | |||
| $('#deleteGroup').addClass("disabled"); | |||
| operateflag=false; | |||
| } | |||
| }); | |||
| }); | |||
| //新增 | |||
| @@ -110,8 +145,10 @@ | |||
| offset:'150px', | |||
| anim:2, | |||
| yes: function (index, layero) { | |||
| var iframeWin = layero.find('iframe')[0]; | |||
| iframeWin.contentWindow.submitHandler(index, layero); | |||
| $.modal.close(index); | |||
| $.table.refresh(); // 关闭后刷新表格数据(不刷新页面) | |||
| window.location.reload(true); | |||
| } | |||
| }; | |||
| $.modal.openOptions(options); | |||
| @@ -130,21 +167,120 @@ | |||
| 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); | |||
| } | |||
| //修改联系人 | |||
| function editAddress(id) { | |||
| var options = { | |||
| title: ['修改联系人','text-align:center;font-size:18px;color:white;height:60px;line-height:60px;background-color:#0042a4'], | |||
| url: prefix + "/edit/"+id, | |||
| type:1, | |||
| btn: ['确定','取消'], | |||
| closeBtn: 0, | |||
| width: 750, | |||
| height: 520, | |||
| offset:'150px', | |||
| anim:2, | |||
| yes: function (index, layero) { | |||
| var iframeWin = layero.find('iframe')[0]; | |||
| iframeWin.contentWindow.submitHandler(index, layero); | |||
| $.modal.close(index); | |||
| $.table.refresh(); // 关闭后刷新表格数据(不刷新页面) | |||
| window.location.reload(true); | |||
| } | |||
| }; | |||
| $.modal.openOptions(options); | |||
| } | |||
| // 复制到组 | |||
| function copyAddress() { | |||
| var rows = $.table.selectFirstColumns(); | |||
| if (rows.length == 0) { | |||
| $.modal.alertWarning("请至少选择一条记录"); | |||
| return; | |||
| }else { | |||
| var options = { | |||
| title: ['复制联系人','text-align:center;font-size:18px;color:white;height:60px;line-height:60px;background-color:#0042a4'], | |||
| url: prefix + "/selectGroupsTree/"+rows, | |||
| type:1, | |||
| btn: ['确定','取消'], | |||
| closeBtn: 0, | |||
| width: 750, | |||
| 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); | |||
| } | |||
| } | |||
| // 移动 | |||
| function moveAddress() { | |||
| var rows = $.table.selectFirstColumns(); | |||
| if (rows.length == 0) { | |||
| $.modal.alertWarning("请至少选择一条记录"); | |||
| return; | |||
| }else { | |||
| var options = { | |||
| title: ['移动联系人','text-align:center;font-size:18px;color:white;height:60px;line-height:60px;background-color:#0042a4'], | |||
| url: prefix + "/selectGroupsTreeMove/"+rows+"gId="+operateGroupId, | |||
| type:1, | |||
| btn: ['确定','取消'], | |||
| closeBtn: 0, | |||
| width: 750, | |||
| 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); | |||
| } | |||
| } | |||
| var operateAddressGroupName=''; | |||
| var operateGroupId=''; | |||
| function setOptionParam(id,name){ | |||
| operateAddressGroupName=name; | |||
| operateGroupId=id; | |||
| $('#addressGroup').val(id); | |||
| $('#keyword').val(name); | |||
| $.table.search(); | |||
| $('#keyword').val(''); | |||
| } | |||
| function queryUserList() { | |||
| var options = { | |||
| url: prefix + "/list", | |||
| editUrl: prefix + "/edit/{id}", | |||
| height: 580, | |||
| pagination:false, | |||
| sidePagination: "client", | |||
| virtualScroll: true, | |||
| modalName: "人员信息", | |||
| showFooter: false, | |||
| showSearch: false, | |||
| showRefresh: false, | |||
| showToggle: false, | |||
| showColumns: false, | |||
| columns: [{ | |||
| checkbox: true, | |||
| }, | |||
| @@ -186,9 +322,11 @@ | |||
| align: 'center', | |||
| formatter: function(value, row, index) { | |||
| var actions = []; | |||
| actions.push('<a class="btn-style3 ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')">编辑</a> '); | |||
| actions.push('|'); | |||
| actions.push('<a class="btn-style3" href="javascript:void(0)">详情</a>'); | |||
| actions.push('<a class="btn-style3 ' + editFlag + '" href="javascript:void(0)" onclick="editAddress(\'' + row.id + '\')">编辑</a> '); | |||
| if (operateflag){ | |||
| actions.push('|'); | |||
| actions.push('<a class="btn-style3" href="javascript:void(0)" onclick="deleteGroup(\'' + row.id + '\')">删除关系</a>'); | |||
| } | |||
| return actions.join(''); | |||
| } | |||
| }] | |||
| @@ -196,8 +334,34 @@ | |||
| $.table.init(options); | |||
| } | |||
| function queryGroupTree() { | |||
| function deleteGroup(id) { | |||
| var url=prefix + "/addgroup/delete"; | |||
| var data = { "ids": id }; | |||
| $.operate.submit(url, "post", "json", data); | |||
| window.location.reload(true); | |||
| } | |||
| function deleteAddressGroup() { | |||
| $.modal.confirm("确认要删除选中的[<span style='color: orange'>"+operateAddressGroupName+"</span>]吗?<br><span style='color: red'>注:其分组下的成员关系都将被删除</span>", function() { | |||
| var url =prefix + "/addgroup/delete/all"; | |||
| var data = { "groupid": operateGroupId,"groupname":operateAddressGroupName }; | |||
| $.operate.submit(url, "post", "json", data); | |||
| parent.location.reload(true); | |||
| }); | |||
| } | |||
| function deleteAddress() { | |||
| var url =prefix + "/address/delete"; | |||
| var rows = $.table.selectFirstColumns(); | |||
| if (rows.length == 0) { | |||
| $.modal.alertWarning("请至少选择一条记录"); | |||
| return; | |||
| } | |||
| $.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function() { | |||
| var ids = { "ids": rows.join() }; | |||
| $.operate.submit(url, "post", "json", ids); | |||
| parent.location.reload(true); | |||
| }); | |||
| } | |||
| </script> | |||
| </html> | |||
| @@ -0,0 +1,70 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="zh" xmlns:th="http://www.thymeleaf.org" > | |||
| <head> | |||
| <th:block th:include="include :: header('修改联系人')" /> | |||
| <!-- <link th:href="@{/css/use/css1.css}" rel="stylesheet"/>--> | |||
| <link th:href="@{/ruoyi/css/address.css}" rel="stylesheet"/> | |||
| <th:block th:include="include :: bootstrap-duallistbox-css" /> | |||
| </head> | |||
| <body class="white-bg"> | |||
| <div style="height: 50px;width: 100%"></div> | |||
| <form class="form-horizontal" id="form-addressbook-edit" th:object="${rwkAddressBook}"> | |||
| <input name="id" th:field="*{id}" type="hidden"> | |||
| <div class="col-md-12" > | |||
| <div class="form-group" > | |||
| <div class="address-from-left"> | |||
| <span style="color: red">*</span>姓名: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" id="bookName" name="bookName" th:field="*{bookName}" class="form-control" placeholder="请输入姓名"> | |||
| </div> | |||
| </div> | |||
| <div class="form-group" style="margin-top: 30px"> | |||
| <div class="address-from-left"> | |||
| 电话: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="information" class="form-control" th:field="*{information}" placeholder="请输入电话"> | |||
| </div> | |||
| </div> | |||
| <div class="form-group" style="margin-top: 30px"> | |||
| <div class="address-from-left"> | |||
| Email: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="email" class="form-control" th:field="*{email}" placeholder="请输入Email"> | |||
| </div> | |||
| </div> | |||
| <div class="form-group" style="margin-top: 30px"> | |||
| <div class="address-from-left"> | |||
| 其他联系方式: | |||
| </div> | |||
| <div class="address-from-right"> | |||
| <input type="text" name="othersInf" class="form-control" th:field="*{othersInf}" placeholder="请输入其他联系方式"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| <th:block th:include="include :: footer" /> | |||
| <script th:inline="javascript"> | |||
| var prefix = ctx + "system/addressbook"; | |||
| $("#form-addressbook-edit").validate({ | |||
| focusCleanup: true | |||
| }); | |||
| function submitHandler() { | |||
| let bookname=$('#bookName').val(); | |||
| if (bookname == '') { | |||
| $.modal.alertWarning("请填写姓名再提交!"); | |||
| return; | |||
| }else { | |||
| $.operate.save(prefix + "/address/edit", $('#form-addressbook-edit').serialize()); | |||
| } | |||
| } | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,68 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="zh" xmlns:th="http://www.thymeleaf.org" > | |||
| <head> | |||
| <th:block th:include="include :: header('移动/复制')" /> | |||
| <link th:href="@{/css/use/css1.css}" rel="stylesheet"/> | |||
| <link th:href="@{/ruoyi/css/address.css}" rel="stylesheet"/> | |||
| <th:block th:include="include :: bootstrap-duallistbox-css" /> | |||
| </head> | |||
| <body class="white-bg"> | |||
| <div class="wrapper wrapper-content animated fadeInRight ibox-content"> | |||
| <!-- <ul class="nav head_top" id="tab">--> | |||
| <!-- <div class="text-right hidden-print" style="float: right">--> | |||
| <!-- <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"> | |||
| <ul> | |||
| <li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | |||
| <div>[[${item.groupName}]]</div> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| <th:block th:include="include :: footer" /> | |||
| <script th:inline="javascript"> | |||
| var prefix = ctx + "system/addressbook"; | |||
| let groupids = []; | |||
| function setgroupids(id,object) { | |||
| if (hasClass(object,"click-bg")){ | |||
| let index = groupids.indexOf(id); | |||
| if (index !== -1) { | |||
| groupids.splice(index, 1); | |||
| } | |||
| object.classList.remove("click-bg"); | |||
| }else { | |||
| groupids.push(id); | |||
| 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.save(prefix + "/address/copy", $('#form-group').serialize()); | |||
| } | |||
| } | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,62 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="zh" xmlns:th="http://www.thymeleaf.org" > | |||
| <head> | |||
| <th:block th:include="include :: header('移动/复制')" /> | |||
| <link th:href="@{/css/use/css1.css}" rel="stylesheet"/> | |||
| <link th:href="@{/ruoyi/css/address.css}" rel="stylesheet"/> | |||
| <th:block th:include="include :: bootstrap-duallistbox-css" /> | |||
| </head> | |||
| <body class="white-bg"> | |||
| <div class="wrapper wrapper-content animated fadeInRight ibox-content"> | |||
| <!-- <ul class="nav head_top" id="tab">--> | |||
| <!-- <div class="text-right hidden-print" style="float: right">--> | |||
| <!-- <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="byGroupId" id="byGroupId" th:value="${byGroupId}"> | |||
| <input hidden type="text" name="groupIds" id="groupIds" > | |||
| <div class="col-md-12"> | |||
| <div class="col-md-3"> | |||
| <div id="groups" class="group-list"> | |||
| <ul> | |||
| <li class="click" th:onclick="setgroupids([[${item.id}]],this)" th:if="${groups != null}" th:each="item : ${groups}"> | |||
| <div>[[${item.groupName}]]</div> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| <th:block th:include="include :: footer" /> | |||
| <script th:inline="javascript"> | |||
| var prefix = ctx + "system/addressbook"; | |||
| let groupids = ""; | |||
| function setgroupids(id,object) { | |||
| groupids=id; | |||
| $('.click-bg').removeClass("click-bg"); | |||
| 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()); | |||
| } | |||
| } | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -45,6 +45,12 @@ public class RwkAddressBook extends BaseEntity | |||
| @Excel(name = "其他联系方式") | |||
| private String othersInf; | |||
| /** 部门id */ | |||
| private Long deptId; | |||
| /** sql查询条件 */ | |||
| private String keyword; | |||
| public void setId(Long id) | |||
| { | |||
| this.id = id; | |||
| @@ -55,7 +61,23 @@ public class RwkAddressBook extends BaseEntity | |||
| return id; | |||
| } | |||
| public void setBookName(String bookName) | |||
| public String getKeyword() { | |||
| return keyword; | |||
| } | |||
| public void setKeyword(String keyword) { | |||
| this.keyword = keyword; | |||
| } | |||
| public Long getDeptId() { | |||
| return deptId; | |||
| } | |||
| public void setDeptId(Long deptId) { | |||
| this.deptId = deptId; | |||
| } | |||
| public void setBookName(String bookName) | |||
| { | |||
| this.bookName = bookName; | |||
| } | |||
| @@ -117,14 +139,15 @@ public class RwkAddressBook extends BaseEntity | |||
| @Override | |||
| public String toString() { | |||
| return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) | |||
| .append("id", getId()) | |||
| .append("bookName", getBookName()) | |||
| .append("information", getInformation()) | |||
| .append("addressGroup", getAddressGroup()) | |||
| .append("createDate", getCreateDate()) | |||
| .append("email", getEmail()) | |||
| .append("othersInf", getOthersInf()) | |||
| .toString(); | |||
| return "RwkAddressBook{" + | |||
| "id=" + id + | |||
| ", bookName='" + bookName + '\'' + | |||
| ", information='" + information + '\'' + | |||
| ", addressGroup=" + addressGroup + | |||
| ", createDate=" + createDate + | |||
| ", email='" + email + '\'' + | |||
| ", othersInf='" + othersInf + '\'' + | |||
| ", deptId=" + deptId + | |||
| '}'; | |||
| } | |||
| } | |||
| @@ -0,0 +1,95 @@ | |||
| package com.rwk.system.domain; | |||
| import org.apache.commons.lang3.builder.ToStringBuilder; | |||
| import org.apache.commons.lang3.builder.ToStringStyle; | |||
| import com.rwk.common.annotation.Excel; | |||
| import com.rwk.common.core.domain.BaseEntity; | |||
| import java.util.Date; | |||
| /** | |||
| * 【请填写功能名称】对象 rwk_address_group | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| public class RwkAddressGroup extends BaseEntity | |||
| { | |||
| private static final long serialVersionUID = 1L; | |||
| /** $column.columnComment */ | |||
| private Long id; | |||
| /** 分组名称 */ | |||
| @Excel(name = "分组名称") | |||
| private String groupName; | |||
| /** 分组归属账号 */ | |||
| @Excel(name = "分组归属账号") | |||
| private String groupByUser; | |||
| /** 分组创建时间 */ | |||
| @Excel(name = "分组创建时间") | |||
| private Date createTime; | |||
| /** 统计人数 */ | |||
| private Integer num; | |||
| @Override | |||
| public Date getCreateTime() { | |||
| return createTime; | |||
| } | |||
| @Override | |||
| public void setCreateTime(Date createTime) { | |||
| this.createTime = createTime; | |||
| } | |||
| public void setId(Long id) | |||
| { | |||
| this.id = id; | |||
| } | |||
| public Long getId() | |||
| { | |||
| return id; | |||
| } | |||
| public Integer getNum() { | |||
| return num; | |||
| } | |||
| public void setNum(Integer num) { | |||
| this.num = num; | |||
| } | |||
| public void setGroupName(String groupName) | |||
| { | |||
| this.groupName = groupName; | |||
| } | |||
| public String getGroupName() | |||
| { | |||
| return groupName; | |||
| } | |||
| public void setGroupByUser(String groupByUser) | |||
| { | |||
| this.groupByUser = groupByUser; | |||
| } | |||
| public String getGroupByUser() | |||
| { | |||
| return groupByUser; | |||
| } | |||
| @Override | |||
| public String toString() { | |||
| return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) | |||
| .append("id", getId()) | |||
| .append("groupName", getGroupName()) | |||
| .append("groupByUser", getGroupByUser()) | |||
| .append("createTime", getCreateTime()) | |||
| .toString(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,51 @@ | |||
| package com.rwk.system.domain; | |||
| import org.apache.commons.lang3.builder.ToStringBuilder; | |||
| import org.apache.commons.lang3.builder.ToStringStyle; | |||
| import com.rwk.common.annotation.Excel; | |||
| import com.rwk.common.core.domain.BaseEntity; | |||
| /** | |||
| * 【请填写功能名称】对象 rwk_book_group | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| public class RwkBookGroup extends BaseEntity | |||
| { | |||
| private static final long serialVersionUID = 1L; | |||
| /** 通讯录id */ | |||
| @Excel(name = "通讯录id") | |||
| private Long bookId; | |||
| /** 分组id */ | |||
| @Excel(name = "分组id") | |||
| private Long groupId; | |||
| public void setBookId(Long bookId) | |||
| { | |||
| this.bookId = bookId; | |||
| } | |||
| public Long getBookId() | |||
| { | |||
| return bookId; | |||
| } | |||
| public Long getGroupId() { | |||
| return groupId; | |||
| } | |||
| public void setGroupId(Long groupId) { | |||
| this.groupId = groupId; | |||
| } | |||
| @Override | |||
| public String toString() { | |||
| return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) | |||
| .append("bookId", getBookId()) | |||
| .append("groupId", getGroupId()) | |||
| .toString(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,4 @@ | |||
| package com.rwk.system.domain; | |||
| public class RwkBookGroupVo { | |||
| } | |||
| @@ -26,6 +26,7 @@ public interface RwkAddressBookMapper | |||
| * @return 通讯录主集合 | |||
| */ | |||
| public List<RwkAddressBook> selectRwkAddressBookList(RwkAddressBook rwkAddressBook); | |||
| public List<RwkAddressBook> selectRwkAddressBookListKeyWord(RwkAddressBook rwkAddressBook); | |||
| /** | |||
| * 新增通讯录主 | |||
| @@ -0,0 +1,61 @@ | |||
| package com.rwk.system.mapper; | |||
| import java.util.List; | |||
| import com.rwk.system.domain.RwkAddressGroup; | |||
| /** | |||
| * 【请填写功能名称】Mapper接口 | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| public interface RwkAddressGroupMapper | |||
| { | |||
| /** | |||
| * 查询【请填写功能名称】 | |||
| * | |||
| * @param id 【请填写功能名称】主键 | |||
| * @return 【请填写功能名称】 | |||
| */ | |||
| public RwkAddressGroup selectRwkAddressGroupById(Long id); | |||
| /** | |||
| * 查询分组列表 | |||
| */ | |||
| public List<RwkAddressGroup> selectRwkAddressGroupList(String username); | |||
| public List<RwkAddressGroup> selectRwkAddressGroupListAllByDept(Long deptId); | |||
| public List<RwkAddressGroup> selectRwkAddressGroupListLackByDept(Long deptId); | |||
| /** | |||
| * 新增【请填写功能名称】 | |||
| * | |||
| * @param rwkAddressGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int insertRwkAddressGroup(RwkAddressGroup rwkAddressGroup); | |||
| /** | |||
| * 修改【请填写功能名称】 | |||
| * | |||
| * @param rwkAddressGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int updateRwkAddressGroup(RwkAddressGroup rwkAddressGroup); | |||
| /** | |||
| * 删除【请填写功能名称】 | |||
| * | |||
| * @param id 【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkAddressGroupById(Long id); | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| * @param ids 需要删除的数据主键集合 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkAddressGroupByIds(String[] ids); | |||
| } | |||
| @@ -0,0 +1,65 @@ | |||
| package com.rwk.system.mapper; | |||
| import java.util.List; | |||
| import com.rwk.system.domain.RwkBookGroup; | |||
| import org.apache.ibatis.annotations.Param; | |||
| /** | |||
| * 【请填写功能名称】Mapper接口 | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| public interface RwkBookGroupMapper | |||
| { | |||
| /** | |||
| * 查询【请填写功能名称】 | |||
| * | |||
| * @param bookId 【请填写功能名称】主键 | |||
| * @return 【请填写功能名称】 | |||
| */ | |||
| public RwkBookGroup selectRwkBookGroupByBookId(Long bookId); | |||
| /** | |||
| * 查询【请填写功能名称】列表 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 【请填写功能名称】集合 | |||
| */ | |||
| public List<RwkBookGroup> selectRwkBookGroupList(RwkBookGroup rwkBookGroup); | |||
| /** | |||
| * 新增【请填写功能名称】 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int insertRwkBookGroup(RwkBookGroup rwkBookGroup); | |||
| public int insertRwkBookGroupList(@Param("rwkBookGroups") List<RwkBookGroup> rwkBookGroups); | |||
| /** | |||
| * 修改【请填写功能名称】 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | |||
| /** | |||
| * 删除【请填写功能名称】 | |||
| * | |||
| * @param bookId 【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkBookGroupByBookId(Long bookId); | |||
| public int deleteRwkBookGroupByGroupId(Long groupId); | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| * @param bookIds 需要删除的数据主键集合 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkBookGroupByBookIds(String[] bookIds); | |||
| } | |||
| @@ -0,0 +1,70 @@ | |||
| package com.rwk.system.service; | |||
| import java.util.List; | |||
| import com.rwk.system.domain.RwkAddressGroup; | |||
| /** | |||
| * 【请填写功能名称】Service接口 | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| public interface IRwkAddressGroupService | |||
| { | |||
| /** | |||
| * 查询【请填写功能名称】 | |||
| * | |||
| * @param id 【请填写功能名称】主键 | |||
| * @return 【请填写功能名称】 | |||
| */ | |||
| public RwkAddressGroup selectRwkAddressGroupById(Long id); | |||
| /** | |||
| * 查询通讯录分组列表 | |||
| * | |||
| * @param | |||
| * @return | |||
| */ | |||
| public List<RwkAddressGroup> selectRwkAddressGroupList(String username); | |||
| /** | |||
| * 查询通讯录分组列表 | |||
| * | |||
| * @param | |||
| * @return | |||
| */ | |||
| public List<RwkAddressGroup> selectRwkAddressGroupListAllByDept(Long deptId); | |||
| public List<RwkAddressGroup> selectRwkAddressGroupListLackByDept(Long deptId); | |||
| /** | |||
| * 新增【请填写功能名称】 | |||
| * | |||
| * @param rwkAddressGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int insertRwkAddressGroup(RwkAddressGroup rwkAddressGroup); | |||
| /** | |||
| * 修改【请填写功能名称】 | |||
| * | |||
| * @param rwkAddressGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int updateRwkAddressGroup(RwkAddressGroup rwkAddressGroup); | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| * @param ids 需要删除的【请填写功能名称】主键集合 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkAddressGroupByIds(String ids); | |||
| /** | |||
| * 删除【请填写功能名称】信息 | |||
| * | |||
| * @param id 【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkAddressGroupById(Long id); | |||
| } | |||
| @@ -0,0 +1,64 @@ | |||
| package com.rwk.system.service; | |||
| import java.util.List; | |||
| import com.rwk.system.domain.RwkBookGroup; | |||
| /** | |||
| * 【请填写功能名称】Service接口 | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| public interface IRwkBookGroupService | |||
| { | |||
| /** | |||
| * 查询【请填写功能名称】 | |||
| * | |||
| * @param bookId 【请填写功能名称】主键 | |||
| * @return 【请填写功能名称】 | |||
| */ | |||
| public RwkBookGroup selectRwkBookGroupByBookId(Long bookId); | |||
| /** | |||
| * 查询【请填写功能名称】列表 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 【请填写功能名称】集合 | |||
| */ | |||
| public List<RwkBookGroup> selectRwkBookGroupList(RwkBookGroup rwkBookGroup); | |||
| /** | |||
| * 新增【请填写功能名称】 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int insertRwkBookGroup(RwkBookGroup rwkBookGroup); | |||
| public int insertRwkBookGroupList(List<RwkBookGroup> rwkBookGroups); | |||
| /** | |||
| * 修改【请填写功能名称】 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| public int updateRwkBookGroup(RwkBookGroup rwkBookGroup); | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| * @param bookIds 需要删除的【请填写功能名称】主键集合 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkBookGroupByBookIds(String bookIds); | |||
| /** | |||
| * 删除【请填写功能名称】信息 | |||
| * | |||
| * @param bookId 【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| public int deleteRwkBookGroupByBookId(Long bookId); | |||
| public int deleteRwkBookGroupByGroupId(Long groupId); | |||
| } | |||
| @@ -1,6 +1,13 @@ | |||
| package com.rwk.system.service.impl; | |||
| import java.util.ArrayList; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| import com.rwk.common.core.domain.entity.SysUser; | |||
| import com.rwk.common.utils.ShiroUtils; | |||
| import com.rwk.system.domain.RwkBookGroup; | |||
| import com.rwk.system.mapper.RwkBookGroupMapper; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import com.rwk.system.mapper.RwkAddressBookMapper; | |||
| @@ -20,6 +27,9 @@ public class RwkAddressBookServiceImpl implements IRwkAddressBookService | |||
| @Autowired | |||
| private RwkAddressBookMapper rwkAddressBookMapper; | |||
| @Autowired | |||
| private RwkBookGroupMapper rwkBookGroupMapper; | |||
| /** | |||
| * 查询通讯录主 | |||
| * | |||
| @@ -41,7 +51,16 @@ public class RwkAddressBookServiceImpl implements IRwkAddressBookService | |||
| @Override | |||
| public List<RwkAddressBook> selectRwkAddressBookList(RwkAddressBook rwkAddressBook) | |||
| { | |||
| return rwkAddressBookMapper.selectRwkAddressBookList(rwkAddressBook); | |||
| List<RwkAddressBook> list = new ArrayList<RwkAddressBook>(); | |||
| String keyword = rwkAddressBook.getKeyword(); | |||
| SysUser sysUser = ShiroUtils.getSysUser(); | |||
| rwkAddressBook.setDeptId(sysUser.getDeptId()); | |||
| if (keyword.equals("未分组联系人")){ | |||
| list= rwkAddressBookMapper.selectRwkAddressBookListKeyWord(rwkAddressBook); | |||
| }else { | |||
| list= rwkAddressBookMapper.selectRwkAddressBookList(rwkAddressBook); | |||
| } | |||
| return list; | |||
| } | |||
| /** | |||
| @@ -53,7 +72,13 @@ public class RwkAddressBookServiceImpl implements IRwkAddressBookService | |||
| @Override | |||
| public int insertRwkAddressBook(RwkAddressBook rwkAddressBook) | |||
| { | |||
| return rwkAddressBookMapper.insertRwkAddressBook(rwkAddressBook); | |||
| RwkBookGroup rbg= new RwkBookGroup(); | |||
| rbg.setGroupId(rwkAddressBook.getAddressGroup()); | |||
| rwkAddressBookMapper.insertRwkAddressBook(rwkAddressBook); | |||
| rbg.setBookId(rwkAddressBook.getId()); | |||
| rwkAddressBook.setCreateDate(new Date()); | |||
| return rwkBookGroupMapper.insertRwkBookGroup(rbg); | |||
| } | |||
| /** | |||
| @@ -77,6 +102,7 @@ public class RwkAddressBookServiceImpl implements IRwkAddressBookService | |||
| @Override | |||
| public int deleteRwkAddressBookByIds(String ids) | |||
| { | |||
| rwkBookGroupMapper.deleteRwkBookGroupByBookIds(Convert.toStrArray(ids)); | |||
| return rwkAddressBookMapper.deleteRwkAddressBookByIds(Convert.toStrArray(ids)); | |||
| } | |||
| @@ -0,0 +1,102 @@ | |||
| package com.rwk.system.service.impl; | |||
| import java.util.List; | |||
| import com.rwk.common.utils.DateUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import com.rwk.system.mapper.RwkAddressGroupMapper; | |||
| import com.rwk.system.domain.RwkAddressGroup; | |||
| import com.rwk.system.service.IRwkAddressGroupService; | |||
| import com.rwk.common.core.text.Convert; | |||
| /** | |||
| * 【请填写功能名称】Service业务层处理 | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| @Service | |||
| public class RwkAddressGroupServiceImpl implements IRwkAddressGroupService | |||
| { | |||
| @Autowired | |||
| private RwkAddressGroupMapper rwkAddressGroupMapper; | |||
| /** | |||
| * 查询【请填写功能名称】 | |||
| * | |||
| * @param id 【请填写功能名称】主键 | |||
| * @return 【请填写功能名称】 | |||
| */ | |||
| @Override | |||
| public RwkAddressGroup selectRwkAddressGroupById(Long id) | |||
| { | |||
| return rwkAddressGroupMapper.selectRwkAddressGroupById(id); | |||
| } | |||
| @Override | |||
| public List<RwkAddressGroup> selectRwkAddressGroupList(String username) | |||
| { | |||
| return rwkAddressGroupMapper.selectRwkAddressGroupList(username); | |||
| } | |||
| @Override | |||
| public List<RwkAddressGroup> selectRwkAddressGroupListAllByDept(Long deptId) | |||
| { | |||
| return rwkAddressGroupMapper.selectRwkAddressGroupListAllByDept(deptId); | |||
| } | |||
| @Override | |||
| public List<RwkAddressGroup> selectRwkAddressGroupListLackByDept(Long deptId) | |||
| { | |||
| return rwkAddressGroupMapper.selectRwkAddressGroupListLackByDept(deptId); | |||
| } | |||
| /** | |||
| * 新增【请填写功能名称】 | |||
| * | |||
| * @param rwkAddressGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int insertRwkAddressGroup(RwkAddressGroup rwkAddressGroup) | |||
| { | |||
| rwkAddressGroup.setCreateTime(DateUtils.getNowDate()); | |||
| return rwkAddressGroupMapper.insertRwkAddressGroup(rwkAddressGroup); | |||
| } | |||
| /** | |||
| * 修改【请填写功能名称】 | |||
| * | |||
| * @param rwkAddressGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int updateRwkAddressGroup(RwkAddressGroup rwkAddressGroup) | |||
| { | |||
| return rwkAddressGroupMapper.updateRwkAddressGroup(rwkAddressGroup); | |||
| } | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| * @param ids 需要删除的【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int deleteRwkAddressGroupByIds(String ids) | |||
| { | |||
| return rwkAddressGroupMapper.deleteRwkAddressGroupByIds(Convert.toStrArray(ids)); | |||
| } | |||
| /** | |||
| * 删除【请填写功能名称】信息 | |||
| * | |||
| * @param id 【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int deleteRwkAddressGroupById(Long id) | |||
| { | |||
| return rwkAddressGroupMapper.deleteRwkAddressGroupById(id); | |||
| } | |||
| } | |||
| @@ -0,0 +1,114 @@ | |||
| package com.rwk.system.service.impl; | |||
| import java.util.List; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import com.rwk.system.mapper.RwkBookGroupMapper; | |||
| import com.rwk.system.domain.RwkBookGroup; | |||
| import com.rwk.system.service.IRwkBookGroupService; | |||
| import com.rwk.common.core.text.Convert; | |||
| /** | |||
| * 【请填写功能名称】Service业务层处理 | |||
| * | |||
| * @author ruoyi | |||
| * @date 2024-12-16 | |||
| */ | |||
| @Service | |||
| public class RwkBookGroupServiceImpl implements IRwkBookGroupService | |||
| { | |||
| @Autowired | |||
| private RwkBookGroupMapper rwkBookGroupMapper; | |||
| /** | |||
| * 查询【请填写功能名称】 | |||
| * | |||
| * @param bookId 【请填写功能名称】主键 | |||
| * @return 【请填写功能名称】 | |||
| */ | |||
| @Override | |||
| public RwkBookGroup selectRwkBookGroupByBookId(Long bookId) | |||
| { | |||
| return rwkBookGroupMapper.selectRwkBookGroupByBookId(bookId); | |||
| } | |||
| /** | |||
| * 查询【请填写功能名称】列表 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 【请填写功能名称】 | |||
| */ | |||
| @Override | |||
| public List<RwkBookGroup> selectRwkBookGroupList(RwkBookGroup rwkBookGroup) | |||
| { | |||
| return rwkBookGroupMapper.selectRwkBookGroupList(rwkBookGroup); | |||
| } | |||
| /** | |||
| * 新增【请填写功能名称】 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int insertRwkBookGroup(RwkBookGroup rwkBookGroup) | |||
| { | |||
| return rwkBookGroupMapper.insertRwkBookGroup(rwkBookGroup); | |||
| } | |||
| /** | |||
| * 新增【请填写功能名称】 | |||
| * | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int insertRwkBookGroupList(List<RwkBookGroup> rwkBookGroups) | |||
| { | |||
| return rwkBookGroupMapper.insertRwkBookGroupList(rwkBookGroups); | |||
| } | |||
| /** | |||
| * 修改【请填写功能名称】 | |||
| * | |||
| * @param rwkBookGroup 【请填写功能名称】 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int updateRwkBookGroup(RwkBookGroup rwkBookGroup) | |||
| { | |||
| return rwkBookGroupMapper.updateRwkBookGroup(rwkBookGroup); | |||
| } | |||
| /** | |||
| * 批量删除【请填写功能名称】 | |||
| * | |||
| * @param bookIds 需要删除的【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int deleteRwkBookGroupByBookIds(String bookIds) | |||
| { | |||
| return rwkBookGroupMapper.deleteRwkBookGroupByBookIds(Convert.toStrArray(bookIds)); | |||
| } | |||
| /** | |||
| * 删除【请填写功能名称】信息 | |||
| * | |||
| * @param bookId 【请填写功能名称】主键 | |||
| * @return 结果 | |||
| */ | |||
| @Override | |||
| public int deleteRwkBookGroupByBookId(Long bookId) | |||
| { | |||
| return rwkBookGroupMapper.deleteRwkBookGroupByBookId(bookId); | |||
| } | |||
| @Override | |||
| public int deleteRwkBookGroupByGroupId(Long groupId) | |||
| { | |||
| return rwkBookGroupMapper.deleteRwkBookGroupByGroupId(groupId); | |||
| } | |||
| } | |||
| @@ -12,10 +12,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| <result property="createDate" column="create_date" /> | |||
| <result property="email" column="email" /> | |||
| <result property="othersInf" column="others_inf" /> | |||
| <result property="deptId" column="dept_id" /> | |||
| </resultMap> | |||
| <sql id="selectRwkAddressBookVo"> | |||
| select id, book_name, information, address_group, create_date, email, others_inf from rwk_address_book | |||
| select id, book_name, information, address_group, create_date, email, others_inf,dept_id from rwk_address_book | |||
| </sql> | |||
| <select id="selectRwkAddressBookList" parameterType="RwkAddressBook" resultMap="RwkAddressBookResult"> | |||
| @@ -23,12 +24,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| <where> | |||
| <if test="bookName != null and bookName != ''"> and book_name like concat('%', #{bookName}, '%')</if> | |||
| <if test="information != null and information != ''"> and information = #{information}</if> | |||
| <if test="addressGroup != null "> and address_group = #{addressGroup}</if> | |||
| <if test="createDate != null "> and create_date = #{createDate}</if> | |||
| <if test="email != null and email != ''"> and email = #{email}</if> | |||
| <if test="othersInf != null and othersInf != ''"> and others_inf = #{othersInf}</if> | |||
| <if test="deptId != null and deptId != ''"> and dept_id = #{deptId}</if> | |||
| <if test="addressGroup != null and addressGroup != ''">and id in( select book_id from RWK_BOOK_GROUP where group_id=#{addressGroup})</if> | |||
| </where> | |||
| </select> | |||
| <select id="selectRwkAddressBookListKeyWord" parameterType="RwkAddressBook" resultMap="RwkAddressBookResult"> | |||
| <include refid="selectRwkAddressBookVo"/> | |||
| where dept_id=#{deptId} | |||
| <if test="bookName != null and bookName != ''"> and book_name like concat('%', #{bookName}, '%')</if> | |||
| <if test="addressGroup != null and addressGroup != ''">and id not in( select book_id from RWK_BOOK_GROUP where group_id=#{addressGroup})</if> | |||
| </select> | |||
| <select id="selectRwkAddressBookById" parameterType="Long" resultMap="RwkAddressBookResult"> | |||
| <include refid="selectRwkAddressBookVo"/> | |||
| @@ -44,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| <if test="createDate != null">create_date,</if> | |||
| <if test="email != null">email,</if> | |||
| <if test="othersInf != null">others_inf,</if> | |||
| <if test="deptId != null">dept_id,</if> | |||
| </trim> | |||
| <trim prefix="values (" suffix=")" suffixOverrides=","> | |||
| <if test="bookName != null">#{bookName},</if> | |||
| @@ -52,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| <if test="createDate != null">#{createDate},</if> | |||
| <if test="email != null">#{email},</if> | |||
| <if test="othersInf != null">#{othersInf},</if> | |||
| <if test="deptId != null">#{deptId},</if> | |||
| </trim> | |||
| </insert> | |||
| @@ -0,0 +1,79 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <!DOCTYPE mapper | |||
| PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||
| <mapper namespace="com.rwk.system.mapper.RwkAddressGroupMapper"> | |||
| <resultMap type="RwkAddressGroup" id="RwkAddressGroupResult"> | |||
| <result property="id" column="id" /> | |||
| <result property="groupName" column="group_name" /> | |||
| <result property="groupByUser" column="group_by_user" /> | |||
| <result property="createTime" column="create_time" /> | |||
| <result property="num" column="num" /> | |||
| </resultMap> | |||
| <sql id="selectRwkAddressGroupVo"> | |||
| select id, group_name, group_by_user,create_time from rwk_address_group | |||
| </sql> | |||
| <select id="selectRwkAddressGroupList" parameterType="RwkAddressGroup" resultMap="RwkAddressGroupResult"> | |||
| select | |||
| ag.id,ag.group_name,IFNULL(bg.num, 0) as num | |||
| from RWK_ADDRESS_GROUP ag | |||
| left join | |||
| (select group_id,count(*) as num from RWK_BOOK_GROUP group by group_id) bg | |||
| on ag.id=bg.group_id | |||
| where ag.group_by_user = #{groupByUser} | |||
| </select> | |||
| <select id="selectRwkAddressGroupListAllByDept" parameterType="Long" resultMap="RwkAddressGroupResult"> | |||
| select dept_id ,'所有联系人' as group_name,IFNULL(count(*), 0) as num from RWK_ADDRESS_BOOK where dept_id=#{deptId} group by dept_id | |||
| </select> | |||
| <select id="selectRwkAddressGroupListLackByDept" parameterType="Long" resultMap="RwkAddressGroupResult"> | |||
| select dept_id ,'未分组联系人' as group_name,IFNULL(count(*), 0) as num from RWK_ADDRESS_BOOK where address_group is null and dept_id=#{deptId} group by dept_id | |||
| </select> | |||
| <select id="selectRwkAddressGroupById" parameterType="Long" resultMap="RwkAddressGroupResult"> | |||
| <include refid="selectRwkAddressGroupVo"/> | |||
| where id = #{id} | |||
| </select> | |||
| <insert id="insertRwkAddressGroup" parameterType="RwkAddressGroup" useGeneratedKeys="true" keyProperty="id"> | |||
| insert into rwk_address_group | |||
| <trim prefix="(" suffix=")" suffixOverrides=","> | |||
| <if test="groupName != null">group_name,</if> | |||
| <if test="groupByUser != null">group_by_user,</if> | |||
| <if test="createTime != null">create_time,</if> | |||
| </trim> | |||
| <trim prefix="values (" suffix=")" suffixOverrides=","> | |||
| <if test="groupName != null">#{groupName},</if> | |||
| <if test="groupByUser != null">#{groupByUser},</if> | |||
| <if test="createTime != null">#{createTime},</if> | |||
| </trim> | |||
| </insert> | |||
| <update id="updateRwkAddressGroup" parameterType="RwkAddressGroup"> | |||
| update rwk_address_group | |||
| <trim prefix="SET" suffixOverrides=","> | |||
| <if test="groupName != null">group_name = #{groupName},</if> | |||
| <if test="groupByUser != null">group_by_user = #{groupByUser},</if> | |||
| <if test="createTime != null">create_time = #{createTime},</if> | |||
| </trim> | |||
| where id = #{id} | |||
| </update> | |||
| <delete id="deleteRwkAddressGroupById" parameterType="Long"> | |||
| delete from rwk_address_group where id = #{id} | |||
| </delete> | |||
| <delete id="deleteRwkAddressGroupByIds" parameterType="String"> | |||
| delete from rwk_address_group where id in | |||
| <foreach item="id" collection="array" open="(" separator="," close=")"> | |||
| #{id} | |||
| </foreach> | |||
| </delete> | |||
| </mapper> | |||
| @@ -0,0 +1,73 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <!DOCTYPE mapper | |||
| PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||
| <mapper namespace="com.rwk.system.mapper.RwkBookGroupMapper"> | |||
| <resultMap type="RwkBookGroup" id="RwkBookGroupResult"> | |||
| <result property="bookId" column="book_id" /> | |||
| <result property="groupId" column="group_id" /> | |||
| </resultMap> | |||
| <sql id="selectRwkBookGroupVo"> | |||
| select book_id, group_id from rwk_book_group | |||
| </sql> | |||
| <select id="selectRwkBookGroupList" parameterType="RwkBookGroup" resultMap="RwkBookGroupResult"> | |||
| <include refid="selectRwkBookGroupVo"/> | |||
| <where> | |||
| <if test="bookId != null "> and book_id = #{bookId}</if> | |||
| <if test="groupId != null and groupId != ''"> and group_id = #{groupId}</if> | |||
| </where> | |||
| </select> | |||
| <select id="selectRwkBookGroupByBookId" parameterType="Long" resultMap="RwkBookGroupResult"> | |||
| <include refid="selectRwkBookGroupVo"/> | |||
| where book_id = #{bookId} | |||
| </select> | |||
| <insert id="insertRwkBookGroup" parameterType="RwkBookGroup"> | |||
| insert into rwk_book_group | |||
| <trim prefix="(" suffix=")" suffixOverrides=","> | |||
| <if test="bookId != null">book_id,</if> | |||
| <if test="groupId != null">group_id,</if> | |||
| </trim> | |||
| <trim prefix="values (" suffix=")" suffixOverrides=","> | |||
| <if test="bookId != null">#{bookId},</if> | |||
| <if test="groupId != null">#{groupId},</if> | |||
| </trim> | |||
| </insert> | |||
| <insert id="insertRwkBookGroupList" > | |||
| insert into rwk_book_group (book_id,group_id) | |||
| values | |||
| <foreach collection="rwkBookGroups" item="rwkBookGroup" separator=","> | |||
| (#{rwkBookGroup.bookId},#{rwkBookGroup.groupId}) | |||
| </foreach> | |||
| </insert> | |||
| <update id="updateRwkBookGroup" parameterType="RwkBookGroup"> | |||
| update rwk_book_group | |||
| <trim prefix="SET" suffixOverrides=","> | |||
| <if test="groupId != null">group_id = #{groupId},</if> | |||
| </trim> | |||
| where book_id = #{bookId} | |||
| </update> | |||
| <delete id="deleteRwkBookGroupByBookId" parameterType="Long"> | |||
| delete from rwk_book_group where book_id = #{bookId} | |||
| </delete> | |||
| <delete id="deleteRwkBookGroupByGroupId" parameterType="Long"> | |||
| delete from rwk_book_group where group_id = #{groupId} | |||
| </delete> | |||
| <delete id="deleteRwkBookGroupByBookIds" parameterType="String"> | |||
| delete from rwk_book_group where book_id in | |||
| <foreach item="bookId" collection="array" open="(" separator="," close=")"> | |||
| #{bookId} | |||
| </foreach> | |||
| </delete> | |||
| </mapper> | |||