package com.mindskip.xzs.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.Department; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.User; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.event.OnRegistrationCompleteEvent; import com.mindskip.xzs.exception.BusinessException; import com.mindskip.xzs.repository.UserMapper; import com.mindskip.xzs.service.UserService; import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM; import com.mindskip.xzs.viewmodel.admin.user.UserResponseVM; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class UserServiceImpl extends BaseServiceImpl implements UserService { private final UserMapper userMapper; private final ApplicationEventPublisher eventPublisher; @Autowired public UserServiceImpl(UserMapper userMapper, ApplicationEventPublisher eventPublisher) { super(userMapper); this.userMapper = userMapper; this.eventPublisher = eventPublisher; } @Override public List getUsers() { return userMapper.getAllUser(); } @Override public User getUserById(Integer id) { return userMapper.getUserById(id); } @Override public User getUserByUserName(String username) { return userMapper.getUserByUserName(username); } @Override public int insertByFilter(User record) { return super.insertByFilter(record); } @Override public int updateByIdFilter(User record) { return super.updateByIdFilter(record); } @Override public int updateById(User record) { return super.updateById(record); } @Override public User getUserByUserNamePwd(String username, String pwd) { return userMapper.getUserByUserNamePwd(username, pwd); } @Override public User getUserByUuid(String uuid) { return userMapper.getUserByUuid(uuid); } @Override public List userPageList(String name, Integer pageIndex, Integer pageSize) { Map map = new HashMap<>(3); map.put("name", name); map.put("offset", ((int) pageIndex) * pageSize); map.put("limit", pageSize); return userMapper.userPageList(map); } @Override public Integer userPageCount(String name) { Map map = new HashMap<>(1); map.put("name", name); return userMapper.userPageCount(map); } @Override public PageInfo userPage(UserPageRequestVM requestVM) { return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() -> userMapper.userPage(requestVM) ); } @Override public void insertUser(User user) { userMapper.insertSelective(user); eventPublisher.publishEvent(new OnRegistrationCompleteEvent(user)); } @Override @Transactional(rollbackFor = BusinessException.class) public void insertUsers(List users) { userMapper.insertUsers(users); } @Override public void updateUser(User user) { userMapper.updateUser(user); } @Override public void updateUsersAge(Integer age, List ids) { Map map = new HashMap<>(2); map.put("idslist", ids); map.put("age", age); userMapper.updateUsersAge(map); } @Override public void deleteUserByIds(List ids) { userMapper.deleteUsersByIds(ids); } @Override public Integer selectAllCount() { return userMapper.selectAllCount(); } @Override public List selectByUserName(String userName) { return userMapper.selectByUserName(userName); } @Override public List selectByIds(List ids) { return userMapper.selectByIds(ids); } @Override public User selectByWxOpenId(String wxOpenId) { return userMapper.selectByWxOpenId(wxOpenId); } @Override @Transactional public void changePicture(User user, String imagePath) { User changePictureUser = new User(); changePictureUser.setId(user.getId()); changePictureUser.setImagePath(imagePath); userMapper.updateByPrimaryKeySelective(changePictureUser); } @Override public User selectByIdName(Integer id, String userName) { return userMapper.selectByIdName(id,userName); } @Override public List getUserByLevel(Integer userLevel) { return userMapper.getUserByLevel(userLevel); } @Override public User getUserByRealName(String realName) { return userMapper.getUserByRealName(realName); } @Override public void setStatus(User user) { userMapper.setStatus(user); } @Override public User getUserByExam(ExamPaper examPaper) { return userMapper.getUserByExam(examPaper); } @Override public List getDeptAdminIds(Integer id) { return userMapper.getDeptAdminIds(id); } @Override public List getDeptAdmins(Integer id) { return userMapper.getDeptAdmins(id); } @Override public User getUserByExamByTemplateId(ExamPaper examPaper) { return userMapper.getUserByExamByTemplateId(examPaper); } @Override public List getDeptIds(Integer userId) { return userMapper.getDeptIds(userId); } }