package com.ycl.jxkg.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.jxkg.config.property.SystemConfig; import com.ycl.jxkg.domain.entity.User; import com.ycl.jxkg.domain.entity.UserToken; import com.ycl.jxkg.mapper.UserTokenMapper; import com.ycl.jxkg.service.UserService; import com.ycl.jxkg.service.UserTokenService; import com.ycl.jxkg.utils.DateTimeUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.UUID; @Service @RequiredArgsConstructor public class UserTokenServiceImpl extends ServiceImpl implements UserTokenService { private final UserTokenMapper userTokenMapper; private final UserService userService; private final SystemConfig systemConfig; @Override @Transactional public UserToken bind(User user) { user.setModifyTime(new Date()); userService.updateById(user); return insertUserToken(user); } @Override public UserToken checkBind(String openId) { User user = userService.selectByWxOpenId(openId); if (null != user) { return insertUserToken(user); } return null; } @Override public UserToken getToken(String token) { return userTokenMapper.getToken(token); } @Override public UserToken insertUserToken(User user) { Date startTime = new Date(); Date endTime = DateTimeUtil.addDuration(startTime, systemConfig.getWx().getTokenToLive()); UserToken userToken = new UserToken(); userToken.setToken(UUID.randomUUID().toString()); userToken.setUserId(user.getId()); userToken.setWxOpenId(user.getWxOpenId()); userToken.setCreateTime(startTime); userToken.setEndTime(endTime); userToken.setUserName(user.getUserName()); userService.updateById(user); userTokenMapper.insert(userToken); return userToken; } @Override public void unBind(UserToken userToken) { User user = userService.getById(userToken.getUserId()); user.setModifyTime(new Date()); user.setWxOpenId(null); userService.updateById(user); userTokenMapper.deleteById(userToken.getId()); } }