123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- package com.jkcredit.invoice.hub.service.user;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.jkcredit.invoice.hub.constant.CommonConstant;
- import com.jkcredit.invoice.hub.constant.ExceptionMessage;
- import com.jkcredit.invoice.hub.mapper.UserMapper;
- import com.jkcredit.invoice.hub.model.dto.user.UserDto;
- import com.jkcredit.invoice.hub.model.po.user.UserPo;
- import com.jkcredit.invoice.hub.model.vo.user.UserVO;
- import com.jkcredit.invoice.hub.service.base.BaseService;
- import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
- import com.jkcredit.invoice.hub.util.AssertUtils;
- import com.jkcredit.invoice.hub.util.BeanUtil;
- import com.jkcredit.invoice.hub.util.CommonUtil;
- import com.jkcredit.invoice.hub.util.EncodeUtil;
- import io.netty.util.internal.StringUtil;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.BeanUtils;
- import org.springframework.security.crypto.bcrypt.BCrypt;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.bind.annotation.RequestParam;
- import javax.annotation.Resource;
- import java.util.Date;
- import java.util.Optional;
- /**
- * @description:
- * @author: xusonglin
- * @create: 2020/1/2 10:01
- * @version: V1.0
- **/
- @Slf4j
- @Service
- @Transactional(readOnly = true)
- public class UserServiceImpl extends BaseService implements UserService {
- @Resource
- UserMapper userMapper;
- @Override
- public Optional<UserPo> getUserByUserName(String userName) {
- return userMapper.getUserByUserName(userName);
- }
- @Override
- public UserVO getUserById(Long id) throws ServiceException {
- UserVO userVo = new UserVO();
- UserPo userPo = userMapper.selectById(id);
- if (userPo != null) {
- BeanUtils.copyProperties(userPo, userVo);
- } else {
- throw new ServiceException(ExceptionMessage.USER_NOT_EXIST);
- }
- return userVo;
- }
- @Override
- public IPage<UserVO> getAllUsers(Page page, UserDto userDto) {
- // 数据库中查出的po分页集合
- IPage<UserPo> users = userMapper.getUsersPage(page, userDto);
- return users.convert(this::convert);
- }
- private UserVO convert(UserPo po) {
- UserVO vo = new UserVO();
- BeanUtils.copyProperties(po, vo);
- // 将数据库存储的decimal转double
- if (po.getPrice() != null) {
- vo.setPrice(CommonUtil.parseDouble(po.getPrice()));
- }
- if (po.getBalance() != null) {
- vo.setBalance(CommonUtil.parseDouble(po.getBalance()));
- }
- return vo;
- }
- @Override
- @Transactional(rollbackFor = ServiceException.class)
- public void saveUser(UserDto userDto) {
- validate(userDto);
- UserPo userPo = new UserPo();
- BeanUtil.copyProperties(userPo, userDto);
- userPo.setAppSecret(EncodeUtil.getAppSecret(userDto.getAppKey()));
- userPo.setCreateTime(new Date());
- userPo.setPassword(BCrypt.hashpw(userDto.getPassword(), BCrypt.gensalt()));
- try {
- userMapper.insert(userPo);
- } catch (Exception e) {
- log.error("新增用户失败,失败原因:{}", e.getMessage());
- throw new ServiceException("新增用户失败");
- }
- }
- @Override
- @Transactional(rollbackFor = ServiceException.class)
- public Boolean updateUser(@RequestParam UserDto userDto) {
- validate(userDto);
- UserPo userPo = userMapper.getUserById(userDto.getId());
- // todo 此方法需要完善,完善后不需要逐行if判断
- AssertUtils.assertNotNull(userPo, CommonConstant.USER_NOT_EXIST);
- if (!StringUtil.isNullOrEmpty(userDto.getPassword())) {
- userPo.setPassword(BCrypt.hashpw(userDto.getPassword(), BCrypt.gensalt()));
- }
- if (!StringUtil.isNullOrEmpty(userDto.getCompany())) {
- userPo.setCompany(userDto.getCompany());
- }
- if (!StringUtil.isNullOrEmpty(userDto.getContactName())) {
- userPo.setContactName(userDto.getContactName());
- }
- if (!StringUtil.isNullOrEmpty(userDto.getTelephone())) {
- userPo.setTelephone(userDto.getTelephone());
- }
- if (userDto.getPrice() != null) {
- userPo.setPrice(userDto.getPrice());
- }
- if (userDto.getStatus() != null) {
- userPo.setStatus(userDto.getStatus());
- }
- userPo.setUpdateTime(new Date());
- return userMapper.updateById(userPo) == 1;
- }
- @Override
- @Transactional(rollbackFor = ServiceException.class)
- public void deleteUser(Long id) {
- UserPo userPo = userMapper.getUserById(id);
- if (userPo == null) {
- throw new ServiceException(ExceptionMessage.USER_NOT_EXIST);
- } else {
- userPo.setActivated(CommonConstant.ACTIVATED_DELETED);
- try {
- userMapper.updateById(userPo);
- } catch (Exception e) {
- log.error("删除用户失败,失败原因:{}", e.getMessage());
- throw new ServiceException("删除用户失败");
- }
- }
- }
- }
|