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.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.util.SecurityUtils; import com.yami.trading.security.common.manager.PasswordManager; 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.core.parameters.P; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @RestController @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; @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()); for (UserDataDto userDataDto : page.getRecords()) { userDataDto.setOnline(userService.isOnline(userDataDto.getUserId())); userDataDto.setLoginAuthority(userDataDto.getStatus()==1); userDataDto.setUserRegip(userDataDto.getUserLastip()); } 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("参数错误!"); } // if (Constants.SECURITY_ROLE_AGENT.equals(user.getRoleName())||Constants.SECURITY_ROLE_AGENTLOW.equals(user.getRoleName())) { // &&user!=null&&!Constants.SECURITY_ROLE_GUEST.equals(user.getRolename())) { // if(!Constants.SECURITY_ROLE_GUEST.equals(user.getRoleName())) { // throw new YamiShopBindException("只能修改演示账户"); // } // List children = userRecomService.findChildren(sec.getPartyId()); // if(!children.contains(partyId)) { // throw new YamiShopBindException("只能修改自己线下的用户演示账户"); // // } // } user.setEnabled(model.isEnabled()); user.setRemarks(model.getRemarks()); user.setStatus(model.isLoginAuthority()?1:0); user.setWithdrawAuthority(model.isWithdrawAuthority()); user.setStatus(model.isLoginAuthority() ? 1 : 0); userService.updateById(user); 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().getUserId().toString(), IPHelper.getIpAddr(), request.getParentsUseCode()); return Result.succeed(); } }