package com.kidgrow.usercenter.service.impl; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysUser; import com.kidgrow.usercenter.service.ISysUserService; import com.kidgrow.usercenter.vo.SysDoctorDto; import com.kidgrow.usercenter.vo.SysDoctorVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cglib.beans.BeanCopier; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import com.kidgrow.common.model.PageResult; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.service.impl.SuperServiceImpl; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.commons.collections4.MapUtils; import lombok.extern.slf4j.Slf4j; import com.kidgrow.usercenter.model.SysDoctor; import com.kidgrow.usercenter.mapper.SysDoctorMapper; import com.kidgrow.usercenter.service.ISysDoctorService; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @version 1.0 * @Description:
* @Project: 用户中心
* @CreateDate: Created in 2020-04-02 14:02:50
* @Author: liuke */ @Slf4j @Service public class SysDoctorServiceImpl extends SuperServiceImpl implements ISysDoctorService { /** * 列表 * * @param params * @return */ @Autowired private ISysUserService iSysUserService; @Autowired private PasswordEncoder passwordEncoder; @Override public PageResult findList(Map params) { Page page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); List list = baseMapper.findList(page, params); List listvo = new ArrayList<>(); list.forEach(e -> { SysDoctorVo vo = new SysDoctorVo(); BeanCopier beanCopier = BeanCopier.create(SysDoctor.class, SysDoctorVo.class, false); beanCopier.copy(e, vo, null); //查询用户的登录账号; if (e.getUserId() != null) { SysUser sysUser = iSysUserService.getById(e.getUserId()); if (sysUser != null) { vo.setUsername(sysUser.getUsername()); } } listvo.add(vo); }); return PageResult.builder().data(listvo).code(0).count(page.getTotal()).build(); } /** * 根据SysDoctor对象当做查询条件进行查询 * * @param sysDoctor * @return SysDoctor */ @Override public SysDoctor findByObject(SysDoctor sysDoctor) { return baseMapper.findByObject(sysDoctor); } @Override public boolean delete(Long id) { //查询user表 SysDoctor sysDoctor = baseMapper.selectById(id); if (sysDoctor != null && sysDoctor.getUserId() != null) { boolean b = iSysUserService.delUser(sysDoctor.getUserId()); } sysDoctor.setIsDel(true); int i = baseMapper.deleteById(id); return true; } @Override public ResultBody enable(Map params) { Long aLong = MapUtils.getLong(params,"id"); SysDoctor sysDoctor = baseMapper.selectById(aLong); if (sysDoctor != null && sysDoctor.getUserId() != null) { SysUser byId = iSysUserService.getById(sysDoctor.getUserId()); if(byId!=null){ byId.setEnabled(true); iSysUserService.updateById(byId); } } if(sysDoctor!=null){ sysDoctor.setEnabled(true); baseMapper.updateById(sysDoctor); }else { return ResultBody.failed("禁用失败"); } return ResultBody.ok(0,"禁用成功"); } @Override @Transactional public boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request) { String id = request.getHeader(SecurityConstants.USER_ID_HEADER); if(null==sysDoctor){ return false; }else { if (sysDoctor.getId()==null) { //保存 SysUser sysUser=new SysUser(); sysUser.setUsername(sysDoctor.getUsername()); sysUser.setPassword(passwordEncoder.encode(sysDoctor.getPassword())); sysUser.setNickname(sysDoctor.getHospitalName()); sysUser.setHeadImgUrl(sysDoctor.getDoctorLogo()); sysUser.setMobile(sysDoctor.getDoctorTel()); sysUser.setType("doctor"); sysUser.setTenantId("hospital"); sysUser.setCreateTime(new Date()); SysUser byId = iSysUserService.getById(id); if(byId!=null){ sysUser.setCreateUserId(byId.getId()); sysUser.setCreateUserName(byId.getUsername()); } iSysUserService.save(sysUser); //保存doctor的数据 SysDoctor sysDoc=new SysDoctor(); BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false); beanCopier.copy(sysDoctor,sysDoc,null); sysDoc.setUserId(sysUser.getId()); baseMapper.insert(sysDoc); }else { //更新 baseMapper.updateById(sysDoctor); } } return true; } }