2 Cometimentos

23 ficheiros alterados com 1459 adições e 61 eliminações
  1. +165
    -20
      rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkAddressBookController.java
  2. +4
    -0
      rwk-admin/src/main/resources/static/ruoyi/css/address.css
  3. +33
    -5
      rwk-admin/src/main/resources/templates/system/addressbook/addbook.html
  4. +17
    -2
      rwk-admin/src/main/resources/templates/system/addressbook/addgroup.html
  5. +184
    -20
      rwk-admin/src/main/resources/templates/system/addressbook/addressbook.html
  6. +70
    -0
      rwk-admin/src/main/resources/templates/system/addressbook/editbook.html
  7. +68
    -0
      rwk-admin/src/main/resources/templates/system/addressbook/groupTree.html
  8. +62
    -0
      rwk-admin/src/main/resources/templates/system/addressbook/groupTreeMove.html
  9. +33
    -10
      rwk-system/src/main/java/com/rwk/system/domain/RwkAddressBook.java
  10. +95
    -0
      rwk-system/src/main/java/com/rwk/system/domain/RwkAddressGroup.java
  11. +51
    -0
      rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroup.java
  12. +4
    -0
      rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroupVo.java
  13. +1
    -0
      rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressBookMapper.java
  14. +61
    -0
      rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressGroupMapper.java
  15. +65
    -0
      rwk-system/src/main/java/com/rwk/system/mapper/RwkBookGroupMapper.java
  16. +70
    -0
      rwk-system/src/main/java/com/rwk/system/service/IRwkAddressGroupService.java
  17. +64
    -0
      rwk-system/src/main/java/com/rwk/system/service/IRwkBookGroupService.java
  18. +28
    -2
      rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressBookServiceImpl.java
  19. +102
    -0
      rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressGroupServiceImpl.java
  20. +114
    -0
      rwk-system/src/main/java/com/rwk/system/service/impl/RwkBookGroupServiceImpl.java
  21. +16
    -2
      rwk-system/src/main/resources/mapper/system/RwkAddressBookMapper.xml
  22. +79
    -0
      rwk-system/src/main/resources/mapper/system/RwkAddressGroupMapper.xml
  23. +73
    -0
      rwk-system/src/main/resources/mapper/system/RwkBookGroupMapper.xml

+ 165
- 20
rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkAddressBookController.java Ver ficheiro

@@ -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));
}
}

+ 4
- 0
rwk-admin/src/main/resources/static/ruoyi/css/address.css Ver ficheiro

@@ -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;
}


+ 33
- 5
rwk-admin/src/main/resources/templates/system/addressbook/addbook.html Ver ficheiro

@@ -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>

+ 17
- 2
rwk-admin/src/main/resources/templates/system/addressbook/addgroup.html Ver ficheiro

@@ -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>

+ 184
- 20
rwk-admin/src/main/resources/templates/system/addressbook/addressbook.html Ver ficheiro

@@ -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>

+ 70
- 0
rwk-admin/src/main/resources/templates/system/addressbook/editbook.html Ver ficheiro

@@ -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>

+ 68
- 0
rwk-admin/src/main/resources/templates/system/addressbook/groupTree.html Ver ficheiro

@@ -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>

+ 62
- 0
rwk-admin/src/main/resources/templates/system/addressbook/groupTreeMove.html Ver ficheiro

@@ -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>

+ 33
- 10
rwk-system/src/main/java/com/rwk/system/domain/RwkAddressBook.java Ver ficheiro

@@ -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 +
'}';
}
}

+ 95
- 0
rwk-system/src/main/java/com/rwk/system/domain/RwkAddressGroup.java Ver ficheiro

@@ -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();
}
}

+ 51
- 0
rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroup.java Ver ficheiro

@@ -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();
}
}

+ 4
- 0
rwk-system/src/main/java/com/rwk/system/domain/RwkBookGroupVo.java Ver ficheiro

@@ -0,0 +1,4 @@
package com.rwk.system.domain;

public class RwkBookGroupVo {
}

+ 1
- 0
rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressBookMapper.java Ver ficheiro

@@ -26,6 +26,7 @@ public interface RwkAddressBookMapper
* @return 通讯录主集合
*/
public List<RwkAddressBook> selectRwkAddressBookList(RwkAddressBook rwkAddressBook);
public List<RwkAddressBook> selectRwkAddressBookListKeyWord(RwkAddressBook rwkAddressBook);

/**
* 新增通讯录主


+ 61
- 0
rwk-system/src/main/java/com/rwk/system/mapper/RwkAddressGroupMapper.java Ver ficheiro

@@ -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);
}

+ 65
- 0
rwk-system/src/main/java/com/rwk/system/mapper/RwkBookGroupMapper.java Ver ficheiro

@@ -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);
}

+ 70
- 0
rwk-system/src/main/java/com/rwk/system/service/IRwkAddressGroupService.java Ver ficheiro

@@ -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);
}

+ 64
- 0
rwk-system/src/main/java/com/rwk/system/service/IRwkBookGroupService.java Ver ficheiro

@@ -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);
}

+ 28
- 2
rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressBookServiceImpl.java Ver ficheiro

@@ -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));
}



+ 102
- 0
rwk-system/src/main/java/com/rwk/system/service/impl/RwkAddressGroupServiceImpl.java Ver ficheiro

@@ -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);
}
}

+ 114
- 0
rwk-system/src/main/java/com/rwk/system/service/impl/RwkBookGroupServiceImpl.java Ver ficheiro

@@ -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);
}
}

+ 16
- 2
rwk-system/src/main/resources/mapper/system/RwkAddressBookMapper.xml Ver ficheiro

@@ -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>



+ 79
- 0
rwk-system/src/main/resources/mapper/system/RwkAddressGroupMapper.xml Ver ficheiro

@@ -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>

+ 73
- 0
rwk-system/src/main/resources/mapper/system/RwkBookGroupMapper.xml Ver ficheiro

@@ -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>

Carregando…
Cancelar
Guardar