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;
@@ -27,7 +26,7 @@
@Api(tags = {"用户接口"})
@RestController
@RequestMapping("/user")
public class UserController extends BaseController{
public class UserController extends BaseController {
    @Autowired
    com.dg.core.service.ISysUserService IUserService;
@@ -37,37 +36,101 @@
    @Autowired
    TokenManager tokenManager;
    /**
     * 花城e+用户接口
     */
    @Autowired
    IHuaChengSysUserService iHuaChengSysUserService;
    @ApiOperation("登录接口")
    @PostMapping(path = "/login")
    public ResultData login(@RequestParam String account, @RequestParam String password, HttpServletRequest request) {
        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("3");
                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")
@@ -75,10 +138,23 @@
            return IUserService.smsSend(user);
    }
    @ApiOperation("账号密码验证登录")
    @GetMapping(value = "/loginByAccount")
    public ResultData loginByAccount(@RequestParam String phonenumber,@RequestParam String code) {
        return IUserService.loginByAccount(phonenumber,code);
    }
    @ApiOperation("通过手机号获取用户信息 登录")
    @PostMapping(value = "/loginPhionne")
    public ResultData loginPhionne(@RequestParam String phonenumber)
    {
        if(StringUtils.isEmpty(phonenumber))
        {
            return ResultData.error("请输入手机号");
        }
        return IUserService.loginByPhonenumber(phonenumber);
    }
    /**
@@ -136,7 +212,7 @@
            return error("该账户已存在!");
        }
        config.setUserType("1");
        config.setUserType("3");
        config.setCreateTime(LocalDateTime.now());
        config.setUpdateTime(LocalDateTime.now());
@@ -165,7 +241,7 @@
            return error("账户不能为空");
        }
        config.setUserType("1");
        config.setUserType("3");
        return toAjax(IUserService.updateConfig(config));
    }
@@ -204,7 +280,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));
@@ -232,7 +308,7 @@
            return error("密码不能为空");
        }
        SysUser sysUser=IUserService.getUserById(config.getUserId());
        SysUser sysUser=IUserService.selectData(config.getUserId()+"");
        if(sysUser==null)
        {
            return error("用户不存在");