From 456c36f251ee36edba5db02757e5e31fdab81952 Mon Sep 17 00:00:00 2001 From: luyue123456 <1398150030@qq.com> Date: Wed, 18 Dec 2024 13:57:32 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=AE=AF=E5=BD=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ability/RwkAddressBookController.java | 185 ++++++++++++++-- .../resources/static/ruoyi/css/address.css | 4 + .../templates/system/addressbook/addbook.html | 38 +++- .../system/addressbook/addgroup.html | 19 +- .../system/addressbook/addressbook.html | 204 ++++++++++++++++-- .../system/addressbook/editbook.html | 70 ++++++ .../system/addressbook/groupTree.html | 68 ++++++ .../system/addressbook/groupTreeMove.html | 62 ++++++ .../com/rwk/system/domain/RwkAddressBook.java | 43 +++- .../rwk/system/domain/RwkAddressGroup.java | 95 ++++++++ .../com/rwk/system/domain/RwkBookGroup.java | 51 +++++ .../com/rwk/system/domain/RwkBookGroupVo.java | 4 + .../system/mapper/RwkAddressBookMapper.java | 1 + .../system/mapper/RwkAddressGroupMapper.java | 61 ++++++ .../rwk/system/mapper/RwkBookGroupMapper.java | 65 ++++++ .../service/IRwkAddressGroupService.java | 70 ++++++ .../system/service/IRwkBookGroupService.java | 64 ++++++ .../impl/RwkAddressBookServiceImpl.java | 30 ++- .../impl/RwkAddressGroupServiceImpl.java | 102 +++++++++ .../service/impl/RwkBookGroupServiceImpl.java | 114 ++++++++++ .../mapper/system/RwkAddressBookMapper.xml | 18 +- .../mapper/system/RwkAddressGroupMapper.xml | 79 +++++++ .../mapper/system/RwkBookGroupMapper.xml | 73 +++++++ 23 files changed, 1459 insertions(+), 61 deletions(-) create mode 100644 rwk-admin/src/main/resources/templates/system/addressbook/editbook.html create mode 100644 rwk-admin/src/main/resources/templates/system/addressbook/groupTree.html create mode 100644 rwk-admin/src/main/resources/templates/system/addressbook/groupTreeMove.html create mode 100644 rwk-system/src/main/java/com/rwk/system/domain/RwkAddressGroup.java create mode 100644 rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroup.java create mode 100644 rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroupVo.java create mode 100644 rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressGroupMapper.java create mode 100644 rwk-system/src/main/java/com/rwk/system/mapper/RwkBookGroupMapper.java create mode 100644 rwk-system/src/main/java/com/rwk/system/service/IRwkAddressGroupService.java create mode 100644 rwk-system/src/main/java/com/rwk/system/service/IRwkBookGroupService.java create mode 100644 rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressGroupServiceImpl.java create mode 100644 rwk-system/src/main/java/com/rwk/system/service/impl/RwkBookGroupServiceImpl.java create mode 100644 rwk-system/src/main/resources/mapper/system/RwkAddressGroupMapper.xml create mode 100644 rwk-system/src/main/resources/mapper/system/RwkBookGroupMapper.xml diff --git a/rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkAddressBookController.java b/rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkAddressBookController.java index b683390..919f039 100644 --- a/rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkAddressBookController.java +++ b/rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkAddressBookController.java @@ -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 resultGroup = new LinkedList<>(); + SysUser sysUser = ShiroUtils.getSysUser(); + Long deptId = sysUser.getDept().getDeptId(); + // 所有联系人 + List rwkAddressGroups1 = rwkAddressGroupService.selectRwkAddressGroupListAllByDept(deptId); + // 未分组联系人(停用) +// List rwkAddressGroups2 = rwkAddressGroupService.selectRwkAddressGroupListLackByDept(deptId); +// resultGroup.addAll(rwkAddressGroups2); + // 分组联系人 + List 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 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 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 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)); + } } diff --git a/rwk-admin/src/main/resources/static/ruoyi/css/address.css b/rwk-admin/src/main/resources/static/ruoyi/css/address.css index 96f2057..6cc698c 100644 --- a/rwk-admin/src/main/resources/static/ruoyi/css/address.css +++ b/rwk-admin/src/main/resources/static/ruoyi/css/address.css @@ -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; } diff --git a/rwk-admin/src/main/resources/templates/system/addressbook/addbook.html b/rwk-admin/src/main/resources/templates/system/addressbook/addbook.html index aa55d5d..3d2f0d5 100644 --- a/rwk-admin/src/main/resources/templates/system/addressbook/addbook.html +++ b/rwk-admin/src/main/resources/templates/system/addressbook/addbook.html @@ -12,14 +12,16 @@ -
+ +
+
*姓名:
- +
@@ -28,7 +30,7 @@ 电话:
- +
@@ -37,22 +39,48 @@ Email:
- +
+
+
+ 其他联系方式: +
+
+ +
+
+
分组归类:
- +
diff --git a/rwk-admin/src/main/resources/templates/system/addressbook/addgroup.html b/rwk-admin/src/main/resources/templates/system/addressbook/addgroup.html index 4c72490..1955fd2 100644 --- a/rwk-admin/src/main/resources/templates/system/addressbook/addgroup.html +++ b/rwk-admin/src/main/resources/templates/system/addressbook/addgroup.html @@ -13,18 +13,33 @@ -
+
- +
\ No newline at end of file diff --git a/rwk-admin/src/main/resources/templates/system/addressbook/addressbook.html b/rwk-admin/src/main/resources/templates/system/addressbook/addressbook.html index 26bfd62..7c4b475 100644 --- a/rwk-admin/src/main/resources/templates/system/addressbook/addressbook.html +++ b/rwk-admin/src/main/resources/templates/system/addressbook/addressbook.html @@ -16,13 +16,15 @@
  • - - +
  • + +
    @@ -40,20 +42,23 @@ 使用帮助
    -
    +
    新建联系人 - + 删除联系人 创建组 - + + 删除组 + + 复制到组 - + 移动到组 @@ -68,12 +73,12 @@
      -
    • 所有联系人(11)
    • -
    • 分组1(4)
    • -
    • 分组2(7)
    • -
    • 分组3(1)
    • -
    • 分组4(0)
    • -
    • 未分组联系人(1)
    • +
    • +
      [[${item.groupName}]]([[${item.num}]])
      +
    • +
    • +
      [[${item.groupName}]]([[${item.num}]])
      +
    @@ -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('
    编辑 '); - actions.push('|'); - actions.push('详情'); + actions.push('编辑 '); + if (operateflag){ + actions.push('|'); + actions.push('删除关系'); + } 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("确认要删除选中的["+operateAddressGroupName+"]吗?
    注:其分组下的成员关系都将被删除", 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); + }); } \ No newline at end of file diff --git a/rwk-admin/src/main/resources/templates/system/addressbook/editbook.html b/rwk-admin/src/main/resources/templates/system/addressbook/editbook.html new file mode 100644 index 0000000..81d970a --- /dev/null +++ b/rwk-admin/src/main/resources/templates/system/addressbook/editbook.html @@ -0,0 +1,70 @@ + + + + + + + + + +
    +
    + +
    +
    +
    + *姓名: +
    +
    + +
    +
    + +
    +
    + 电话: +
    +
    + +
    +
    + +
    +
    + Email: +
    +
    + +
    +
    + +
    +
    + 其他联系方式: +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/rwk-admin/src/main/resources/templates/system/addressbook/groupTree.html b/rwk-admin/src/main/resources/templates/system/addressbook/groupTree.html new file mode 100644 index 0000000..d2e4151 --- /dev/null +++ b/rwk-admin/src/main/resources/templates/system/addressbook/groupTree.html @@ -0,0 +1,68 @@ + + + + + + + + + +
    + + + + + + +
    + + +
    +
    +
    +
      +
    • +
      [[${item.groupName}]]
      +
    • +
    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/rwk-admin/src/main/resources/templates/system/addressbook/groupTreeMove.html b/rwk-admin/src/main/resources/templates/system/addressbook/groupTreeMove.html new file mode 100644 index 0000000..61ef5b2 --- /dev/null +++ b/rwk-admin/src/main/resources/templates/system/addressbook/groupTreeMove.html @@ -0,0 +1,62 @@ + + + + + + + + + +
    + + + + + + +
    + + + +
    +
    +
    +
      +
    • +
      [[${item.groupName}]]
      +
    • +
    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/rwk-system/src/main/java/com/rwk/system/domain/RwkAddressBook.java b/rwk-system/src/main/java/com/rwk/system/domain/RwkAddressBook.java index dbfe444..267451a 100644 --- a/rwk-system/src/main/java/com/rwk/system/domain/RwkAddressBook.java +++ b/rwk-system/src/main/java/com/rwk/system/domain/RwkAddressBook.java @@ -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 + + '}'; } } diff --git a/rwk-system/src/main/java/com/rwk/system/domain/RwkAddressGroup.java b/rwk-system/src/main/java/com/rwk/system/domain/RwkAddressGroup.java new file mode 100644 index 0000000..38cf4fb --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/domain/RwkAddressGroup.java @@ -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(); + } +} diff --git a/rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroup.java b/rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroup.java new file mode 100644 index 0000000..aaeb7a0 --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroup.java @@ -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(); + } +} diff --git a/rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroupVo.java b/rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroupVo.java new file mode 100644 index 0000000..1683b3e --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroupVo.java @@ -0,0 +1,4 @@ +package com.rwk.system.domain; + +public class RwkBookGroupVo { +} diff --git a/rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressBookMapper.java b/rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressBookMapper.java index 4e24f22..32c371b 100644 --- a/rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressBookMapper.java +++ b/rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressBookMapper.java @@ -26,6 +26,7 @@ public interface RwkAddressBookMapper * @return 通讯录主集合 */ public List selectRwkAddressBookList(RwkAddressBook rwkAddressBook); + public List selectRwkAddressBookListKeyWord(RwkAddressBook rwkAddressBook); /** * 新增通讯录主 diff --git a/rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressGroupMapper.java b/rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressGroupMapper.java new file mode 100644 index 0000000..af0b2ec --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressGroupMapper.java @@ -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 selectRwkAddressGroupList(String username); + + public List selectRwkAddressGroupListAllByDept(Long deptId); + public List 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); +} diff --git a/rwk-system/src/main/java/com/rwk/system/mapper/RwkBookGroupMapper.java b/rwk-system/src/main/java/com/rwk/system/mapper/RwkBookGroupMapper.java new file mode 100644 index 0000000..87792be --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/mapper/RwkBookGroupMapper.java @@ -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 selectRwkBookGroupList(RwkBookGroup rwkBookGroup); + + /** + * 新增【请填写功能名称】 + * + * @param rwkBookGroup 【请填写功能名称】 + * @return 结果 + */ + public int insertRwkBookGroup(RwkBookGroup rwkBookGroup); + public int insertRwkBookGroupList(@Param("rwkBookGroups") List 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); +} diff --git a/rwk-system/src/main/java/com/rwk/system/service/IRwkAddressGroupService.java b/rwk-system/src/main/java/com/rwk/system/service/IRwkAddressGroupService.java new file mode 100644 index 0000000..d672f7d --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/service/IRwkAddressGroupService.java @@ -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 selectRwkAddressGroupList(String username); + + /** + * 查询通讯录分组列表 + * + * @param + * @return + */ + public List selectRwkAddressGroupListAllByDept(Long deptId); + public List 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); +} diff --git a/rwk-system/src/main/java/com/rwk/system/service/IRwkBookGroupService.java b/rwk-system/src/main/java/com/rwk/system/service/IRwkBookGroupService.java new file mode 100644 index 0000000..9b257c3 --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/service/IRwkBookGroupService.java @@ -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 selectRwkBookGroupList(RwkBookGroup rwkBookGroup); + + /** + * 新增【请填写功能名称】 + * + * @param rwkBookGroup 【请填写功能名称】 + * @return 结果 + */ + public int insertRwkBookGroup(RwkBookGroup rwkBookGroup); + public int insertRwkBookGroupList(List 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); +} diff --git a/rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressBookServiceImpl.java b/rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressBookServiceImpl.java index 7b81e3c..e53c4f5 100644 --- a/rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressBookServiceImpl.java +++ b/rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressBookServiceImpl.java @@ -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 selectRwkAddressBookList(RwkAddressBook rwkAddressBook) { - return rwkAddressBookMapper.selectRwkAddressBookList(rwkAddressBook); + List list = new ArrayList(); + 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)); } diff --git a/rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressGroupServiceImpl.java b/rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressGroupServiceImpl.java new file mode 100644 index 0000000..6023f42 --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressGroupServiceImpl.java @@ -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 selectRwkAddressGroupList(String username) + { + return rwkAddressGroupMapper.selectRwkAddressGroupList(username); + } + + @Override + public List selectRwkAddressGroupListAllByDept(Long deptId) + { + return rwkAddressGroupMapper.selectRwkAddressGroupListAllByDept(deptId); + } + + @Override + public List 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); + } +} diff --git a/rwk-system/src/main/java/com/rwk/system/service/impl/RwkBookGroupServiceImpl.java b/rwk-system/src/main/java/com/rwk/system/service/impl/RwkBookGroupServiceImpl.java new file mode 100644 index 0000000..5ce7c85 --- /dev/null +++ b/rwk-system/src/main/java/com/rwk/system/service/impl/RwkBookGroupServiceImpl.java @@ -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 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 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); + } +} diff --git a/rwk-system/src/main/resources/mapper/system/RwkAddressBookMapper.xml b/rwk-system/src/main/resources/mapper/system/RwkAddressBookMapper.xml index ce9bbbd..b263778 100644 --- a/rwk-system/src/main/resources/mapper/system/RwkAddressBookMapper.xml +++ b/rwk-system/src/main/resources/mapper/system/RwkAddressBookMapper.xml @@ -12,10 +12,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - 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 + + + + + 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} + + + + + + + + + + + + insert into rwk_address_group + + group_name, + group_by_user, + create_time, + + + #{groupName}, + #{groupByUser}, + #{createTime}, + + + + + update rwk_address_group + + group_name = #{groupName}, + group_by_user = #{groupByUser}, + create_time = #{createTime}, + + where id = #{id} + + + + delete from rwk_address_group where id = #{id} + + + + delete from rwk_address_group where id in + + #{id} + + + + \ No newline at end of file diff --git a/rwk-system/src/main/resources/mapper/system/RwkBookGroupMapper.xml b/rwk-system/src/main/resources/mapper/system/RwkBookGroupMapper.xml new file mode 100644 index 0000000..16cdffe --- /dev/null +++ b/rwk-system/src/main/resources/mapper/system/RwkBookGroupMapper.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + select book_id, group_id from rwk_book_group + + + + + + + + insert into rwk_book_group + + book_id, + group_id, + + + #{bookId}, + #{groupId}, + + + + + insert into rwk_book_group (book_id,group_id) + values + + (#{rwkBookGroup.bookId},#{rwkBookGroup.groupId}) + + + + + + update rwk_book_group + + group_id = #{groupId}, + + where book_id = #{bookId} + + + + delete from rwk_book_group where book_id = #{bookId} + + + + delete from rwk_book_group where group_id = #{groupId} + + + + delete from rwk_book_group where book_id in + + #{bookId} + + + + \ No newline at end of file