package com.yami.trading.admin.controller.user; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yami.trading.admin.controller.service.SysUserOperService; import com.yami.trading.admin.controller.user.model.UserDataAddModel; import com.yami.trading.admin.facade.PermissionFacade; import com.yami.trading.admin.model.UpdateUserModel; import com.yami.trading.admin.model.UserDataListModel; import com.yami.trading.bean.model.Log; import com.yami.trading.bean.model.User; import com.yami.trading.bean.user.dto.UserDataDto; import com.yami.trading.common.annotation.SysLog; import com.yami.trading.common.constants.Constants; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.YamiShopBindException; import com.yami.trading.common.util.IPHelper; import com.yami.trading.security.common.manager.PasswordManager; import com.yami.trading.security.common.util.SecurityUtils; import com.yami.trading.service.system.LogService; import com.yami.trading.service.user.UserRecomService; import com.yami.trading.service.user.UserService; import com.yami.trading.sys.service.SysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; @RestController @CrossOrigin @RequestMapping("userData") @Api(tags = "用户基础数据") public class UserDataController { @Autowired UserService userService; @Autowired SysUserService sysUserService; @Autowired PasswordManager passwordManager; @Autowired PasswordEncoder passwordEncoder; @Autowired UserRecomService userRecomService; @Autowired SysUserOperService sysUserOperService; @Autowired private PermissionFacade permissionFacade; @Autowired LogService logService; @PostMapping("list") @ApiOperation("列表") public Result> list(@Valid @RequestBody UserDataListModel model) { List roleNames = new ArrayList<>(); if (StrUtil.isEmpty(model.getRolename())) { roleNames.add(Constants.SECURITY_ROLE_GUEST); roleNames.add(Constants.SECURITY_ROLE_MEMBER); roleNames.add(Constants.SECURITY_ROLE_TEST); } else { roleNames.add(model.getRolename()); } Page page = new Page(model.getCurrent(), model.getSize()); userService.listUserAndRecom(page, roleNames, model.getUserCode(), model.getUserName(), model.getLastIp(), permissionFacade.getOwnerUserIds(), model.getUserMail(), model.getUserMobile()); for (UserDataDto userDataDto : page.getRecords()) { userDataDto.setOnline(userService.isOnline(userDataDto.getUserId())); // userDataDto.setLoginAuthority(userDataDto.getStatus() == 1); userDataDto.setUserRegip(userDataDto.getUserLastip()); userDataDto.setUserLevel(userDataDto.getUserLevel() / 10); } return Result.ok(page); } @ApiOperation(value = "修改用户") @PostMapping("update") @SysLog("修改用户") public Result update(@Valid @RequestBody UpdateUserModel model) { User user = userService.getById(model.getUserId()); if (user == null) { throw new YamiShopBindException("参数错误!"); } boolean isLoginAuthority = user.isLoginAuthority(); boolean isEnabled = user.isEnabled(); boolean isWithdrawAuthority = user.isWithdrawAuthority(); boolean isRealNameAuthority = user.isRealNameAuthority(); String oldRemarks = user.getRemarks(); int oldUserLevel = user.getUserLevel() / 10; user.setEnabled(model.isEnabled()); user.setRemarks(model.getRemarks()); user.setWithdrawAuthority(model.isWithdrawAuthority()); user.setLoginAuthority(model.isLoginAuthority()); Boolean realNameAuthority = model.getRealNameAuthority(); if (realNameAuthority != null) { user.setRealNameAuthority(realNameAuthority); } if (model.getUserLevel() >= 0) { user.setUserLevel(model.getUserLevel() * 10 + user.getUserLevel() % 10); } userService.updateById(user); String logtxt = MessageFormat.format( "ip:" + IPHelper.getIpAddr() + ",管理员手动修改了用户信息,用户名:{0},原登录权限:{1},原是否业务锁定:{2},原提现权限:{3},原基础认证:{4},原备注:{5},原信用分:{6},现登录权限:{7},现是否业务锁定:{8},现提现权限:{9},现基础认证:{10},现备注:{11},现信用分:{12}", user.getUserName(), isLoginAuthority, isEnabled, isWithdrawAuthority, isRealNameAuthority, oldRemarks, oldUserLevel, user.isLoginAuthority(), user.isEnabled(), user.isWithdrawAuthority(), user.isRealNameAuthority(), user.getRemarks(), user.getUserLevel() / 10); Log log = new Log(); log.setCategory(Constants.LOG_CATEGORY_OPERATION); log.setUsername(user.getUserName()); log.setOperator(SecurityUtils.getSysUser().getUsername()); log.setUserId(user.getUserId()); log.setLog(logtxt); logService.save(log); return Result.ok(null); } @ApiOperation(" 新增 演示账号") @PostMapping(value = "add") public Result add(@RequestBody @Valid UserDataAddModel request) { request.setPassword(passwordManager.decryptPassword(request.getPassword())); String username = request.getUsername().replace(" ", ""); String password = request.getPassword().replace(" ", ""); userService.saveUser(username, password, request.isLoginAuthority(), request.isEnabled(), request.getRemarks(), SecurityUtils.getSysUser().getUsername(), IPHelper.getIpAddr(), request.getParentsUseCode()); return Result.succeed(); } }