package com.imed.costaccount.service.impl; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.imed.costaccount.common.exception.CostException; import com.imed.costaccount.common.token.JwtUtil; import com.imed.costaccount.common.util.BeanUtil; import com.imed.costaccount.common.util.PageUtils; import com.imed.costaccount.mapper.UserMapper; import com.imed.costaccount.model.User; import com.imed.costaccount.model.dto.LoginDTO; import com.imed.costaccount.model.vo.LoginVO; import com.imed.costaccount.model.vo.UserVO; import com.imed.costaccount.service.UserService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.jws.soap.SOAPBinding; import java.util.List; import java.util.Objects; @Service("userService") public class UserServiceImpl extends ServiceImpl implements UserService { @Autowired private JwtUtil jwtUtil; /** * 登录具体逻辑 * @param loginDTO {@link LoginDTO} 登录相关参数 * @return */ @Override public LoginVO login(LoginDTO loginDTO) { String hospSign = loginDTO.getHospSign(); // todo 通过医院标识获取医院id int hospId = 1; User one = this.getOne( new LambdaQueryWrapper() .eq(User::getAccount, loginDTO.getAccount()) .eq(User::getHospId, hospId) .last("limit 1") ); if (Objects.isNull(one)) { throw new CostException("用户不存在"); } if (!SecureUtil.md5(loginDTO.getPassword()).equals(one.getPassword())) { throw new CostException("密码错误"); } String token = jwtUtil.createToken(one.getId()); return LoginVO.builder().token(token).build(); } /** * 查询查询用户的数据信息 * * @param page * @param pageSize * @param hospId * @return */ @Override public PageUtils queryList(Integer page, Integer pageSize, Integer hospId) { Page userPage = new Page<>(page, pageSize); Page pages = this.page(userPage, new QueryWrapper().lambda().eq(User::getHospId, hospId)); List records = pages.getRecords(); List userVOS = BeanUtil.convertList(records, UserVO.class); PageUtils pageUtils = new PageUtils(pages); pageUtils.setList(userVOS); return pageUtils; } /** * 根据用户的姓名查询用户 * * @param name * @return */ @Override public List getByUserName(String name) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(!StringUtils.isEmpty(name),"name",name); return null; } }