Эх сурвалжийг харах

部门邀请人员、消息记录

LIVE_YE 2 жил өмнө
parent
commit
8eed0b52da

+ 125 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/kaoqin/RecordInfoController.java

@@ -0,0 +1,125 @@
+package com.ruoyi.web.controller.kaoqin;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.RecordInfo;
+import com.ruoyi.system.service.IRecordInfoService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 记录信息Controller
+ * 
+ * @author ruoyi
+ * @date 2023-02-07
+ */
+@RestController
+@RequestMapping("/system/info")
+public class  RecordInfoController extends BaseController
+{
+    @Autowired
+    private IRecordInfoService recordInfoService;
+
+    /**
+     * 查询记录信息列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(RecordInfo recordInfo)
+    {
+        startPage();
+        List<RecordInfo> list = recordInfoService.selectRecordInfoList(recordInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出记录信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:export')")
+    @Log(title = "记录信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, RecordInfo recordInfo)
+    {
+        List<RecordInfo> list = recordInfoService.selectRecordInfoList(recordInfo);
+        ExcelUtil<RecordInfo> util = new ExcelUtil<RecordInfo>(RecordInfo.class);
+        util.exportExcel(response, list, "记录信息数据");
+    }
+
+    /**
+     * 获取记录信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(recordInfoService.selectRecordInfoById(id));
+    }
+
+    /**
+     * 新增记录信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:add')")
+    @Log(title = "记录信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody RecordInfo recordInfo)
+    {
+        return toAjax(recordInfoService.insertRecordInfo(recordInfo));
+    }
+
+    /**
+     * 修改记录信息
+     */
+    @Log(title = "记录信息", businessType = BusinessType.UPDATE)
+    @PostMapping("put")
+    public AjaxResult edit(@RequestBody RecordInfo recordInfo)
+    {
+        return toAjax(recordInfoService.updateRecordInfo(recordInfo));
+    }
+
+    /**
+     * 删除记录信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:remove')")
+    @Log(title = "记录信息", businessType = BusinessType.DELETE)
+    @GetMapping(value = "/delete/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(recordInfoService.deleteRecordInfoByIds(ids));
+    }
+
+    /***
+     * 查询未读消息
+     * @return
+     */
+    @GetMapping("/numberInfo")
+    public AjaxResult numberInfo()
+    {
+        return recordInfoService.numberInfo();
+    }
+
+    /**
+     * 将消息改为已读状态
+     */
+    @GetMapping("isChange")
+    public AjaxResult isChange(Long[] ids)
+    {
+        return toAjax(recordInfoService.isChange(ids));
+    }
+
+}

+ 56 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -1,6 +1,8 @@
 package com.ruoyi.web.controller.system;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.lang3.ArrayUtils;
@@ -61,6 +63,60 @@ public class SysUserController extends BaseController
         return getDataTable(list);
     }
 
+    /***
+     * 获取没有分配部门的人员
+     * @param user
+     * @return
+     */
+    @GetMapping("/allocationList")
+    public TableDataInfo allocationList(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.allocationList(user);
+        return getDataTable(list);
+    }
+
+    /***
+     * 部门负责人申请人员划入自己部门
+     * @param response
+     * @param user
+     */
+    @GetMapping("/applyFor")
+    public AjaxResult applyFor(Long id)
+    {
+        //获取部门负责人信息
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        //修改被申请人信息
+        return userService.updateApplyFor(user,id);
+    }
+
+    /***
+     * 查询申请人是否有部门变更申请
+     * @param
+     * @return
+     */
+    @GetMapping("/applyForQuery")
+    public AjaxResult query()
+    {
+        //获取人信息
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+
+        return userService.query(user);
+    }
+
+    /***
+     * 人员对划入部门做出回应
+     * @param id 人员id
+     * @param status 是否同意 0不同意 1同意
+     * @return
+     */
+    @GetMapping("/reply")
+    public AjaxResult reply(String status)
+    {
+        //修改被申请人信息
+        return userService.reply(status);
+    }
+
     @Log(title = "用户管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @PostMapping("/export")

+ 10 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -70,6 +70,8 @@ public class SysUser extends BaseEntity
     @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
     private Date loginDate;
 
+    private String applyFor;
+
     /** 部门对象 */
     @Excels({
         @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
@@ -297,6 +299,14 @@ public class SysUser extends BaseEntity
         this.roleId = roleId;
     }
 
+    public String getApplyFor() {
+        return applyFor;
+    }
+
+    public void setApplyFor(String applyFor) {
+        this.applyFor = applyFor;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 152 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/RecordInfo.java

@@ -0,0 +1,152 @@
+package com.ruoyi.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 记录信息对象 record_info
+ * 
+ * @author ruoyi
+ * @date 2023-02-07
+ */
+public class RecordInfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 标题 */
+    @Excel(name = "标题")
+    private String title;
+
+    /** 内容 */
+    @Excel(name = "内容")
+    private String content;
+
+    /** 发件人id */
+    private String senderId;
+
+    /** 发件人姓名 */
+    @Excel(name = "发件人姓名")
+    private String senderName;
+
+    /** 收件人id */
+    private String addresseeId;
+
+    /** 收件人姓名 */
+    @Excel(name = "收件人姓名")
+    private String addresseeName;
+
+    /** 是否已读,0: 未读 1:已读 */
+    @Excel(name = "是否已读,0: 未读 1:已读")
+    private String isRead;
+
+    /** 消息类型 1:转换部门通知 */
+    @Excel(name = "消息类型 1:转换部门通知")
+    private String infoType;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setTitle(String title) 
+    {
+        this.title = title;
+    }
+
+    public String getTitle() 
+    {
+        return title;
+    }
+    public void setContent(String content) 
+    {
+        this.content = content;
+    }
+
+    public String getContent() 
+    {
+        return content;
+    }
+    public void setSenderId(String senderId) 
+    {
+        this.senderId = senderId;
+    }
+
+    public String getSenderId() 
+    {
+        return senderId;
+    }
+    public void setSenderName(String senderName) 
+    {
+        this.senderName = senderName;
+    }
+
+    public String getSenderName() 
+    {
+        return senderName;
+    }
+    public void setAddresseeId(String addresseeId) 
+    {
+        this.addresseeId = addresseeId;
+    }
+
+    public String getAddresseeId() 
+    {
+        return addresseeId;
+    }
+    public void setAddresseeName(String addresseeName) 
+    {
+        this.addresseeName = addresseeName;
+    }
+
+    public String getAddresseeName() 
+    {
+        return addresseeName;
+    }
+    public void setIsRead(String isRead) 
+    {
+        this.isRead = isRead;
+    }
+
+    public String getIsRead() 
+    {
+        return isRead;
+    }
+    public void setInfoType(String infoType) 
+    {
+        this.infoType = infoType;
+    }
+
+    public String getInfoType() 
+    {
+        return infoType;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("title", getTitle())
+            .append("content", getContent())
+            .append("senderId", getSenderId())
+            .append("senderName", getSenderName())
+            .append("addresseeId", getAddresseeId())
+            .append("addresseeName", getAddresseeName())
+            .append("isRead", getIsRead())
+            .append("infoType", getInfoType())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 66 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordInfoMapper.java

@@ -0,0 +1,66 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.RecordInfo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 记录信息Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-02-07
+ */
+public interface RecordInfoMapper 
+{
+    /**
+     * 查询记录信息
+     * 
+     * @param id 记录信息主键
+     * @return 记录信息
+     */
+    public RecordInfo selectRecordInfoById(Long id);
+
+    /**
+     * 查询记录信息列表
+     * 
+     * @param recordInfo 记录信息
+     * @return 记录信息集合
+     */
+    public List<RecordInfo> selectRecordInfoList(RecordInfo recordInfo);
+
+    /**
+     * 新增记录信息
+     * 
+     * @param recordInfo 记录信息
+     * @return 结果
+     */
+    public int insertRecordInfo(RecordInfo recordInfo);
+
+    /**
+     * 修改记录信息
+     * 
+     * @param recordInfo 记录信息
+     * @return 结果
+     */
+    public int updateRecordInfo(RecordInfo recordInfo);
+
+    /**
+     * 删除记录信息
+     * 
+     * @param id 记录信息主键
+     * @return 结果
+     */
+    public int deleteRecordInfoById(Long id);
+
+    /**
+     * 批量删除记录信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteRecordInfoByIds(Long[] ids);
+
+    RecordInfo selectNewApplyFor(@Param("addresseeId") String addresseeId, @Param("infoType") String infoType);
+
+    int updateRecordInfoIsChange(Long[] ids);
+}

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -131,4 +131,6 @@ public interface SysUserMapper
      * @return 结果
      */
     public SysUser checkEmailUnique(String email);
+
+    List<SysUser> allocationList(SysUser user);
 }

+ 67 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IRecordInfoService.java

@@ -0,0 +1,67 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.system.domain.RecordInfo;
+
+/**
+ * 记录信息Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-02-07
+ */
+public interface IRecordInfoService 
+{
+    /**
+     * 查询记录信息
+     * 
+     * @param id 记录信息主键
+     * @return 记录信息
+     */
+    public RecordInfo selectRecordInfoById(Long id);
+
+    /**
+     * 查询记录信息列表
+     * 
+     * @param recordInfo 记录信息
+     * @return 记录信息集合
+     */
+    public List<RecordInfo> selectRecordInfoList(RecordInfo recordInfo);
+
+    /**
+     * 新增记录信息
+     * 
+     * @param recordInfo 记录信息
+     * @return 结果
+     */
+    public int insertRecordInfo(RecordInfo recordInfo);
+
+    /**
+     * 修改记录信息
+     * 
+     * @param recordInfo 记录信息
+     * @return 结果
+     */
+    public int updateRecordInfo(RecordInfo recordInfo);
+
+    /**
+     * 批量删除记录信息
+     * 
+     * @param ids 需要删除的记录信息主键集合
+     * @return 结果
+     */
+    public int deleteRecordInfoByIds(Long[] ids);
+
+    /**
+     * 删除记录信息信息
+     * 
+     * @param id 记录信息主键
+     * @return 结果
+     */
+    public int deleteRecordInfoById(Long id);
+
+    AjaxResult numberInfo();
+
+    int isChange(Long[] ids);
+}

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
 /**
@@ -211,4 +213,12 @@ public interface ISysUserService
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    List<SysUser> allocationList(SysUser user);
+
+    AjaxResult updateApplyFor(SysUser user, Long id);
+
+    AjaxResult reply(String status);
+
+    AjaxResult query(SysUser user);
 }

+ 120 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordInfoServiceImpl.java

@@ -0,0 +1,120 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.RecordInfoMapper;
+import com.ruoyi.system.domain.RecordInfo;
+import com.ruoyi.system.service.IRecordInfoService;
+
+/**
+ * 记录信息Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2023-02-07
+ */
+@Service
+public class RecordInfoServiceImpl implements IRecordInfoService 
+{
+    @Autowired
+    private RecordInfoMapper recordInfoMapper;
+
+    /**
+     * 查询记录信息
+     * 
+     * @param id 记录信息主键
+     * @return 记录信息
+     */
+    @Override
+    public RecordInfo selectRecordInfoById(Long id)
+    {
+        return recordInfoMapper.selectRecordInfoById(id);
+    }
+
+    /**
+     * 查询记录信息列表
+     * 
+     * @param recordInfo 记录信息
+     * @return 记录信息
+     */
+    @Override
+    public List<RecordInfo> selectRecordInfoList(RecordInfo recordInfo)
+    {
+        return recordInfoMapper.selectRecordInfoList(recordInfo);
+    }
+
+    /**
+     * 新增记录信息
+     * 
+     * @param recordInfo 记录信息
+     * @return 结果
+     */
+    @Override
+    public int insertRecordInfo(RecordInfo recordInfo)
+    {
+        recordInfo.setCreateTime(DateUtils.getNowDate());
+        return recordInfoMapper.insertRecordInfo(recordInfo);
+    }
+
+    /**
+     * 修改记录信息
+     * 
+     * @param recordInfo 记录信息
+     * @return 结果
+     */
+    @Override
+    public int updateRecordInfo(RecordInfo recordInfo)
+    {
+        recordInfo.setUpdateTime(DateUtils.getNowDate());
+        return recordInfoMapper.updateRecordInfo(recordInfo);
+    }
+
+    /**
+     * 批量删除记录信息
+     * 
+     * @param ids 需要删除的记录信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteRecordInfoByIds(Long[] ids)
+    {
+        return recordInfoMapper.deleteRecordInfoByIds(ids);
+    }
+
+    /**
+     * 删除记录信息信息
+     * 
+     * @param id 记录信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteRecordInfoById(Long id)
+    {
+        return recordInfoMapper.deleteRecordInfoById(id);
+    }
+
+    @Override
+    public AjaxResult numberInfo() {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        RecordInfo recordInfo = new RecordInfo();
+        recordInfo.setAddresseeId(String.valueOf(user.getUserId()));
+        recordInfo.setIsRead("0");
+        List<RecordInfo> list = recordInfoMapper.selectRecordInfoList(recordInfo);
+        Map<String,Object> map = new HashMap<>();
+        map.put("total",list.size());
+        map.put("recordInfoList",list);
+        return AjaxResult.success("成功",map);
+    }
+
+    @Override
+    public int isChange(Long[] ids) {
+        return recordInfoMapper.updateRecordInfoIsChange(ids);
+    }
+}

+ 89 - 5
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -1,9 +1,16 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.system.domain.RecordInfo;
+import com.ruoyi.system.mapper.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,11 +29,6 @@ import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
 import com.ruoyi.system.domain.SysUserRole;
-import com.ruoyi.system.mapper.SysPostMapper;
-import com.ruoyi.system.mapper.SysRoleMapper;
-import com.ruoyi.system.mapper.SysUserMapper;
-import com.ruoyi.system.mapper.SysUserPostMapper;
-import com.ruoyi.system.mapper.SysUserRoleMapper;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
 
@@ -40,6 +42,9 @@ public class SysUserServiceImpl implements ISysUserService
 {
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
 
+    @Autowired
+    private SysDeptMapper deptMapper;
+
     @Autowired
     private SysUserMapper userMapper;
 
@@ -61,6 +66,9 @@ public class SysUserServiceImpl implements ISysUserService
     @Autowired
     protected Validator validator;
 
+    @Autowired
+    private RecordInfoMapper recordInfoMapper;
+
     /**
      * 根据条件分页查询用户列表
      * 
@@ -550,4 +558,80 @@ public class SysUserServiceImpl implements ISysUserService
         }
         return successMsg.toString();
     }
+
+    @Override
+    public List<SysUser> allocationList(SysUser user) {
+        return userMapper.allocationList(user);
+    }
+
+    @Override
+    public AjaxResult updateApplyFor(SysUser user, Long id) {
+
+        SysUser applyForUser = new SysUser();
+        applyForUser.setUserId(id);
+        applyForUser.setDeptId(user.getDeptId());
+        applyForUser.setApplyFor("0");
+        userMapper.updateUser(applyForUser);
+
+        //将消息保存进消息记录表
+        SysUser users = userMapper.selectUserById(id);
+        SysDept dept = user.getDept();
+        RecordInfo recordInfo = new RecordInfo();
+        recordInfo.setTitle("部门申请");
+        StringBuilder sb = new StringBuilder();
+        sb.append(user.getUserName()).append("邀请您加入").append(dept.getDeptName());
+        recordInfo.setContent("");
+        recordInfo.setSenderId(String.valueOf(user.getUserId()));
+        recordInfo.setSenderName(user.getUserName());
+        recordInfo.setAddresseeId(String.valueOf(id));
+        recordInfo.setAddresseeName(users.getUserName());
+        recordInfo.setIsRead("0");
+        recordInfo.setInfoType("1");
+        recordInfo.setCreateBy(user.getUserName());
+        recordInfo.setUpdateBy(user.getUserName());
+        recordInfoMapper.insertRecordInfo(recordInfo);
+        return AjaxResult.success("邀请已发出");
+    }
+
+    @Override
+    public AjaxResult reply(String status) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        //查询当前用户最新的一次部门更换邀请
+        RecordInfo recordInfo = recordInfoMapper.selectNewApplyFor(String.valueOf(user.getUserId()),"1");
+        //修改消息状态
+        recordInfo.setIsRead("1");
+        recordInfoMapper.updateRecordInfo(recordInfo);
+
+        //修改人员应答状态
+        SysUser applyForUser = new SysUser();
+        if("0".equals(status)){
+            applyForUser.setUserId(user.getUserId());
+            applyForUser.setDeptId(0L);
+            userMapper.updateUser(applyForUser);
+            return AjaxResult.success("已拒绝");
+        }else{
+            applyForUser.setUserId(user.getUserId());
+            applyForUser.setApplyFor("1");
+            userMapper.updateUser(applyForUser);
+            return AjaxResult.success("已同意");
+        }
+
+    }
+
+    @Override
+    public AjaxResult query(SysUser user) {
+        Map<String,Object> map = new HashMap<>();
+        if(user.getDeptId()==0){
+            map.put("info","");
+            map.put("status","0");
+            return AjaxResult.success(map);
+        }
+        //获取变更部门信息
+        SysDept dept = deptMapper.selectDeptById(user.getDeptId());
+        StringBuilder sb = new StringBuilder();
+        sb.append(dept.getDeptName()).append("邀请您加入该部门");
+        map.put("info",sb.toString());
+        map.put("status","1");
+        return AjaxResult.success(map);
+    }
 }

+ 124 - 0
ruoyi-system/src/main/resources/mapper/system/RecordInfoMapper.xml

@@ -0,0 +1,124 @@
+<?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.ruoyi.system.mapper.RecordInfoMapper">
+    
+    <resultMap type="RecordInfo" id="RecordInfoResult">
+        <result property="id"    column="id"    />
+        <result property="title"    column="title"    />
+        <result property="content"    column="content"    />
+        <result property="senderId"    column="sender_id"    />
+        <result property="senderName"    column="sender_name"    />
+        <result property="addresseeId"    column="addressee_id"    />
+        <result property="addresseeName"    column="addressee_name"    />
+        <result property="isRead"    column="is_read"    />
+        <result property="infoType"    column="info_type"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectRecordInfoVo">
+        select id, title, content, sender_id, sender_name, addressee_id, addressee_name, is_read, info_type, create_by, create_time, update_by, update_time, remark from record_info
+    </sql>
+
+    <select id="selectRecordInfoList" parameterType="RecordInfo" resultMap="RecordInfoResult">
+        <include refid="selectRecordInfoVo"/>
+        <where>  
+            <if test="title != null  and title != ''"> and title = #{title}</if>
+            <if test="content != null  and content != ''"> and content = #{content}</if>
+            <if test="senderName != null  and senderName != ''"> and sender_name like concat('%', #{senderName}, '%')</if>
+            <if test="addresseeName != null  and addresseeName != ''"> and addressee_name like concat('%', #{addresseeName}, '%')</if>
+            <if test="isRead != null  and isRead != ''"> and is_read = #{isRead}</if>
+            <if test="infoType != null  and infoType != ''"> and info_type = #{infoType}</if>
+            <if test="createTime != null "> and create_time = #{createTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectRecordInfoById" parameterType="Long" resultMap="RecordInfoResult">
+        <include refid="selectRecordInfoVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertRecordInfo" parameterType="RecordInfo" useGeneratedKeys="true" keyProperty="id">
+        insert into record_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="title != null">title,</if>
+            <if test="content != null">content,</if>
+            <if test="senderId != null">sender_id,</if>
+            <if test="senderName != null">sender_name,</if>
+            <if test="addresseeId != null">addressee_id,</if>
+            <if test="addresseeName != null">addressee_name,</if>
+            <if test="isRead != null">is_read,</if>
+            <if test="infoType != null">info_type,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="remark != null">remark,</if>
+            create_time,update_time
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="title != null">#{title},</if>
+            <if test="content != null">#{content},</if>
+            <if test="senderId != null">#{senderId},</if>
+            <if test="senderName != null">#{senderName},</if>
+            <if test="addresseeId != null">#{addresseeId},</if>
+            <if test="addresseeName != null">#{addresseeName},</if>
+            <if test="isRead != null">#{isRead},</if>
+            <if test="infoType != null">#{infoType},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="remark != null">#{remark},</if>
+            sysdate(),sysdate()
+         </trim>
+    </insert>
+
+    <update id="updateRecordInfo" parameterType="RecordInfo">
+        update record_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="title != null">title = #{title},</if>
+            <if test="content != null">content = #{content},</if>
+            <if test="senderId != null">sender_id = #{senderId},</if>
+            <if test="senderName != null">sender_name = #{senderName},</if>
+            <if test="addresseeId != null">addressee_id = #{addresseeId},</if>
+            <if test="addresseeName != null">addressee_name = #{addresseeName},</if>
+            <if test="isRead != null">is_read = #{isRead},</if>
+            <if test="infoType != null">info_type = #{infoType},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteRecordInfoById" parameterType="Long">
+        delete from record_info where id = #{id}
+    </delete>
+
+    <delete id="deleteRecordInfoByIds" parameterType="String">
+        delete from record_info where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="selectNewApplyFor" parameterType="Long" resultMap="RecordInfoResult">
+        <include refid="selectRecordInfoVo"/>
+        where addressee_id = #{addresseeId}
+        and info_type = #{infoType}
+        and is_read = '0'
+        order by create_time desc limit 1
+    </select>
+
+    <update id="updateRecordInfoIsChange" parameterType="Long">
+        update record_info set is_read = '1' where id in
+        <foreach collection="array" item="array" open="(" separator="," close=")">
+            #{array}
+        </foreach>
+    </update>
+
+</mapper>

+ 28 - 2
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -22,7 +22,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"   column="create_time"  />
         <result property="updateBy"     column="update_by"    />
         <result property="updateTime"   column="update_time"  />
-        <result property="remark"       column="remark"       />
+        <result property="applyFor"       column="apply_for"       />
+
+		<result property="remark"       column="remark"       />
+
         <association property="dept"    column="dept_id" javaType="SysDept" resultMap="deptResult" />
         <collection  property="roles"   javaType="java.util.List"           resultMap="RoleResult" />
     </resultMap>
@@ -186,7 +189,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<update id="updateUser" parameterType="SysUser">
  		update sys_user
  		<set>
- 			<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
+ 			<if test="deptId != null">dept_id = #{deptId},</if>
  			<if test="userName != null and userName != ''">user_name = #{userName},</if>
  			<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
  			<if test="email != null ">email = #{email},</if>
@@ -194,6 +197,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="sex != null and sex != ''">sex = #{sex},</if>
  			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
  			<if test="password != null and password != ''">password = #{password},</if>
+			<if test="applyFor != null and applyFor != ''">apply_for = #{applyFor},</if>
  			<if test="status != null and status != ''">status = #{status},</if>
  			<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
  			<if test="loginDate != null">login_date = #{loginDate},</if>
@@ -226,5 +230,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			#{userId}
         </foreach> 
  	</delete>
+
+
+	<select id="allocationList" parameterType="SysUser" resultMap="SysUserResult">
+		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
+		from sys_user u
+		where u.del_flag = '0'
+		  and (u.dept_id = 0 or u.dept_id is null)
+		<if test="userId != null and userId != 0">
+			AND u.user_id = #{userId}
+		</if>
+		<if test="userName != null and userName != ''">
+			AND u.user_name like concat('%', #{userName}, '%')
+		</if>
+		<if test="status != null and status != ''">
+			AND u.status = #{status}
+		</if>
+		<if test="phonenumber != null and phonenumber != ''">
+			AND u.phonenumber like concat('%', #{phonenumber}, '%')
+		</if>
+		<!-- 数据范围过滤 -->
+		${params.dataScope}
+	</select>
 	
 </mapper>