洪城义警-正式版后台
zengh
2021-06-22 b762ec2dd9db7ebcf222b0621cd3c1671f9f451c
版本合并
9 files modified
8 files added
620 ■■■■■ changed files
src/main/java/org/springblade/modules/attendance/controller/AttendanceController.java 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/chatrecords/controller/ChatRecordsController.java 104 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/chatrecords/entity/ChatRecords.java 74 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/chatrecords/mapper/ChatRecordsMapper.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/chatrecords/mapper/ChatRecordsMapper.xml 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/chatrecords/service/ChatRecordsService.java 45 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/chatrecords/service/impl/ChatRecordsServiceImpl.java 60 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/chatrecords/vo/ChatRecordsVo.java 30 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/feedback/controller/FeedbackController.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/feedback/entity/Feedback.java 7 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/feedback/service/impl/FeedbackServiceImpl.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/feedback/vo/FeedbackVO.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/entity/User.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/feign/IUserClient.java 126 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IUserService.java 11 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 31 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/attendance/controller/AttendanceController.java
@@ -483,7 +483,10 @@
    @PostMapping("/AppSave")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入attendance")
    public R AppSave(@Valid Attendance attendance) {
    public R AppSave(@Valid Attendance attendance,HttpServletResponse response) {
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        System.out.println("attendance = " + attendance);
        Enclosure enclosure = new Enclosure();
        enclosure.setAnumber(attendance.getNumber());
src/main/java/org/springblade/modules/chatrecords/controller/ChatRecordsController.java
New file
@@ -0,0 +1,104 @@
package org.springblade.modules.chatrecords.controller;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.modules.chatrecords.entity.ChatRecords;
import org.springblade.modules.chatrecords.service.ChatRecordsService;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.feign.IUserClient;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @author zhongrj
 * @time 2021-06-18
 * 聊天消息控制层
 */
@AllArgsConstructor
@RestController
@RequestMapping("/chat-records")
public class ChatRecordsController {
    private final IUserClient iUserClient;
    private final ChatRecordsService chatRecordsService;
    /**
     * 查询单聊消息记录
     * @param chatRecords 消息记录对象
     * @param response 响应
     * @param query 查询条件,分页
     * @return
     */
    @GetMapping("/getSingleMessagePage")
    public R getSingleMessagePage(@Valid ChatRecords chatRecords, HttpServletResponse response, Query query){
        //跨域设置
        crossDomain(response);
        Map<String, Object> map = new HashMap<>(2);
        //查询单聊人的信息
        List<User> user = Arrays.asList(iUserClient.userInfoById(chatRecords.getSenderId()).getData(), iUserClient.userInfoById(chatRecords.getRecipientId()).getData());
        //查询单聊记录信息
        if (null==query.getCurrent()){
            map.put("chatRecordsIPage",chatRecordsService.selectChatlist(chatRecords));
        }else {
            map.put("chatRecordsIPage",chatRecordsService.selectChatRecordsPage(Condition.getPage(query), chatRecords));
        }
        //封装数据
        map.put("user",user);
        //返回数据
        return R.data(map);
    }
    /**
     * 查询当前用户的聊天列表
     * @param chatRecords 消息记录对象
     * @param response 响应
     * @param query 查询条件,分页
     * @return
     */
    @GetMapping("/getChatListPage")
    public R getChatListPage(@Valid ChatRecords chatRecords, HttpServletResponse response, Query query){
        //跨域设置
        crossDomain(response);
        if(null==query.getCurrent()){
            //不分页
            return R.data(chatRecordsService.getChatList( chatRecords));
        }
        //查询当前人员的聊天列表,并返回数据
        return R.data(chatRecordsService.getChatListPage(Condition.getPage(query), chatRecords));
    }
    /**
     * 单聊消息插入
     * @param chatRecords 消息记录对象
     * @param response 响应
     * @return
     */
    @PostMapping("/insertSingleChat")
    public R insertSingleChat(@Valid @RequestBody ChatRecords chatRecords, HttpServletResponse response){
        //跨域设置
        crossDomain(response);
        //单聊消息插入
        return R.data(chatRecordsService.save(chatRecords));
    }
    /**
     * 配置跨域设置
     * @param response
     */
    private void crossDomain(HttpServletResponse response) {
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Allow-Credentials","true");
    }
}
src/main/java/org/springblade/modules/chatrecords/entity/ChatRecords.java
New file
@@ -0,0 +1,74 @@
package org.springblade.modules.chatrecords.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
 *
 * @author zhongrj
 * @time 2021-06-18
 * @desc 聊天记录实体类
 *
 */
@Data
@TableName("sys_chat_records")
public class ChatRecords implements Serializable {
    /**
     * 主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;
    /**
     * 发送消息内容
     */
    @TableField("post_message")
    private String postMessage;
    /**
     * 消息类型 0 文本  1 表情  2 图片  3 视频...
     */
    @TableField("message_type")
    private Integer messageType;
    /**
     * 接收状态 0 已接收  1 未接收
     */
    private Integer status;
    /**
     * 发送时间
     */
    @TableField("post_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date postTime;
    /**
     * 发送消息人id
     *
     */
    @NotNull(message = "发送消息人id不能为空")
    @TableField("sender_id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long senderId;
    /**
     * 接收消息人id
     * @NotNull(message = "接收消息人id不能为空")
     */
    @TableField("recipient_id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long recipientId;
}
src/main/java/org/springblade/modules/chatrecords/mapper/ChatRecordsMapper.java
New file
@@ -0,0 +1,32 @@
package org.springblade.modules.chatrecords.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.chatrecords.entity.ChatRecords;
import org.springblade.modules.chatrecords.vo.ChatRecordsVo;
import java.util.List;
/**
 * @author zhongrj
 * mapper 映射层
 */
public interface ChatRecordsMapper extends BaseMapper<ChatRecords> {
    /**
     * 查询单聊消息记录分页信息
     * @param page
     * @param chatRecords 聊天消息对象
     * @return
     */
    List<ChatRecords> selectChatRecordsPage(IPage<ChatRecords> page, ChatRecords chatRecords);
    /**
     * 查询当前用户的聊天列表
     * @param chatRecords 消息记录对象
     * @param page
     * @return
     */
    List<ChatRecordsVo> getChatListPage(IPage<ChatRecordsVo> page, ChatRecords chatRecords);
}
src/main/java/org/springblade/modules/chatrecords/mapper/ChatRecordsMapper.xml
New file
@@ -0,0 +1,35 @@
<?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="org.springblade.modules.chatrecords.mapper.ChatRecordsMapper">
    <!--查询单聊的消息记录列表-->
    <select id="selectChatRecordsPage" resultType="org.springblade.modules.chatrecords.entity.ChatRecords">
        select * from sys_chat_records  where sender_id = #{chatRecords.senderId} and recipient_id = #{chatRecords.recipientId}
        union
        select * from sys_chat_records  where sender_id = #{chatRecords.recipientId} and recipient_id = #{chatRecords.senderId}
        order by post_time desc
    </select>
    <!--聊天列表-->
    <select id="getChatListPage" resultType="org.springblade.modules.chatrecords.vo.ChatRecordsVo">
        select scrss.*,name recipientNickName,real_name recipientName,avatar from jfpthpublicsecurity.blade_user bu
        right join
        (
            select scr.id,scrs.uid recipientId,post_time postTime,post_message postMessage from sys_chat_records  scr
            right join
            (
                select max(max_id) id,uid from (
                    select recipient_id as uid,max(id) as max_id from sys_chat_records where sender_id = #{chatRecords.senderId} group by recipient_id
                    union all
                    select sender_id as uid,max(id) as max_id from sys_chat_records where recipient_id = #{chatRecords.senderId} group by sender_id
                )t group by uid
            ) scrs
            on
            scr.id = scrs.id
        ) scrss
        on
        bu.id = scrss.recipientId
        order by postTime desc
    </select>
</mapper>
src/main/java/org/springblade/modules/chatrecords/service/ChatRecordsService.java
New file
@@ -0,0 +1,45 @@
package org.springblade.modules.chatrecords.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.chatrecords.entity.ChatRecords;
import org.springblade.modules.chatrecords.vo.ChatRecordsVo;
import java.util.List;
/**
 * @author zhongrj
 * 聊天消息接口层
 */
public interface ChatRecordsService extends IService<ChatRecords> {
    /**
     * 查询聊天消息分页信息
     * @param page
     * @param chatRecords 聊天消息对象
     * @return
     */
    IPage<ChatRecords> selectChatRecordsPage(IPage<ChatRecords> page, ChatRecords chatRecords);
    /**
     * 查询当前用户的聊天列表
     * @param chatRecords 消息记录对象
     * @param page
     * @return
     */
    IPage<ChatRecordsVo> getChatListPage(IPage<ChatRecordsVo> page, ChatRecords chatRecords);
    /**
     * 查询当前用户的聊天列表(不分页)
     * @param chatRecords 消息记录对象
     * @return
     */
    List<ChatRecordsVo> getChatList(ChatRecords chatRecords);
    /**
     * 查询单聊消息记录 (不分页)
     * @param chatRecords 消息记录对象
     * @return
     */
    List<ChatRecords> selectChatlist(ChatRecords chatRecords);
}
src/main/java/org/springblade/modules/chatrecords/service/impl/ChatRecordsServiceImpl.java
New file
@@ -0,0 +1,60 @@
package org.springblade.modules.chatrecords.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.chatrecords.entity.ChatRecords;
import org.springblade.modules.chatrecords.mapper.ChatRecordsMapper;
import org.springblade.modules.chatrecords.service.ChatRecordsService;
import org.springblade.modules.chatrecords.vo.ChatRecordsVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @author zhongrj
 */
@Service
public class ChatRecordsServiceImpl extends ServiceImpl<ChatRecordsMapper, ChatRecords> implements ChatRecordsService {
    /**
     * 查询聊天消息分页信息
     * @param page
     * @param chatRecords 聊天消息对象
     * @return
     */
    @Override
    public IPage<ChatRecords> selectChatRecordsPage(IPage<ChatRecords> page, ChatRecords chatRecords) {
        return page.setRecords(baseMapper.selectChatRecordsPage(page,chatRecords));
    }
    /**
     * 查询当前用户的聊天列表
     * @param chatRecords 消息记录对象
     * @param page
     * @return
     */
    @Override
    public IPage<ChatRecordsVo> getChatListPage(IPage<ChatRecordsVo> page, ChatRecords chatRecords) {
        return page.setRecords(baseMapper.getChatListPage(page,chatRecords));
    }
    /**
     * 查询当前用户的聊天列表(不分页)
     * @param chatRecords 消息记录对象
     * @return
     */
    @Override
    public List<ChatRecordsVo> getChatList(ChatRecords chatRecords) {
        return baseMapper.getChatListPage(null,chatRecords);
    }
    /**
     * 查询单聊消息记录 (不分页)
     * @param chatRecords 消息记录对象
     * @return
     */
    @Override
    public List<ChatRecords> selectChatlist(ChatRecords chatRecords) {
        return baseMapper.selectChatRecordsPage(null,chatRecords);
    }
}
src/main/java/org/springblade/modules/chatrecords/vo/ChatRecordsVo.java
New file
@@ -0,0 +1,30 @@
package org.springblade.modules.chatrecords.vo;
import lombok.Data;
import org.springblade.modules.chatrecords.entity.ChatRecords;
import java.io.Serializable;
/**
 * @author zhongrj
 * @time 2021-06-19
 * @desc 聊天列表vo
 */
@Data
public class ChatRecordsVo extends ChatRecords implements Serializable {
    /**
     * 接收或者发送的昵称
     */
    private String recipientNickName;
    /**
     * 接收或者发送的姓名
     */
    private String recipientName;
    /**
     * 接收或者发送的头像 url
     */
    private String avatar;
}
src/main/java/org/springblade/modules/feedback/controller/FeedbackController.java
@@ -271,6 +271,7 @@
    @PostMapping("/saves")
    public R saves(FeedbackVO feedback) {
        if (feedback.getStatus()==0) {
        SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间
        sdf.applyPattern("yyyy-MM-dd HH:mm:ss");// a为am/pm的标记
        Date date = new Date();// 获取当前时间
@@ -285,7 +286,6 @@
        operation.setZctime(sdf.format(date));
        operationService.save(operation);
        feedbackService.save(feedback);
        Wj wj = new Wj();
        if (feedback.getSpaddress().equals("")&&feedback.getSpaddress()!=null) {
@@ -300,8 +300,7 @@
        }
        if (feedback.getTpaddress().equals("")&&feedback.getTpaddress()!=null){
        }
        else {
            } else {
            String[] splittp = feedback.getTpaddress().split(",");//以逗号分割
            for (
                String string3 : splittp) {
@@ -310,7 +309,33 @@
                iWjService.insertfeed(wj);
            }
        }
        alarmService.updateJtype(operation.getJid(), "2", null, null);
        }
        if (feedback.getStatus()==1){
            Wj wj = new Wj();
            if (feedback.getSpaddress() != null &&  feedback.getSpaddress()!="") {
                //获取视频地址
                String[] splitsp = feedback.getSpaddress().split(",");//以逗号分割
                for (String string2 : splitsp) {
                    wj.setSnumber(feedback.getSnumber());
                    wj.setAddress(string2);
                    iWjService.insertfeed(wj);
                }
            }
            if (feedback.getTpaddress() != null &&  feedback.getTpaddress()!="") {
                String[] splittp = feedback.getTpaddress().split(",");//以逗号分割
                for (
                    String string3 : splittp) {
                    wj.setSnumber(feedback.getSnumber());
                    wj.setAddress(string3);
                    iWjService.insertfeed(wj);
                }
            }
        }
        feedbackService.save(feedback);
        return R.success("新增成功");
    }
src/main/java/org/springblade/modules/feedback/entity/Feedback.java
@@ -20,11 +20,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 实体类
@@ -106,7 +109,9 @@
    */
        @ApiModelProperty(value = "事发时间")
        @TableField("stime")
    private String stime;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date stime;
    /**
    * 处理完成时间
    */
src/main/java/org/springblade/modules/feedback/service/impl/FeedbackServiceImpl.java
@@ -16,7 +16,6 @@
 */
package org.springblade.modules.feedback.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.feedback.entity.Feedback;
@@ -35,7 +34,6 @@
 * @since 2020-07-14
 */
@Service
public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> implements IFeedbackService {
    @Override
src/main/java/org/springblade/modules/feedback/vo/FeedbackVO.java
@@ -38,4 +38,9 @@
    private  String spaddress;
    private  String tpaddress;
    /**
     * 0 警情反馈   1 调查取证上报
      */
    private Integer status;
}
src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -231,7 +231,25 @@
    @ApiOperation(value = "修改基本信息", notes = "传入User")
    public R updateInfo(@Valid @RequestBody User user) {
        CacheUtil.clear(USER_CACHE);
        if (null!= user.getAvatar() && user.getAvatar()!="") {
            String avatar = user.getAvatar();
            String substring = avatar.substring(25, avatar.length());
            String url = "https://web.byisf.com/minio" + substring;
            user.setAvatar(url);
        }
        return R.status(userService.updateUserInfo(user));
    }
    /**
     * 修改用户基本信息,不修改用户密码
     * @param user 用户信息
     * @autor zhongrj
     * @time 2021-06-16
     */
    @PostMapping("/updateUserInfo")
    public R updateUserInfo(@Valid @RequestBody User user) {
        CacheUtil.clear(USER_CACHE);
        return R.status(userService.updateUserInfos(user));
    }
    /**
@@ -345,7 +363,7 @@
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        return R.data(userService.selectSecurityUserPageList(Condition.getPage(query),user));
        return R.data(userService.selectSecurityUserList(Condition.getPage(query),user));
    }
    /**
src/main/java/org/springblade/modules/system/entity/User.java
@@ -18,6 +18,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
@@ -75,6 +76,7 @@
    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date birthday;
    /**
     * 性别
src/main/java/org/springblade/modules/system/feign/IUserClient.java
New file
@@ -0,0 +1,126 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.system.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.tool.api.R;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.entity.UserInfo;
import org.springblade.modules.system.entity.UserOauth;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * User Feign接口类
 *
 * @author Chill
 */
@FeignClient(
    value = AppConstant.APPLICATION_USER_NAME
)
public interface IUserClient {
    String API_PREFIX = "/client";
    String USER_INFO = API_PREFIX + "/user-info";
    String USER_INFO_BY_TYPE = API_PREFIX + "/user-info-by-type";
    String USER_INFO_BY_ID = API_PREFIX + "/user-info-by-id";
    String USER_INFO_BY_ACCOUNT = API_PREFIX + "/user-info-by-account";
    String USER_AUTH_INFO = API_PREFIX + "/user-auth-info";
    String SAVE_USER = API_PREFIX + "/save-user";
    String REMOVE_USER = API_PREFIX + "/remove-user";
    String SELUSERBYCODE =  API_PREFIX + "/selUserByCode";
    /**
     * 获取用户信息
     *
     * @param userId 用户id
     * @return
     */
    @GetMapping(USER_INFO_BY_ID)
    R<User> userInfoById(@RequestParam("userId") Long userId);
    /**
     * 根据账号获取用户信息
     *
     * @param tenantId 租户id
     * @param account  账号
     * @return
     */
    @GetMapping(USER_INFO_BY_ACCOUNT)
    R<User> userByAccount(@RequestParam("tenantId") String tenantId, @RequestParam("account") String account);
    /**
     * 获取用户信息
     *
     * @param tenantId 租户ID
     * @param account  账号
     * @return
     */
    @GetMapping(USER_INFO)
    R<UserInfo> userInfo(@RequestParam("tenantId") String tenantId, @RequestParam("account") String account);
    /**
     * 获取用户信息
     *
     * @param tenantId 租户ID
     * @param account  账号
     * @param userType 用户平台
     * @return
     */
    @GetMapping(USER_INFO_BY_TYPE)
    R<UserInfo> userInfo(@RequestParam("tenantId") String tenantId, @RequestParam("account") String account, @RequestParam("userType") String userType);
    /**
     * 获取第三方平台信息
     *
     * @param userOauth 第三方授权用户信息
     * @return UserInfo
     */
    @PostMapping(USER_AUTH_INFO)
    R<UserInfo> userAuthInfo(@RequestBody UserOauth userOauth);
    /**
     * 新建用户
     *
     * @param user 用户实体
     * @return
     */
    @PostMapping(SAVE_USER)
    R<Boolean> saveUser(@RequestBody User user);
    /**
     * 删除用户
     *
     * @param tenantIds 租户id集合
     * @return
     */
    @PostMapping(REMOVE_USER)
    R<Boolean> removeUser(@RequestParam("tenantIds") String tenantIds);
    /**
     * 根据用户编号查询用户新
     * @param code 用户编号
     * @return
     */
    @GetMapping(SELUSERBYCODE)
    User selUserByCode(@RequestParam("code") String code);
}
src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -232,7 +232,14 @@
     * @param user  用户对象
     * @param page  分页
     */
    IPage<UsersVo> selectSecurityUserPageList(IPage<UsersVo> page, User user);
    IPage<UsersVo> selectSecurityUserList(IPage<UsersVo> page, User user);
    R<Boolean> saveUser(User user);
    /**
     * 修改用户基本信息,不修改用户密码
     * @param user 用户信息
     * @autor zhongrj
     * @time 2021-06-16
     */
    boolean updateUserInfos(User user);
}
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -433,19 +433,36 @@
        return userVO;
    }
    /**
     * 查询处警人员列表
     * @param page  分页
     * @param user  用户对象
     * @return
     */
    @Override
    public IPage<UsersVo> selectSecurityUserList(IPage<UsersVo> page, User user) {
        return page.setRecords(baseMapper.selectSecurityUserPageList(page,user));
    }
    /**
     * 根据用户编号查询用户新
     * @param code 用户编号
     * @return
     */
    @Override
    public User selUserByCode(String code) {
        return baseMapper.selUserByCode(code);
    }
    /**
     * 修改用户基本信息,不修改用户密码
     * @param user 用户信息
     * @autor zhongrj
     * @time 2021-06-16
     */
    @Override
    public IPage<UsersVo> selectSecurityUserPageList(IPage<UsersVo> page, User user) {
        return page.setRecords(baseMapper.selectSecurityUserPageList(page,user));
    }
    @Override
    public R<Boolean> saveUser(User user) {
        return null;
    public boolean updateUserInfos(User user) {
        return updateById(user);
    }