2023-05-11 17:23:36 完成设备管理的增、删、改、查接口!

master
魔神煜修罗皇 2 years ago
parent 6131313b1e
commit 46f117ee4c
  1. 2
      psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java
  2. 9
      psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java
  3. 16
      psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java
  4. 21
      psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
  5. 10
      psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml
  6. 4
      psdc-system/src/main/java/com/psdc/mapper/SysUserMapper.java
  7. 201
      psdc-system/src/main/java/com/psdc/service/impl/SysUserServiceImpl.java
  8. 7
      psdc-system/src/main/resources/mapper/system/SysUserMapper.xml
  9. 96
      psdc-web/src/main/java/com/psdc/controller/manager/PsdcDeviceController.java

@ -33,7 +33,7 @@ public class PsdcDevice {
/** 安装地址 */
private String deviceAddress ;
/** 启用时间 */
private Date startTime ;
private String startTime ;
/** 设备状态:1-未激活,2-禁用,3-在线,4-离线 */
private Integer deviceStatus ;
/** 图片地址 */

@ -36,10 +36,9 @@ public interface PsdcDeviceMapper{
* 分页查询指定行数据
*
* @param psdcDevice 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<PsdcDevice> queryAllByLimit(PsdcDevice psdcDevice, @Param("pageable") Pageable pageable);
List<PsdcDevice> queryAllByLimit(PsdcDevice psdcDevice);
/**
* 统计总行数
*
@ -64,10 +63,10 @@ public interface PsdcDeviceMapper{
/**
* 通过主键删除数据
*
* @param deviceId 主键
* @param deviceIds 主键
* @return 影响行数
*/
int deleteById(Integer deviceId);
int deleteById(@Param(value = "deviceIds") Long[] deviceIds);
/**
* 根据用户id查询设备
@ -82,5 +81,5 @@ public interface PsdcDeviceMapper{
* @return
*/
int updateDevRunStatusByDevId(@Param(value = "deviceId") Integer deviceId,
@Param(value = "runStatus") Integer runStatus);
@Param(value = "runStatus") Integer runStatus);
}

@ -38,7 +38,15 @@ public interface IPsdcDeviceService {
* @param psdcDevice 实例对象
* @return 实例对象
*/
PsdcDevice insert(PsdcDevice psdcDevice);
Integer insert(PsdcDevice psdcDevice);
/**
* 分页查询指定行数据
*
* @param psdcDevice 查询条件
* @return 对象列表
*/
List<PsdcDevice> queryAllByLimit(PsdcDevice psdcDevice);
/**
* 更新数据
@ -46,14 +54,14 @@ public interface IPsdcDeviceService {
* @param psdcDevice 实例对象
* @return 实例对象
*/
PsdcDevice update(PsdcDevice psdcDevice);
Integer update(PsdcDevice psdcDevice);
/**
* 通过主键删除数据
*
* @param deviceId 主键
* @param deviceIds 主键
* @return 是否成功
*/
boolean deleteById(Integer deviceId);
boolean deleteById(Long[] deviceIds);
/**
* 更新设备状态

@ -70,9 +70,13 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{
* @param psdcDevice 实例对象
* @return 实例对象
*/
public PsdcDevice insert(PsdcDevice psdcDevice){
psdcDeviceMapper.insert(psdcDevice);
return psdcDevice;
public Integer insert(PsdcDevice psdcDevice){
return psdcDeviceMapper.insert(psdcDevice);
}
@Override
public List<PsdcDevice> queryAllByLimit(PsdcDevice psdcDevice) {
return psdcDeviceMapper.queryAllByLimit(psdcDevice);
}
/**
@ -81,19 +85,18 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{
* @param psdcDevice 实例对象
* @return 实例对象
*/
public PsdcDevice update(PsdcDevice psdcDevice){
psdcDeviceMapper.update(psdcDevice);
return queryById(psdcDevice.getDeviceId());
public Integer update(PsdcDevice psdcDevice){
return psdcDeviceMapper.update(psdcDevice);
}
/**
* 通过主键删除数据
*
* @param deviceId 主键
* @param deviceIds 主键
* @return 是否成功
*/
public boolean deleteById(Integer deviceId){
int total = psdcDeviceMapper.deleteById(deviceId);
public boolean deleteById(Long[] deviceIds){
int total = psdcDeviceMapper.deleteById(deviceIds);
return total > 0;
}

@ -145,7 +145,6 @@
and update_time = #{updateTime}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
@ -249,7 +248,7 @@
device_status = #{deviceStatus},
</if>
<if test="deviceRunstatus != null and deviceRunstatus != ''">
and device_runstatus = #{deviceRunstatus}
device_runstatus = #{deviceRunstatus},
</if>
<if test="photoUrl != null and photoUrl != ''">
photo_url = #{photoUrl},
@ -263,7 +262,7 @@
<if test="updateBy != null and updateBy != ''">
update_by = #{updateBy},
</if>
<if test="updateTime != null and updateTime != ''">
<if test="updateTime != null ">
update_time = #{updateTime},
</if>
</set>
@ -272,7 +271,10 @@
<!--通过主键删除-->
<delete id="deleteById">
delete from psdc_device where device_id = #{deviceId}
delete from psdc_device where device_id in
<foreach collection="deviceIds" open="(" close=")" separator="," item="id">
#{id}
</foreach>
</delete>

@ -19,7 +19,9 @@ public interface SysUserMapper
* @param sysUser 用户信息
* @return 用户信息集合信息
*/
public List<SysUser> selectUserList(SysUser sysUser);
List<SysUser> selectUserList(SysUser sysUser);
List<SysUser> selectUserList2();
/**
* 根据条件分页查询已配用户角色列表

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -27,12 +28,11 @@ import com.psdc.service.ISysUserService;
/**
* 用户 业务层处理
*
*
* @author
*/
@Service
public class SysUserServiceImpl implements ISysUserService
{
public class SysUserServiceImpl implements ISysUserService {
private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
@Autowired
@ -52,76 +52,72 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 根据条件分页查询用户列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
@Override
public List<SysUser> selectUserList(SysUser user)
{
public List<SysUser> selectUserList(SysUser user) {
if (null == user){
return userMapper.selectUserList2();
}
return userMapper.selectUserList(user);
}
/**
* 根据条件分页查询已分配用户角色列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
@Override
public List<SysUser> selectAllocatedList(SysUser user)
{
public List<SysUser> selectAllocatedList(SysUser user) {
return userMapper.selectAllocatedList(user);
}
/**
* 根据条件分页查询未分配用户角色列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
@Override
public List<SysUser> selectUnallocatedList(SysUser user)
{
public List<SysUser> selectUnallocatedList(SysUser user) {
return userMapper.selectUnallocatedList(user);
}
/**
* 通过用户名查询用户
*
*
* @param userName 用户名
* @return 用户对象信息
*/
@Override
public SysUser selectUserByUserName(String userName)
{
public SysUser selectUserByUserName(String userName) {
return userMapper.selectUserByUserName(userName);
}
/**
* 通过用户ID查询用户
*
*
* @param userId 用户ID
* @return 用户对象信息
*/
@Override
public SysUser selectUserById(Long userId)
{
public SysUser selectUserById(Long userId) {
return userMapper.selectUserById(userId);
}
/**
* 查询用户所属角色组
*
*
* @param userName 用户名
* @return 结果
*/
@Override
public String selectUserRoleGroup(String userName)
{
public String selectUserRoleGroup(String userName) {
List<SysRole> list = roleMapper.selectRolesByUserName(userName);
if (CollectionUtils.isEmpty(list))
{
if (CollectionUtils.isEmpty(list)) {
return StringUtils.EMPTY;
}
return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(","));
@ -130,17 +126,15 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 校验用户名称是否唯一
*
*
* @param user 用户信息
* @return 结果
*/
@Override
public boolean checkUserNameUnique(SysUser user)
{
public boolean checkUserNameUnique(SysUser user) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkUserNameUnique(user.getUserName());
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
@ -153,12 +147,10 @@ public class SysUserServiceImpl implements ISysUserService
* @return
*/
@Override
public boolean checkPhoneUnique(SysUser user)
{
public boolean checkPhoneUnique(SysUser user) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
@ -171,12 +163,10 @@ public class SysUserServiceImpl implements ISysUserService
* @return
*/
@Override
public boolean checkEmailUnique(SysUser user)
{
public boolean checkEmailUnique(SysUser user) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkEmailUnique(user.getEmail());
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
@ -184,33 +174,28 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 校验用户是否允许操作
*
*
* @param user 用户信息
*/
@Override
public void checkUserAllowed(SysUser user)
{
if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin())
{
public void checkUserAllowed(SysUser user) {
if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
throw new ServiceException("不允许操作超级管理员用户");
}
}
/**
* 校验用户是否有数据权限
*
*
* @param userId 用户id
*/
@Override
public void checkUserDataScope(Long userId)
{
if (!SysUser.isAdmin(SecurityUtils.getUserId()))
{
public void checkUserDataScope(Long userId) {
if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
SysUser user = new SysUser();
user.setUserId(userId);
List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
if (StringUtils.isEmpty(users))
{
if (StringUtils.isEmpty(users)) {
throw new ServiceException("没有权限访问用户数据!");
}
}
@ -218,14 +203,13 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增保存用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@Override
@Transactional
public int insertUser(SysUser user)
{
public int insertUser(SysUser user) {
// 新增用户信息
int rows = userMapper.insertUser(user);
// 新增用户与角色管理
@ -235,26 +219,24 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 注册用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@Override
public boolean registerUser(SysUser user)
{
public boolean registerUser(SysUser user) {
return userMapper.insertUser(user) > 0;
}
/**
* 修改保存用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@Override
@Transactional
public int updateUser(SysUser user)
{
public int updateUser(SysUser user) {
Long userId = user.getUserId();
// 删除用户与角色关联
userRoleMapper.deleteUserRoleByUserId(userId);
@ -265,105 +247,95 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 用户授权角色
*
* @param userId 用户ID
*
* @param userId 用户ID
* @param roleIds 角色组
*/
@Override
@Transactional
public void insertUserAuth(Long userId, Long[] roleIds)
{
public void insertUserAuth(Long userId, Long[] roleIds) {
userRoleMapper.deleteUserRoleByUserId(userId);
insertUserRole(userId, roleIds);
}
/**
* 修改用户状态
*
*
* @param user 用户信息
* @return 结果
*/
@Override
public int updateUserStatus(SysUser user)
{
public int updateUserStatus(SysUser user) {
return userMapper.updateUser(user);
}
/**
* 修改用户基本信息
*
*
* @param user 用户信息
* @return 结果
*/
@Override
public int updateUserProfile(SysUser user)
{
public int updateUserProfile(SysUser user) {
return userMapper.updateUser(user);
}
/**
* 修改用户头像
*
*
* @param userName 用户名
* @param avatar 头像地址
* @param avatar 头像地址
* @return 结果
*/
@Override
public boolean updateUserAvatar(String userName, String avatar)
{
public boolean updateUserAvatar(String userName, String avatar) {
return userMapper.updateUserAvatar(userName, avatar) > 0;
}
/**
* 重置用户密码
*
*
* @param user 用户信息
* @return 结果
*/
@Override
public int resetPwd(SysUser user)
{
public int resetPwd(SysUser user) {
return userMapper.updateUser(user);
}
/**
* 重置用户密码
*
*
* @param userName 用户名
* @param password 密码
* @return 结果
*/
@Override
public int resetUserPwd(String userName, String password)
{
public int resetUserPwd(String userName, String password) {
return userMapper.resetUserPwd(userName, password);
}
/**
* 新增用户角色信息
*
*
* @param user 用户对象
*/
public void insertUserRole(SysUser user)
{
public void insertUserRole(SysUser user) {
this.insertUserRole(user.getUserId(), user.getRoleIds());
}
/**
* 新增用户角色信息
*
* @param userId 用户ID
*
* @param userId 用户ID
* @param roleIds 角色组
*/
public void insertUserRole(Long userId, Long[] roleIds)
{
if (StringUtils.isNotEmpty(roleIds))
{
public void insertUserRole(Long userId, Long[] roleIds) {
if (StringUtils.isNotEmpty(roleIds)) {
// 新增用户与角色管理
List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length);
for (Long roleId : roleIds)
{
for (Long roleId : roleIds) {
SysUserRole ur = new SysUserRole();
ur.setUserId(userId);
ur.setRoleId(roleId);
@ -375,14 +347,13 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 通过用户ID删除用户
*
*
* @param userId 用户ID
* @return 结果
*/
@Override
@Transactional
public int deleteUserById(Long userId)
{
public int deleteUserById(Long userId) {
// 删除用户与角色关联
userRoleMapper.deleteUserRoleByUserId(userId);
return userMapper.deleteUserById(userId);
@ -390,16 +361,14 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 批量删除用户信息
*
*
* @param userIds 需要删除的用户ID
* @return 结果
*/
@Override
@Transactional
public int deleteUserByIds(Long[] userIds)
{
for (Long userId : userIds)
{
public int deleteUserByIds(Long[] userIds) {
for (Long userId : userIds) {
checkUserAllowed(new SysUser(userId));
checkUserDataScope(userId);
}
@ -410,17 +379,15 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 导入用户数据
*
* @param userList 用户数据列表
*
* @param userList 用户数据列表
* @param isUpdateSupport 是否更新支持如果已存在则进行更新数据
* @param operName 操作用户
* @param operName 操作用户
* @return 结果
*/
@Override
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
{
if (StringUtils.isNull(userList) || userList.size() == 0)
{
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) {
if (StringUtils.isNull(userList) || userList.size() == 0) {
throw new ServiceException("导入用户数据不能为空!");
}
int successNum = 0;
@ -428,23 +395,18 @@ public class SysUserServiceImpl implements ISysUserService
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
String password = configService.selectConfigByKey("sys.user.initPassword");
for (SysUser user : userList)
{
try
{
for (SysUser user : userList) {
try {
// 验证是否存在这个用户
SysUser u = userMapper.selectUserByUserName(user.getUserName());
if (StringUtils.isNull(u))
{
if (StringUtils.isNull(u)) {
BeanValidators.validateWithException(validator, user);
user.setPassword(SecurityUtils.encryptPassword(password));
user.setCreateBy(operName);
this.insertUser(user);
successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
}
else if (isUpdateSupport)
{
} else if (isUpdateSupport) {
BeanValidators.validateWithException(validator, user);
checkUserAllowed(user);
checkUserDataScope(user.getUserId());
@ -452,28 +414,21 @@ public class SysUserServiceImpl implements ISysUserService
this.updateUser(user);
successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
}
else
{
} else {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
}
}
catch (Exception e)
{
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
if (failureNum > 0)
{
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}
else
{
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();

@ -64,6 +64,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
</select>
<select id="selectUserList2" resultMap="SysUserResult">
Select user_id, nick_name, user_name, email, avatar, phonenumber, sex, status,
del_flag, login_ip, login_date, create_by, create_time, remark
From sys_user
Where del_flag != '2'
</select>
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
Select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time

@ -0,0 +1,96 @@
package com.psdc.controller.manager;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.github.pagehelper.page.PageMethod;
import com.psdc.annotation.Log;
import com.psdc.core.controller.BaseController;
import com.psdc.core.domain.AjaxResult;
import com.psdc.core.domain.entity.SysUser;
import com.psdc.core.page.TableDataInfo;
import com.psdc.entity.PsdcControlLog;
import com.psdc.entity.PsdcDevice;
import com.psdc.enums.BusinessType;
import com.psdc.service.IPsdcDeviceService;
import com.psdc.service.ISysUserService;
import com.psdc.utils.SecurityUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* @Author戴仕崑
* @Projectpsdc
* @FilenamePsdcDeviceController
* @Date2023/5/11 15:13
* @Version 1.0
*/
@RestController
@RequestMapping("/manager/device")
public class PsdcDeviceController extends BaseController {
@Autowired
IPsdcDeviceService psdcDeviceService;
@Autowired
ISysUserService sysUserService;
@PreAuthorize("@ss.hasPermi('manager:device:list')")
@Log(title = "设备管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody PsdcDevice pd) {
long userId = SecurityUtils.getUserId();
pd.setCreateBy(sysUserService.selectUserById(userId).getUserName());
pd.setCreateTime(new Date());
return toAjax(psdcDeviceService.insert(pd));
}
@PreAuthorize("@ss.hasPermi('manager:device:list')")
@Log(title = "设备管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody PsdcDevice pd) {
long userId = SecurityUtils.getUserId();
pd.setUpdateBy(sysUserService.selectUserById(userId).getUserName());
pd.setUpdateTime(new Date());
return toAjax(psdcDeviceService.update(pd));
}
@PreAuthorize("@ss.hasPermi('manager:device:list')")
@Log(title = "设备管理", businessType = BusinessType.DELETE)
@DeleteMapping
public AjaxResult remove(@Validated @RequestBody Long[] deviceIds) {
return toAjax(psdcDeviceService.deleteById(deviceIds));
}
@PreAuthorize("@ss.hasPermi('manager:device:list')")
@RequestMapping(value = "/selusers", method = RequestMethod.GET)
public AjaxResult selAllUsers() {
List<Map> maps = new ArrayList<>();
List<SysUser> list = sysUserService.selectUserList(null);
for (SysUser dd : list){
Map<String, Object> map = new HashMap<>();
map.put("label", dd.getUserName());
map.put("value", dd.getUserId());
maps.add(map);
}
return AjaxResult.success("用户下来列表", maps);
}
@PreAuthorize("@ss.hasPermi('manager:device:list')")
@PostMapping("/devicesList")
public TableDataInfo controlLogList(@RequestBody JSONObject jsonObject) {
// PageMethod.startPage(jsonObject.getInteger("pageNum"),jsonObject.getInteger("pageSize"));
// PsdcDevice deviceVo = JSON.parseObject(String.valueOf(jsonObject), PsdcDevice.class);
PsdcDevice deviceVo = myPage(jsonObject, PsdcDevice.class);
List<PsdcDevice> list = psdcDeviceService.queryAllByLimit(deviceVo);
return getDataTable(list);
}
}
Loading…
Cancel
Save