lidongdong
2022-10-10 3e3d5f69ab4eb77ab5e09a814c33ffb8237a54f7
flower_city/src/main/java/com/dg/core/controller/UserController.java
@@ -4,20 +4,19 @@
import com.dg.core.HttpStatus;
import com.dg.core.ResultData;
import com.dg.core.annotation.Authorization;
import com.dg.core.db.gen.entity.HuaChengSysUser;
import com.dg.core.db.gen.entity.SysUser;
import com.dg.core.manager.TokenManager;
import com.dg.core.service.IHuaChengSysUserService;
import com.dg.core.util.SmsUtil;
import com.dg.core.util.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.repository.query.Param;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.util.HashMap;
@@ -34,10 +33,14 @@
    @Autowired
    SmsUtil smsUtil;
    @Autowired
    TokenManager tokenManager;
    /**
     * 花城e+用户接口
     */
    @Autowired
    IHuaChengSysUserService iHuaChengSysUserService;
    @ApiOperation("登录接口")
    @PostMapping(path = "/login")
@@ -45,37 +48,96 @@
        Assert.notNull(account, "username can not be empty");
        Assert.notNull(password, "password can not be empty");
        SysUser user = IUserService.getUserByAccount(account);
        if (user == null || !password.equals(user.getPassword())) {
            //提示用户名或密码错误
            return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误");
        SysUser user=null;
        //管理员登录
        user= IUserService.getUserByAccount(account);
        if(user==null)
        {
            HuaChengSysUser huaChengSysUser=iHuaChengSysUserService.selectData("",account,"");
            if(huaChengSysUser==null || !password.equals(huaChengSysUser.getPassword()))
            {
                //提示用户名或密码错误
                return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误");
            }
            //本地表查询用户
            user = IUserService.selectData(huaChengSysUser.getUserId()+"");
            if (user == null) {
                //本地没有此用户  新用户
                SysUser newSysUser=new SysUser();
                //默认  1系统后台用户
                newSysUser.setUserType("1");
                newSysUser.setPhonenumber(huaChengSysUser.getPhone());
                newSysUser.setUserId(huaChengSysUser.getUserId());
                newSysUser.setUserName(huaChengSysUser.getNickName());
                newSysUser.setSex(huaChengSysUser.getSex());
                newSysUser.setAvatar(huaChengSysUser.getImageUrl());
                newSysUser.setCreateTime(LocalDateTime.now());
                newSysUser.setUpdateTime(LocalDateTime.now());
                newSysUser.setOpenid(huaChengSysUser.getOpenid());
                IUserService.insertConfig(newSysUser);
            }
            user = IUserService.selectData(huaChengSysUser.getUserId()+"");
            if (user == null) {
                return ResultData.error("用户不存在!请联系管理员");
            }
            String token = tokenManager.getTokenByUserId(user.getUserId());
            System.out.println("token "+token);
            if (token == null) {
                //生成一个token,保存用户登录状态
                token = tokenManager.createToken(user.getUserId(), user.getUserId());
            }
            user.setLoginDate(LocalDateTime.now());
            //更新登录时间
            IUserService.updateConfig(user);
            Map<String, Object> map = new HashMap<>();
            map.put("token", token);
            map.put("userId", user.getUserId());
            map.put("userName", user.getUserName());
            return ResultData.success(map);
        }
        else
        {
            if(!password.equals(user.getPassword()))
            {
                //提示用户名或密码错误
                return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误");
            }
            String token = tokenManager.getTokenByUserId(user.getUserId());
            System.out.println("token "+token);
            if (token == null) {
                //生成一个token,保存用户登录状态
                token = tokenManager.createToken(user.getUserId(), user.getUserId());
            }
            user.setLoginDate(LocalDateTime.now());
            //更新登录时间
            IUserService.updateConfig(user);
            Map<String, Object> map = new HashMap<>();
            map.put("token", token);
            map.put("userId", user.getUserId());
            map.put("userName", user.getUserName());
            return ResultData.success(map);
        }
        String token = tokenManager.getTokenByUserId(user.getUserId());
//        String token = tokenManager.createToken(user.getUserId(), user.getRoleId());
        System.out.println("token "+token);
        if (token == null) {
            //生成一个token,保存用户登录状态
            token = tokenManager.createToken(user.getUserId(), user.getUserId());
        }
        user.setLoginDate(LocalDateTime.now());
        //更新登录时间
        IUserService.updateConfig(user);
        Map<String, Object> map = new HashMap<>();
        map.put("token", token);
        map.put("userId", user.getUserId());
        map.put("userName", user.getUserName());
        return ResultData.success(map);
    }
    @ApiOperation("发送登录短信验证码")
    @PostMapping(value = "/sendSms", consumes = "application/json")
    public ResultData smsSend(@RequestBody SysUser user) {
            return IUserService.smsSend(user);
    }
    @ApiOperation("账号密码验证登录")
    @GetMapping(value = "/loginByAccount")
@@ -206,7 +268,7 @@
            return error("userId不能为空");
        }
        SysUser sysUser=IUserService.getUserById(Long.valueOf(userId));
        SysUser sysUser=IUserService.selectData(userId);
        //删除标志(0代表存在 2代表删除)
        sysUser.setDelFlag("2");
        return toAjax(IUserService.updateConfig(sysUser));
@@ -234,7 +296,7 @@
            return error("密码不能为空");
        }
        SysUser sysUser=IUserService.getUserById(config.getUserId());
        SysUser sysUser=IUserService.selectData(config.getUserId()+"");
        if(sysUser==null)
        {
            return error("用户不存在");