Commit a5ddfc3e authored by wzp's avatar wzp

修改bug

parent c1560baa
...@@ -83,11 +83,11 @@ public class TUser implements Serializable { ...@@ -83,11 +83,11 @@ public class TUser implements Serializable {
private Boolean permanent; private Boolean permanent;
@ApiModelProperty("生效日期") @ApiModelProperty("生效日期")
@TableField("effective_date") @TableField(value = "effective_date",updateStrategy = FieldStrategy.IGNORED)
private LocalDate effectiveDate; private LocalDate effectiveDate;
@ApiModelProperty("失效日期") @ApiModelProperty("失效日期")
@TableField("exired_date") @TableField(value = "exired_date",updateStrategy = FieldStrategy.IGNORED)
private LocalDate exiredDate; private LocalDate exiredDate;
@ApiModelProperty(value = "状态", allowableValues = "启用 ENABLE, 禁用DISABLE") @ApiModelProperty(value = "状态", allowableValues = "启用 ENABLE, 禁用DISABLE")
......
...@@ -171,12 +171,12 @@ public class ChinaMobileRestApiController extends BaseController { ...@@ -171,12 +171,12 @@ public class ChinaMobileRestApiController extends BaseController {
try { try {
//访问一次,计数一次 //访问一次,计数一次
ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue(); // ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
if ("LOCK".equals(opsForValue.get(SHIRO_IS_LOCK + username))) { // if ("LOCK".equals(opsForValue.get(SHIRO_IS_LOCK + username))) {
resultMap.put("resultCode", "400"); // resultMap.put("resultCode", "400");
resultMap.put("message", "由于密码输入错误次数大于5次,12小时内帐号已禁止登录!请您联系相关管理人员,联系电话:13924551212,邮箱:325346534@zh.com。"); // resultMap.put("message", "由于密码输入错误次数大于5次,12小时内帐号已禁止登录!请您联系相关管理人员,联系电话:13924551212,邮箱:325346534@zh.com。");
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap); // return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap);
} // }
user = userService.selectByUsername(username); user = userService.selectByUsername(username);
if (user == null) { if (user == null) {
resultMap.put("resultCode", "500"); resultMap.put("resultCode", "500");
...@@ -206,15 +206,15 @@ public class ChinaMobileRestApiController extends BaseController { ...@@ -206,15 +206,15 @@ public class ChinaMobileRestApiController extends BaseController {
byte[] salt = user.getPasswordSalt(); byte[] salt = user.getPasswordSalt();
if (!new String(SHA256PasswordEncryptionService.createPasswordHash(password, salt)).equals(new String(user.getPasswordHash()))) { if (!new String(SHA256PasswordEncryptionService.createPasswordHash(password, salt)).equals(new String(user.getPasswordHash()))) {
opsForValue.increment(SHIRO_LOGIN_COUNT + username, 1); // opsForValue.increment(SHIRO_LOGIN_COUNT + username, 1);
//计数大于5时,设置用户被锁定一小时 // //计数大于5时,设置用户被锁定一小时
String s = opsForValue.get(SHIRO_LOGIN_COUNT + username); // String s = opsForValue.get(SHIRO_LOGIN_COUNT + username);
if (StringUtils.isNotBlank(s)) { // if (StringUtils.isNotBlank(s)) {
if (Integer.parseInt(s) >= 5) { // if (Integer.parseInt(s) >= 5) {
opsForValue.set(SHIRO_IS_LOCK + username, "LOCK"); // opsForValue.set(SHIRO_IS_LOCK + username, "LOCK");
stringRedisTemplate.expire(SHIRO_IS_LOCK + username, 12, TimeUnit.HOURS); // stringRedisTemplate.expire(SHIRO_IS_LOCK + username, 12, TimeUnit.HOURS);
} // }
} // }
throw new IncorrectCredentialsException("用户名或密码不正确!"); throw new IncorrectCredentialsException("用户名或密码不正确!");
} }
String token = JwtTokenUtil.sign(username, user.getId()); String token = JwtTokenUtil.sign(username, user.getId());
......
...@@ -125,12 +125,12 @@ public class LoginController extends BaseController { ...@@ -125,12 +125,12 @@ public class LoginController extends BaseController {
try { try {
//访问一次,计数一次 //访问一次,计数一次
ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue(); // ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
if ("LOCK".equals(opsForValue.get(SHIRO_IS_LOCK + username))) { // if ("LOCK".equals(opsForValue.get(SHIRO_IS_LOCK + username))) {
resultMap.put("resultCode", "500"); // resultMap.put("resultCode", "500");
resultMap.put("message", "由于密码输入错误次数大于5次,12小时内帐号已禁止登录!请您联系相关管理人员。"); // resultMap.put("message", "由于密码输入错误次数大于5次,12小时内帐号已禁止登录!请您联系相关管理人员。");
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap); // return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap);
} // }
user = userService.selectByUsername(username); user = userService.selectByUsername(username);
if (user == null) { if (user == null) {
...@@ -156,20 +156,21 @@ public class LoginController extends BaseController { ...@@ -156,20 +156,21 @@ public class LoginController extends BaseController {
byte[] salt = user.getPasswordSalt(); byte[] salt = user.getPasswordSalt();
String s1 = new String(SHA256PasswordEncryptionService.createPasswordHash(password, salt)); String s1 = new String(SHA256PasswordEncryptionService.createPasswordHash(password, salt));
if (!new String(SHA256PasswordEncryptionService.createPasswordHash(password, salt)).equals(new String(user.getPasswordHash()))) { if (!new String(SHA256PasswordEncryptionService.createPasswordHash(password, salt)).equals(new String(user.getPasswordHash()))) {
opsForValue.increment(SHIRO_LOGIN_COUNT + username, 1); // opsForValue.increment(SHIRO_LOGIN_COUNT + username, 1);
//计数大于5时,设置用户被锁定12小时 // //计数大于5时,设置用户被锁定12小时
//
//测试设置5000次 // //测试设置5000次
int i = 5000; // int i = 5000;
String s = opsForValue.get(SHIRO_LOGIN_COUNT + username); // String s = opsForValue.get(SHIRO_LOGIN_COUNT + username);
if (StringUtils.isNotBlank(s)) { // if (StringUtils.isNotBlank(s)) {
if (Integer.parseInt(s) >= i) { // if (Integer.parseInt(s) >= i) {
opsForValue.set(SHIRO_IS_LOCK + username, "LOCK"); // opsForValue.set(SHIRO_IS_LOCK + username, "LOCK");
stringRedisTemplate.expire(SHIRO_IS_LOCK + username, 12, TimeUnit.HOURS); // stringRedisTemplate.expire(SHIRO_IS_LOCK + username, 12, TimeUnit.HOURS);
} // }
} // }
resultMap.put("resultCode", "500"); resultMap.put("resultCode", "500");
resultMap.put("message", "密码不正确,您还有" + (i - Integer.parseInt(s)) + "次机会!"); resultMap.put("message", "密码不正确!");
// resultMap.put("message", "密码不正确,您还有" + (i - Integer.parseInt(s)) + "次机会!");
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap);
} }
List<Role> roles = roleService.selectRoleByUserId(user.getId()); List<Role> roles = roleService.selectRoleByUserId(user.getId());
...@@ -192,7 +193,6 @@ public class LoginController extends BaseController { ...@@ -192,7 +193,6 @@ public class LoginController extends BaseController {
String token = JwtTokenUtil.sign(username, user.getId()); String token = JwtTokenUtil.sign(username, user.getId());
// 将token信息存入Redis // 将token信息存入Redis
stringRedisTemplate.opsForValue().set(SHIRO_JWT_TOKEN + token, user.getId(), 12, TimeUnit.HOURS); stringRedisTemplate.opsForValue().set(SHIRO_JWT_TOKEN + token, user.getId(), 12, TimeUnit.HOURS);
resultMap.put("user", user); resultMap.put("user", user);
resultMap.put("token", token); resultMap.put("token", token);
resultMap.put("menuList", userMenuPerms); resultMap.put("menuList", userMenuPerms);
......
package cn.wisenergy.chnmuseum.party.web.controller; package cn.wisenergy.chnmuseum.party.web.controller;
import cn.wisenergy.chnmuseum.party.auth.util.JwtTokenUtil;
import cn.wisenergy.chnmuseum.party.common.log.MethodLog; import cn.wisenergy.chnmuseum.party.common.log.MethodLog;
import cn.wisenergy.chnmuseum.party.common.log.OperModule; import cn.wisenergy.chnmuseum.party.common.log.OperModule;
import cn.wisenergy.chnmuseum.party.common.log.OperType; import cn.wisenergy.chnmuseum.party.common.log.OperType;
...@@ -19,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -19,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -47,6 +49,9 @@ public class TBoxOperationController extends BaseController { ...@@ -47,6 +49,9 @@ public class TBoxOperationController extends BaseController {
@Resource @Resource
private TUserServiceImpl userService; private TUserServiceImpl userService;
@Resource
private StringRedisTemplate stringRedisTemplate;
@ApiImplicitParams(value = { @ApiImplicitParams(value = {
@ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"), @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
@ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"), @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
......
...@@ -19,6 +19,7 @@ import cn.wisenergy.chnmuseum.party.service.impl.AuditServiceImpl; ...@@ -19,6 +19,7 @@ import cn.wisenergy.chnmuseum.party.service.impl.AuditServiceImpl;
import cn.wisenergy.chnmuseum.party.service.impl.TBoxOperationServiceImpl; import cn.wisenergy.chnmuseum.party.service.impl.TBoxOperationServiceImpl;
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController; import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
...@@ -337,7 +338,6 @@ public class TUserController extends BaseController { ...@@ -337,7 +338,6 @@ public class TUserController extends BaseController {
return resultMap; return resultMap;
} }
} }
// user.setUserName(StringUtils.trimToNull(user.getUserName())); // user.setUserName(StringUtils.trimToNull(user.getUserName()));
// user.setPassword(StringUtils.trimToNull(user.getPassword())); // user.setPassword(StringUtils.trimToNull(user.getPassword()));
// user.setRealName(StringUtils.trimToNull(user.getRealName())); // user.setRealName(StringUtils.trimToNull(user.getRealName()));
...@@ -831,5 +831,62 @@ public class TUserController extends BaseController { ...@@ -831,5 +831,62 @@ public class TUserController extends BaseController {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultMap);
} }
@OperationLog("修改成员信息")
@ApiOperation(value = "编辑用户信息")
@PutMapping(value = "/boxUpdate")
@RequiresAuthentication //@RequiresPermissions("/user/boxUpdate")
@MethodLog(operModule = OperModule.STBBASE, operType = OperType.UPDATE)
public Map<String, Object> boxUpdate(@RequestBody TUser user) {
Map<String, Object> resultMap = new HashMap<>();
try {
boolean ret = false;
if (StringUtils.isNotBlank(user.getOrgName())) {
QueryWrapper<TUser> ew = new QueryWrapper<>();
ew.eq("is_deleted", false);
ew.eq("type", "3");
ew.eq("user_name", user.getOrgName());
TUser one = userService.getOne(ew);
one.setPermanent(false);
one.setEffectiveDate(null);
one.setExiredDate(null);
if (user.getPermanent()!=null){
one.setPermanent(user.getPermanent());
}
if (user.getEffectiveDate()!=null){
one.setEffectiveDate(user.getEffectiveDate());
}
if (user.getExiredDate()!=null){
one.setExiredDate(user.getExiredDate());
}
user=one;
ret = userService.updateById(user);
} else {
// 更新失败, 400
resultMap.put("resultCode", "400");
resultMap.put("message", "请选择用户");
return resultMap;
}
if (!ret) {
// 更新失败, 500
resultMap.put("resultCode", "500");
resultMap.put("message", "服务器忙");
return resultMap;
}
// 204
resultMap.put("resultCode", "200");
resultMap.put("message", "更新成功");
return resultMap;
} catch (Exception e) {
logger.error("更新错误!", e);
}
// 500
resultMap.put("resultCode", "500");
resultMap.put("message", "服务器忙");
return resultMap;
}
} }
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
r.* r.*
from t_user u from t_user u
left join t_user_role_link ur on ur.user_id = u.id left join t_user_role_link ur on ur.user_id = u.id
left join t_role r on ur.role_id = r.id inner join t_role r on ur.role_id = r.id
where u.id = #{id} where u.id = #{id}
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment