diff --git a/psdc-admin/src/main/java/com/psdc/PsdcApplication.java b/psdc-admin/src/main/java/com/psdc/PsdcApplication.java index 3dfdf79..b520db2 100644 --- a/psdc-admin/src/main/java/com/psdc/PsdcApplication.java +++ b/psdc-admin/src/main/java/com/psdc/PsdcApplication.java @@ -2,18 +2,20 @@ package com.psdc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication() @EnableScheduling @EnableAsync +@EnableTransactionManagement public class PsdcApplication { public static void main(String[] args) { + SpringApplication.run(PsdcApplication.class, args); System.out.println("《= = = 系统启动成功 = = =》"); } diff --git a/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java b/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java index b7bc197..71fc46e 100644 --- a/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java +++ b/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java @@ -1,5 +1,6 @@ package com.psdc.entity; +import com.psdc.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -17,25 +18,43 @@ import java.util.Date; public class PsdcDevice { /** 设备id */ + @Excel(name = "设备Id", cellType = Excel.ColumnType.NUMERIC) private Integer deviceId ; /** 用户id */ private Integer userId ; + /** 用户名称 */ + @Excel(name = "用户名称") + private String userName ; + /** 设备类型:1-监测设备,2-运行设备 */ private Integer deviceType ; - /** 设备sn */ - private String deviceSn ; + /** 设备类型:1-监测设备,2-运行设备 */ + @Excel(name = "设备类型") + private String devType ; /** 设备名称 */ + @Excel(name = "设备名称") private String deviceName ; + /** 设备sn */ + @Excel(name = "设备Sn") + private String deviceSn ; /** 硬件版本 */ + @Excel(name = "硬件版本") private String hardVersion ; /** 软件版本 */ + @Excel(name = "软件版本") private String softVersion ; /** 安装地址 */ + @Excel(name = "安装地址") private String deviceAddress ; /** 启用时间 */ - private Date startTime ; + @Excel(name = "启用时间") + private String startTime ; + /** 设备状态:1-未激活,2-禁用,3-在线,4-离线 */ private Integer deviceStatus ; + /** 设备状态:1-未激活,2-禁用,3-在线,4-离线 */ + @Excel(name = "设备状态") + private String devStatus ; /** 图片地址 */ private String photoUrl ; /** 创建者 */ @@ -46,8 +65,12 @@ public class PsdcDevice { private String updateBy ; /** 修改时间 */ private Date updateTime ; + /** 设备运行状态:1-开启,2-关闭 */ private Integer deviceRunstatus ; + /** 设备运行状态:1-开启,2-关闭 */ + @Excel(name = "设备运行状态") + private String devRunstatus ; } diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java index 730bec2..9d6b6d8 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java @@ -36,10 +36,9 @@ public interface PsdcDeviceMapper{ * 分页查询指定行数据 * * @param psdcDevice 查询条件 - * @param pageable 分页对象 * @return 对象列表 */ - List queryAllByLimit(PsdcDevice psdcDevice, @Param("pageable") Pageable pageable); + List 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查询设备 @@ -84,6 +83,7 @@ public interface PsdcDeviceMapper{ int updateDevRunStatusByDevId(@Param(value = "deviceId") Integer deviceId, @Param(value = "runStatus") Integer runStatus); + /** * 根据设备id查询设备名称 * @param deviceId @@ -92,4 +92,7 @@ public interface PsdcDeviceMapper{ String queryDeviceNameByDeviceId(Integer deviceId); + + void saveDevicesData(@Param(value = "devRecord") List devRecord); + } \ No newline at end of file diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java index f392c0f..322f809 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java @@ -2,6 +2,7 @@ package com.psdc.service; import com.psdc.entity.PsdcDevice; import com.psdc.entity.vo.DeviceStatusVo; +import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; import java.util.List; @@ -38,7 +39,15 @@ public interface IPsdcDeviceService { * @param psdcDevice 实例对象 * @return 实例对象 */ - PsdcDevice insert(PsdcDevice psdcDevice); + Integer insert(PsdcDevice psdcDevice); + + /** + * 分页查询指定行数据 + * + * @param psdcDevice 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(PsdcDevice psdcDevice); /** * 更新数据 @@ -46,14 +55,16 @@ 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); + + boolean daoruDevicesData(MultipartFile file, String cjr); /** * 更新设备状态 diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java index 5c9575a..db7526e 100644 --- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java +++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java @@ -9,20 +9,26 @@ import com.psdc.mapper.PsdcControlLogMapper; import com.psdc.mapper.PsdcDeviceMapper; import com.psdc.service.IPsdcDeviceService; import com.psdc.utils.SecurityUtils; +import com.psdc.utils.poi.ExcelUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.InputStream; +import java.util.Date; import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; +import static org.springframework.transaction.annotation.Propagation.REQUIRES_NEW; + @Service @Slf4j -public class PsdcDeviceServiceImpl implements IPsdcDeviceService{ +public class PsdcDeviceServiceImpl implements IPsdcDeviceService { @Resource private PsdcDeviceMapper psdcDeviceMapper; @@ -36,21 +42,25 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{ * @param deviceId 主键 * @return 实例对象 */ - public PsdcDevice queryById(Integer deviceId){ + public PsdcDevice queryById(Integer deviceId) { return psdcDeviceMapper.queryById(deviceId); } - /** * 根据用户id查询设备列表 +<<<<<<< HEAD * @return 设备列表 +======= + * + * @return +>>>>>>> e7257650302fdf30d685bfae8df3cc0405bb51f6 */ - public List queryByUserId(){ + public List queryByUserId() { return psdcDeviceMapper.queryByUserId(SecurityUtils.getUserId()); } - public List queryDeviceStatus(){ + public List queryDeviceStatus() { List psdcDevices = psdcDeviceMapper.queryByUserId(SecurityUtils.getUserId()); return psdcDevices.stream().map(psdcDevice -> { DeviceStatusVo deviceStatusVo = new DeviceStatusVo(); @@ -70,9 +80,20 @@ 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 queryAllByLimit(PsdcDevice psdcDevice) { + List list = psdcDeviceMapper.queryAllByLimit(psdcDevice); + for (PsdcDevice dev : list){ + dev.setDevType(s("t", dev.getDeviceType())); + dev.setDevStatus(s("s", dev.getDeviceStatus())); + dev.setDevRunstatus(s("r", dev.getDeviceRunstatus())); + } + + return list; } /** @@ -81,54 +102,88 @@ 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; } + @Override + @Transactional(propagation = REQUIRES_NEW) + public boolean daoruDevicesData(MultipartFile file, String cjr) { + try { + // 需要将上传文件转成Stream流 + InputStream in = file.getInputStream(); + ExcelUtil util = new ExcelUtil<>(PsdcDevice.class); + List devices = util.importExcel(in); + for (PsdcDevice pd : devices){ + pd.setCreateBy(cjr); + pd.setCreateTime(new Date()); + pd.setDeviceType(Integer.parseInt(pd.getDevType())); + // 新导入的设备默认状态为: 未激活 + // 新导入的设备默认启动时间为null,请在设备激活后手动修改! + pd.setDeviceStatus(1); + // 新导入的设备默认运行状态为: 关闭 + pd.setDeviceRunstatus(2); + } + psdcDeviceMapper.saveDevicesData(devices); + return true; + } catch (Exception e) { + e.printStackTrace(); + log.info("Sorry,导入设备数据失败!+ 错误原因: {}", e.getMessage()); + return false; + } + } + /** * 更新设备状态 + * * @param deviceId * @param runStatus * @return */ @Override public int updateDeviceRunStatus(Integer deviceId, Integer runStatus) { - return psdcDeviceMapper.updateDevRunStatusByDevId(deviceId,runStatus); + return psdcDeviceMapper.updateDevRunStatusByDevId(deviceId, runStatus); } /** * 控制设备启动停止 +<<<<<<< HEAD * @param deviceId 主键 * @param runStatus 状态 * @return 条数 +======= + * + * @param deviceId + * @param runStatus + * @return +>>>>>>> e7257650302fdf30d685bfae8df3cc0405bb51f6 */ @Override - public int controlDeviceStartAndStop(Integer deviceId, Integer runStatus,String controlBy,Integer controlMethod) { + public int controlDeviceStartAndStop(Integer deviceId, Integer runStatus, String controlBy, Integer controlMethod) { String value = ""; - if(runStatus == 1){ + if (runStatus == 1) { value = "启动"; - } else { - if ( runStatus == 2 ) { - value = "停止"; - } + } else if (runStatus == 2) { + value = "停止"; } - log.info("设备id:{}",deviceId); + + log.info("设备id:{}", deviceId); PsdcDevice psdcDevice = psdcDeviceMapper.queryById(deviceId); - if(psdcDevice == null){ - psdcControlLogMapper.insert(new PsdcControlLog(deviceId,null,null,"设备启停",value,controlMethod,3,"未找到该设备",controlBy)); + if (psdcDevice == null) { + psdcControlLogMapper.insert(new PsdcControlLog(deviceId, null, null, "设备启停", value, controlMethod, 3, "未找到该设备", controlBy)); throw new ControlException("控制失败,未找到该设备"); } @@ -136,21 +191,22 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{ // psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),"设备启停",value,controlMethod,3,"手动控制,等待终端响应超时",controlBy)); // 发送成功 - psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),"设备启停",value,controlMethod,2,"手动控制,控制成功",controlBy)); - return psdcDeviceMapper.updateDevRunStatusByDevId(deviceId,runStatus); + psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(), psdcDevice.getDeviceSn(), "设备启停", value, controlMethod, 2, "手动控制,控制成功", controlBy)); + return psdcDeviceMapper.updateDevRunStatusByDevId(deviceId, runStatus); + } @Override - public int setTemperature(Integer deviceId, List data, String controlBy,Integer controlMethod) { + public int setTemperature(Integer deviceId, List data, String controlBy, Integer controlMethod) { - log.info("设备id:{}",deviceId); - log.info("控制指令:{}",data); + log.info("设备id:{}", deviceId); + log.info("控制指令:{}", data); PsdcDevice psdcDevice = psdcDeviceMapper.queryById(deviceId); - if(psdcDevice == null){ - psdcControlLogMapper.insert(new PsdcControlLog(deviceId,null,null,"设定温度",null,controlMethod,3,"未找到该设备",controlBy)); + if (psdcDevice == null) { + psdcControlLogMapper.insert(new PsdcControlLog(deviceId, null, null, "设定温度", null, controlMethod, 3, "未找到该设备", controlBy)); throw new ControlException("控制失败,未找到该设备"); } @@ -166,7 +222,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{ // psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),controlContext,controlValue,controlMethod,3,"等待终端响应超时",controlBy)); //发送成功 - psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),controlContext,controlValue,controlMethod,2,"控制成功",controlBy)); + psdcControlLogMapper.insert(new PsdcControlLog(deviceId, psdcDevice.getDeviceName(), psdcDevice.getDeviceSn(), controlContext, controlValue, controlMethod, 2, "控制成功", controlBy)); atomicInteger.incrementAndGet(); } return atomicInteger.get(); @@ -174,6 +230,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{ /** * 单条控制指令 + * * @param deviceId * @param key * @param value @@ -182,17 +239,17 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{ * @return */ @Override - public int setTemperature(Integer deviceId, String key,String value, String controlBy,Integer controlMethod) { + public int setTemperature(Integer deviceId, String key, String value, String controlBy, Integer controlMethod) { - log.info("设备id:{}",deviceId); - log.info("控制指令:{}",key); - log.info("控制内容:{}",value); + log.info("设备id:{}", deviceId); + log.info("控制指令:{}", key); + log.info("控制内容:{}", value); String controlContext = ControlKeyEnum.getControlContext(key); PsdcDevice psdcDevice = psdcDeviceMapper.queryById(deviceId); - if(psdcDevice == null){ - psdcControlLogMapper.insert(new PsdcControlLog(deviceId,null,null,controlContext,null,controlMethod,3,"未找到该设备",controlBy)); + if (psdcDevice == null) { + psdcControlLogMapper.insert(new PsdcControlLog(deviceId, null, null, controlContext, null, controlMethod, 3, "未找到该设备", controlBy)); throw new ControlException("控制失败,未找到该设备"); } @@ -202,7 +259,39 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService{ // psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),controlContext,value,controlMethod,3,"等待终端响应超时",controlBy)); //发送成功 - return psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),controlContext,value,controlMethod,2,"控制成功",controlBy)); + return psdcControlLogMapper.insert(new PsdcControlLog(deviceId, psdcDevice.getDeviceName(), psdcDevice.getDeviceSn(), controlContext, value, controlMethod, 2, "控制成功", controlBy)); } + + private String s(String s, int i) { + switch (s) { + case "s": + switch (i) { + case 1: + return "未激活"; + case 2: + return "禁用"; + case 3: + return "在线"; + case 4: + return "离线"; + } + case "t": + switch (i) { + case 1: + return "监测设备"; + case 2: + return "运行设备"; + } + case "r": + switch (i) { + case 1: + return "开启"; + case 2: + return "关闭"; + } + default: + return s; + } + } } \ No newline at end of file diff --git a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml index 2161955..9c642c3 100644 --- a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml +++ b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml @@ -145,7 +145,6 @@ and update_time = #{updateTime} - limit #{pageable.offset}, #{pageable.pageSize} @@ -214,6 +213,17 @@ #{updateTime}) + + Insert into psdc_device(user_id, device_type, device_sn, device_name, hard_version, soft_version, + device_address, start_time, device_status, device_runstatus, photo_url, create_by, + create_time, update_by, update_time) + Values + + (NULL, #{entity.deviceType}, #{entity.deviceSn}, #{entity.deviceName}, #{entity.hardVersion}, #{entity.softVersion}, #{entity.deviceAddress}, + #{entity.startTime}, #{entity.deviceStatus}, #{entity.deviceRunstatus}, #{entity.photoUrl}, #{entity.createBy}, #{entity.createTime}, NULL, NULL) + + + update psdc_device @@ -249,7 +259,7 @@ device_status = #{deviceStatus}, - and device_runstatus = #{deviceRunstatus} + device_runstatus = #{deviceRunstatus}, photo_url = #{photoUrl}, @@ -263,7 +273,7 @@ update_by = #{updateBy}, - + update_time = #{updateTime}, @@ -272,7 +282,10 @@ - delete from psdc_device where device_id = #{deviceId} + delete from psdc_device where device_id in + + #{id} + diff --git a/psdc-system/src/main/java/com/psdc/mapper/SysUserMapper.java b/psdc-system/src/main/java/com/psdc/mapper/SysUserMapper.java index 0393f82..6d3e5b7 100644 --- a/psdc-system/src/main/java/com/psdc/mapper/SysUserMapper.java +++ b/psdc-system/src/main/java/com/psdc/mapper/SysUserMapper.java @@ -19,7 +19,9 @@ public interface SysUserMapper * @param sysUser 用户信息 * @return 用户信息集合信息 */ - public List selectUserList(SysUser sysUser); + List selectUserList(SysUser sysUser); + + List selectUserList2(); /** * 根据条件分页查询已配用户角色列表 diff --git a/psdc-system/src/main/java/com/psdc/service/impl/SysUserServiceImpl.java b/psdc-system/src/main/java/com/psdc/service/impl/SysUserServiceImpl.java index da2e339..54ac623 100644 --- a/psdc-system/src/main/java/com/psdc/service/impl/SysUserServiceImpl.java +++ b/psdc-system/src/main/java/com/psdc/service/impl/SysUserServiceImpl.java @@ -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 selectUserList(SysUser user) - { + public List selectUserList(SysUser user) { + if (null == user){ + return userMapper.selectUserList2(); + } return userMapper.selectUserList(user); } /** * 根据条件分页查询已分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override - public List selectAllocatedList(SysUser user) - { + public List selectAllocatedList(SysUser user) { return userMapper.selectAllocatedList(user); } /** * 根据条件分页查询未分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override - public List selectUnallocatedList(SysUser user) - { + public List 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 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 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 list = new ArrayList(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 userList, Boolean isUpdateSupport, String operName) - { - if (StringUtils.isNull(userList) || userList.size() == 0) - { + public String importUser(List 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("
" + 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("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); - } - else - { + } else { failureNum++; failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); } - } - catch (Exception e) - { + } catch (Exception e) { failureNum++; String msg = "
" + 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(); diff --git a/psdc-system/src/main/resources/mapper/system/SysUserMapper.xml b/psdc-system/src/main/resources/mapper/system/SysUserMapper.xml index d877029..8cda44d 100644 --- a/psdc-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/psdc-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -64,6 +64,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
+ +