fengjin
2022-09-27 f0cbcb0bced4b126d27d209a3d1aa3d5ea7d9e6d
flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java
@@ -3,17 +3,37 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dg.core.ResultData;
import com.dg.core.db.gen.entity.SysUser;
import com.dg.core.db.gen.mapper.SysUserMapper;
import com.dg.core.manager.TokenManager;
import com.dg.core.service.ISysUserService;
import com.dg.core.util.SmsUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService
{
    @Resource
    SmsUtil smsUtil;
    @Resource
    RedisTemplate<String, Object> redisTemplate;
    @Autowired
    TokenManager tokenManager;
    @Override
    public SysUser getUserById(Long id) {
@@ -32,6 +52,57 @@
    }
    @Override
    public ResultData smsSend(SysUser user){
        SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, user.getPhonenumber()));
        if (sysUser==null){
            SysUser newUser = new SysUser();
            newUser.setLoginName(user.getPhonenumber());
            newUser.setUserName(user.getPhonenumber().substring(0,3)+"xxxx"+user.getPhonenumber().substring(7,11)+"用户");
            newUser.setUserType("3");
            newUser.setPhonenumber(user.getPhonenumber());
            newUser.setSex("2");
            newUser.setCreateTime(LocalDateTime.now());
            newUser.setUpdateTime(LocalDateTime.now());
            baseMapper.insert(newUser);
        }
       return smsUtil.sendSms(user.getPhonenumber());
    }
    @Override
    public ResultData loginByAccount(String phonenumber, String code){
        String code1 = redisTemplate.opsForValue().get(phonenumber) + "";
        if (code.equals(code1)) {
            SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber));
            if (sysUser!=null){
                String token = tokenManager.getTokenByUserId(sysUser.getUserId());
//        String token = tokenManager.createToken(user.getUserId(), user.getRoleId());
                System.out.println("token "+token);
                if (token == null) {
                    //生成一个token,保存用户登录状态
                    token = tokenManager.createToken(sysUser.getUserId(), sysUser.getUserId());
                }
                sysUser.setLoginDate(LocalDateTime.now());
                //更新登录时间
                this.updateConfig(sysUser);
                Map<String, Object> map = new HashMap<>();
                map.put("token", token);
                map.put("userId", sysUser.getUserId());
                map.put("userName", sysUser.getUserName());
                return ResultData.success(map);
            }
            else {
                return  ResultData.error("验证码错误");
            }
        }
        return  ResultData.error("验证码错误");
    }
    @Override
    public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,String userType) {
        return baseMapper.selectConfigList(page, state,userType);
    }