Merge branch 'master' of https://e.coding.net/g-cphe0354/shouyinjixitong/wx-cashier-service
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
package com.chaozhanggui.system.cashierservice.service;
|
||||
|
||||
import com.chaozhanggui.system.cashierservice.dao.TbPlatformDictMapper;
|
||||
import com.chaozhanggui.system.cashierservice.dao.TbProductSkuMapper;
|
||||
import com.chaozhanggui.system.cashierservice.dao.TbShopInfoMapper;
|
||||
import com.chaozhanggui.system.cashierservice.entity.TbPlatformDict;
|
||||
import com.chaozhanggui.system.cashierservice.entity.TbProductSku;
|
||||
import com.chaozhanggui.system.cashierservice.entity.dto.HomeDto;
|
||||
import com.chaozhanggui.system.cashierservice.entity.vo.HomeUpVO;
|
||||
import com.chaozhanggui.system.cashierservice.entity.vo.HomeVO;
|
||||
import com.chaozhanggui.system.cashierservice.entity.vo.UserDutyVo;
|
||||
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
|
||||
import com.chaozhanggui.system.cashierservice.sign.Result;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author lyf
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class HomePageService {
|
||||
@Resource
|
||||
private TbShopInfoMapper shopInfoMapper;
|
||||
@Resource
|
||||
private TbProductSkuMapper productSkuMapper;
|
||||
@Resource
|
||||
private TbPlatformDictMapper platformDictMapper;
|
||||
|
||||
|
||||
public Result homePage(HomeDto homeDto){
|
||||
int beginNo;
|
||||
if(homeDto.getPage() <=0){
|
||||
beginNo = 0;
|
||||
}else{
|
||||
beginNo = (homeDto.getPage() - 1) * homeDto.getSize();
|
||||
}
|
||||
List<HomeVO> homeVO = shopInfoMapper.selectShopInfo(beginNo,homeDto.getSize());
|
||||
List<Integer> objects = new ArrayList<>();
|
||||
for (HomeVO o :homeVO) {
|
||||
objects.add(o.getProductId());
|
||||
}
|
||||
//原价现价
|
||||
List<TbProductSku> tbProductSkus = productSkuMapper.selectDownSku(objects);
|
||||
//销量
|
||||
List<UserDutyVo> userDutyVos = shopInfoMapper.searchUserDutyDetail(objects);
|
||||
//组装数据
|
||||
for (HomeVO o :homeVO) {
|
||||
for (TbProductSku sku :tbProductSkus) {
|
||||
if (o.getProductId().toString().equals(sku.getProductId())){
|
||||
o.setOriginPrice(sku.getOriginPrice() == null?BigDecimal.ZERO:sku.getOriginPrice());
|
||||
o.setSalePrice(sku.getSalePrice() == null?BigDecimal.ZERO:sku.getSalePrice());
|
||||
}
|
||||
}
|
||||
if (userDutyVos == null){
|
||||
o.setRealSalesNumber(BigDecimal.ZERO);
|
||||
}else {
|
||||
for (UserDutyVo duty : userDutyVos) {
|
||||
if (o.getProductId().equals(duty.getProductId())) {
|
||||
o.setRealSalesNumber(duty.getNumber());
|
||||
}else {
|
||||
o.setRealSalesNumber(BigDecimal.ZERO);
|
||||
}
|
||||
}
|
||||
}
|
||||
//共省金额
|
||||
o.setSave(o.getOriginPrice().subtract(o.getSalePrice()));
|
||||
if (o.getOriginPrice().compareTo(BigDecimal.ZERO) == 0){
|
||||
o.setDiscount(null);
|
||||
}else {
|
||||
o.setDiscount(o.getSalePrice().divide(o.getOriginPrice(), 2, RoundingMode.DOWN).multiply(new BigDecimal("10")));
|
||||
}
|
||||
}
|
||||
return Result.success(CodeEnum.SUCCESS,homeVO);
|
||||
}
|
||||
|
||||
public Result homePageUp(String environment){
|
||||
HomeUpVO homeUpVO = new HomeUpVO();
|
||||
//轮播图
|
||||
List<TbPlatformDict> carouselList = platformDictMapper.queryAllByType("carousel",environment);
|
||||
homeUpVO.setCarousel(carouselList);
|
||||
//金刚区
|
||||
List<TbPlatformDict> districtList = platformDictMapper.queryAllByType("homeDistrict",environment);
|
||||
homeUpVO.setDistrict(districtList);
|
||||
return Result.success(CodeEnum.SUCCESS,homeUpVO);
|
||||
}
|
||||
}
|
||||
@@ -9,17 +9,16 @@ import com.chaozhanggui.system.cashierservice.redis.RedisCst;
|
||||
import com.chaozhanggui.system.cashierservice.redis.RedisUtil;
|
||||
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
|
||||
import com.chaozhanggui.system.cashierservice.sign.Result;
|
||||
import com.chaozhanggui.system.cashierservice.util.MD5Utils;
|
||||
import com.chaozhanggui.system.cashierservice.util.TokenUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class LoginService {
|
||||
@@ -46,17 +45,16 @@ public class LoginService {
|
||||
TbTokenMapper tbTokenMapper;
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
RedisUtil redisUtil;
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result wxCustomLogin(String openId,String headImage,String nickName,String telephone,String qrCode,String ip) throws Exception {
|
||||
public Result wxCustomLogin(String openId, String headImage, String nickName, String telephone, String qrCode, String ip) throws Exception {
|
||||
|
||||
TbUserInfo userInfo= tbUserInfoMapper.selectByOpenId(openId);
|
||||
if(ObjectUtil.isNull(userInfo)){
|
||||
userInfo=new TbUserInfo();
|
||||
TbUserInfo userInfo = tbUserInfoMapper.selectByOpenId(openId);
|
||||
if (ObjectUtil.isNull(userInfo)) {
|
||||
userInfo = new TbUserInfo();
|
||||
|
||||
userInfo.setAmount(BigDecimal.ZERO);
|
||||
userInfo.setChargeAmount(BigDecimal.ZERO);
|
||||
@@ -65,9 +63,9 @@ public class LoginService {
|
||||
userInfo.setConsumeAmount(BigDecimal.ZERO);
|
||||
userInfo.setTotalScore(0);
|
||||
userInfo.setLockScore(0);
|
||||
userInfo.setHeadImg(ObjectUtil.isNotNull(headImage)?headImage:"");
|
||||
userInfo.setNickName(ObjectUtil.isNotNull(nickName)?nickName:"微信用户");
|
||||
userInfo.setTelephone(ObjectUtil.isNotNull(telephone)?telephone:"");
|
||||
userInfo.setHeadImg(ObjectUtil.isNotNull(headImage) ? headImage : "");
|
||||
userInfo.setNickName(ObjectUtil.isNotNull(nickName) ? nickName : "微信用户");
|
||||
userInfo.setTelephone(ObjectUtil.isNotNull(telephone) ? telephone : "");
|
||||
userInfo.setMiniAppOpenId(openId);
|
||||
userInfo.setStatus(Byte.parseByte("1"));
|
||||
userInfo.setParentType("PERSON");
|
||||
@@ -82,31 +80,39 @@ public class LoginService {
|
||||
userInfo.setUpdatedAt(System.currentTimeMillis());
|
||||
tbUserInfoMapper.insert(userInfo);
|
||||
|
||||
}else {
|
||||
userInfo.setHeadImg(ObjectUtil.isNotNull(headImage)?headImage:"");
|
||||
userInfo.setNickName(ObjectUtil.isNotNull(nickName)?nickName:"微信用户");
|
||||
userInfo.setTelephone(ObjectUtil.isNotNull(telephone)?telephone:"");
|
||||
} else {
|
||||
userInfo.setHeadImg(ObjectUtil.isNotNull(headImage) ? headImage : "");
|
||||
userInfo.setNickName(ObjectUtil.isNotNull(nickName) ? nickName : "微信用户");
|
||||
userInfo.setTelephone(ObjectUtil.isNotNull(telephone) ? telephone : "");
|
||||
tbUserInfoMapper.updateByPrimaryKeySelective(userInfo);
|
||||
}
|
||||
//app与微信用户 互相关联
|
||||
if (ObjectUtil.isNotNull(telephone)) {
|
||||
TbUserInfo appUser = tbUserInfoMapper.selectByPhone(telephone);
|
||||
if (appUser != null) {
|
||||
TbUserInfo wechatUser = tbUserInfoMapper.selectByOpenId(openId);
|
||||
appUser.setUserId(wechatUser.getId());
|
||||
tbUserInfoMapper.updateByPrimaryKey(appUser);
|
||||
wechatUser.setUserId(appUser.getId());
|
||||
tbUserInfoMapper.updateByPrimaryKey(wechatUser);
|
||||
}
|
||||
}
|
||||
TbShopInfo tbShopInfo = null;
|
||||
if (ObjectUtil.isEmpty(qrCode)) {
|
||||
tbShopInfo = tbShopInfoMapper.selectByPhone(defaultPhone);
|
||||
|
||||
|
||||
TbShopInfo tbShopInfo=null;
|
||||
if(ObjectUtil.isEmpty(qrCode)){
|
||||
tbShopInfo=tbShopInfoMapper.selectByPhone(defaultPhone);
|
||||
|
||||
|
||||
}else {
|
||||
tbShopInfo= tbShopInfoMapper.selectByQrCode(qrCode);
|
||||
} else {
|
||||
tbShopInfo = tbShopInfoMapper.selectByQrCode(qrCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TbShopUser tbShopUser=null;
|
||||
Map<String,String> shopMap=new HashMap<>();
|
||||
if(ObjectUtil.isNotEmpty(tbShopInfo)){
|
||||
tbShopUser= tbShopUserMapper.selectByUserIdAndShopId(userInfo.getId().toString(),tbShopInfo.getId().toString());
|
||||
if(ObjectUtil.isEmpty(tbShopUser)){
|
||||
tbShopUser=new TbShopUser();
|
||||
TbShopUser tbShopUser = null;
|
||||
Map<String, String> shopMap = new HashMap<>();
|
||||
if (ObjectUtil.isNotEmpty(tbShopInfo)) {
|
||||
tbShopUser = tbShopUserMapper.selectByUserIdAndShopId(userInfo.getId().toString(), tbShopInfo.getId().toString());
|
||||
if (ObjectUtil.isEmpty(tbShopUser)) {
|
||||
tbShopUser = new TbShopUser();
|
||||
tbShopUser.setAmount(BigDecimal.ZERO);
|
||||
tbShopUser.setCreditAmount(BigDecimal.ZERO);
|
||||
tbShopUser.setConsumeAmount(BigDecimal.ZERO);
|
||||
@@ -119,32 +125,31 @@ public class LoginService {
|
||||
tbShopUser.setCreatedAt(System.currentTimeMillis());
|
||||
tbShopUserMapper.insert(tbShopUser);
|
||||
}
|
||||
shopMap.put("shopId",tbShopUser.getShopId());
|
||||
shopMap.put("name",tbShopInfo.getShopName());
|
||||
shopMap.put("amount",BigDecimal.ZERO.toPlainString());
|
||||
shopMap.put("levelConsume",BigDecimal.ZERO.toPlainString());
|
||||
shopMap.put("shopId", tbShopUser.getShopId());
|
||||
shopMap.put("name", tbShopInfo.getShopName());
|
||||
shopMap.put("amount", BigDecimal.ZERO.toPlainString());
|
||||
shopMap.put("levelConsume", BigDecimal.ZERO.toPlainString());
|
||||
|
||||
}
|
||||
|
||||
|
||||
//生成token 信息
|
||||
String token = TokenUtil.generateToken(userInfo.getId(), userInfo.getMiniAppOpenId(), userInfo.getTelephone(),userInfo.getNickName());
|
||||
String token = TokenUtil.generateToken(userInfo.getId(), userInfo.getMiniAppOpenId(), userInfo.getTelephone(), userInfo.getNickName());
|
||||
|
||||
|
||||
//存储登录记录
|
||||
TbToken tbToken = new TbToken(tbShopInfo.getId(), userInfo.getId(),"wx_lite", token, ip, "1", new Date());
|
||||
TbToken tbToken = new TbToken(tbShopInfo.getId(), userInfo.getId(), "wx_lite", token, ip, "1", new Date());
|
||||
tbTokenMapper.insert(tbToken);
|
||||
|
||||
|
||||
|
||||
Map<String,Object> map=new HashMap<>();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
try {
|
||||
map.put("token",token);
|
||||
map.put("userInfo",userInfo);
|
||||
map.put("shopUser",shopMap);
|
||||
map.put("shopInfo",tbShopInfo);
|
||||
map.put("token", token);
|
||||
map.put("userInfo", userInfo);
|
||||
map.put("shopUser", shopMap);
|
||||
map.put("shopInfo", tbShopInfo);
|
||||
redisUtil.saveMessage(RedisCst.ONLINE_USER.concat(openId), JSON.toJSONString(map));
|
||||
return Result.success(CodeEnum.SUCCESS,map);
|
||||
return Result.success(CodeEnum.SUCCESS, map);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -152,67 +157,155 @@ public class LoginService {
|
||||
return Result.fail("登录失败");
|
||||
}
|
||||
|
||||
public TbUserInfo register(String phone, String password, String nickName) {
|
||||
|
||||
TbUserInfo userInfo = new TbUserInfo();
|
||||
userInfo.setAmount(BigDecimal.ZERO);
|
||||
userInfo.setChargeAmount(BigDecimal.ZERO);
|
||||
userInfo.setLineOfCredit(BigDecimal.ZERO);
|
||||
userInfo.setConsumeNumber(0);
|
||||
userInfo.setConsumeAmount(BigDecimal.ZERO);
|
||||
userInfo.setTotalScore(0);
|
||||
userInfo.setLockScore(0);
|
||||
userInfo.setHeadImg("");
|
||||
userInfo.setNickName(nickName);
|
||||
userInfo.setTelephone(phone);
|
||||
userInfo.setStatus(Byte.parseByte("1"));
|
||||
userInfo.setParentType("PERSON");
|
||||
userInfo.setIsResource(Byte.parseByte("0"));
|
||||
userInfo.setIsOnline(Byte.parseByte("0"));
|
||||
userInfo.setIsVip(Byte.parseByte("0"));
|
||||
userInfo.setSourcePath("APP");
|
||||
userInfo.setIsAttentionMp(Byte.parseByte("0"));
|
||||
userInfo.setSearchWord("||移动端用户");
|
||||
userInfo.setLastLogInAt(System.currentTimeMillis());
|
||||
userInfo.setCreatedAt(System.currentTimeMillis());
|
||||
userInfo.setUpdatedAt(System.currentTimeMillis());
|
||||
if(StringUtils.isNotBlank(password)){
|
||||
userInfo.setPassword(MD5Utils.MD5Encode(password, "UTF-8"));
|
||||
}
|
||||
tbUserInfoMapper.insert(userInfo);
|
||||
//注册时 app与微信小程序用户关联
|
||||
TbUserInfo wechatUser = tbUserInfoMapper.selectUserByPhone(phone, "WECHAT-APP");
|
||||
TbUserInfo appUser = tbUserInfoMapper.selectByPhone(phone);
|
||||
if (wechatUser != null) {
|
||||
appUser.setUserId(wechatUser.getId());
|
||||
tbUserInfoMapper.updateByPrimaryKey(appUser);
|
||||
wechatUser.setUserId(appUser.getId());
|
||||
tbUserInfoMapper.updateByPrimaryKey(wechatUser);
|
||||
}
|
||||
return appUser;
|
||||
}
|
||||
|
||||
public Result createCardNo(String id,String openId){
|
||||
if(ObjectUtil.isEmpty(id)||ObjectUtil.isEmpty(openId)){
|
||||
/**
|
||||
* 手机号 短信验证码 校验
|
||||
*
|
||||
* @param code
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
public boolean validate(String code, String phone) {
|
||||
if (StringUtils.isNotBlank(code)) {
|
||||
String message = redisUtil.getMessage(phone);
|
||||
boolean tf = Objects.equals(code, message);
|
||||
if (tf) {
|
||||
redisUtil.deleteByKey(phone);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result appLogin(String username, String password) {
|
||||
TbUserInfo userInfo = tbUserInfoMapper.selectUserByPhone(username, "APP");
|
||||
if (ObjectUtil.isNull(userInfo)) {
|
||||
//注册
|
||||
userInfo=register(username, password, username);
|
||||
}
|
||||
if (StringUtils.isNotBlank(password) && !password.equalsIgnoreCase(userInfo.getPassword())) {
|
||||
return Result.fail("密码错误");
|
||||
}
|
||||
//生成token 信息
|
||||
String token = null;
|
||||
try {
|
||||
token = TokenUtil.generateToken(userInfo.getId(), null, userInfo.getTelephone(), userInfo.getNickName());
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
try {
|
||||
map.put("token", token);
|
||||
map.put("userInfo", userInfo);
|
||||
redisUtil.saveMessage(RedisCst.ONLINE_APP_USER.concat(userInfo.getId() + ""), JSON.toJSONString(map));
|
||||
return Result.success(CodeEnum.SUCCESS, map);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
}
|
||||
return Result.fail("登录失败");
|
||||
}
|
||||
|
||||
public Result createCardNo(String id, String openId) {
|
||||
if (ObjectUtil.isEmpty(id) || ObjectUtil.isEmpty(openId)) {
|
||||
return Result.fail("head 信息不允许为空");
|
||||
}
|
||||
|
||||
|
||||
TbUserInfo userInfo= tbUserInfoMapper.selectByPrimaryKey(Integer.valueOf(id));
|
||||
if(userInfo==null||ObjectUtil.isEmpty(userInfo)){
|
||||
userInfo=tbUserInfoMapper.selectByOpenId(openId);
|
||||
TbUserInfo userInfo = tbUserInfoMapper.selectByPrimaryKey(Integer.valueOf(id));
|
||||
if (userInfo == null || ObjectUtil.isEmpty(userInfo)) {
|
||||
userInfo = tbUserInfoMapper.selectByOpenId(openId);
|
||||
}
|
||||
|
||||
if(userInfo==null||ObjectUtil.isEmpty(userInfo)){
|
||||
if (userInfo == null || ObjectUtil.isEmpty(userInfo)) {
|
||||
return Result.fail("用户信息不存在");
|
||||
}
|
||||
|
||||
String cardNo= RandomUtil.randomNumbers(10);
|
||||
String cardNo = RandomUtil.randomNumbers(10);
|
||||
userInfo.setCardNo(cardNo);
|
||||
userInfo.setUpdatedAt(System.currentTimeMillis());
|
||||
tbUserInfoMapper.updateByPrimaryKeySelective(userInfo);
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS,cardNo) ;
|
||||
return Result.success(CodeEnum.SUCCESS, cardNo);
|
||||
}
|
||||
|
||||
|
||||
public Result userInfo(Integer userId,String shopId){
|
||||
public Result userInfo(Integer userId, String shopId) {
|
||||
TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPrimaryKey(userId);
|
||||
|
||||
if (tbUserInfo == null){
|
||||
return Result.success(CodeEnum.ENCRYPT,new ArrayList());
|
||||
if (tbUserInfo == null) {
|
||||
return Result.success(CodeEnum.ENCRYPT, new ArrayList());
|
||||
}
|
||||
|
||||
|
||||
TbShopInfo tbShopInfo=null;
|
||||
if(ObjectUtil.isEmpty(shopId)){
|
||||
tbShopInfo=tbShopInfoMapper.selectByPhone(defaultPhone);
|
||||
}else {
|
||||
tbShopInfo=tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(shopId));
|
||||
TbShopInfo tbShopInfo = null;
|
||||
if (ObjectUtil.isEmpty(shopId)) {
|
||||
tbShopInfo = tbShopInfoMapper.selectByPhone(defaultPhone);
|
||||
} else {
|
||||
tbShopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(shopId));
|
||||
}
|
||||
|
||||
TbShopUser tbShopUser=null;
|
||||
Map<String,String> shopMap=new HashMap<>();
|
||||
if(ObjectUtil.isNotEmpty(tbShopInfo)){
|
||||
tbShopUser= tbShopUserMapper.selectByUserIdAndShopId(tbUserInfo.getId().toString(),tbShopInfo.getId().toString());
|
||||
shopMap.put("shopId",tbShopUser.getShopId());
|
||||
shopMap.put("name",tbShopInfo.getShopName());
|
||||
shopMap.put("amount",BigDecimal.ZERO.toPlainString());
|
||||
shopMap.put("levelConsume",BigDecimal.ZERO.toPlainString());
|
||||
TbShopUser tbShopUser = null;
|
||||
Map<String, String> shopMap = new HashMap<>();
|
||||
if (ObjectUtil.isNotEmpty(tbShopInfo)) {
|
||||
tbShopUser = tbShopUserMapper.selectByUserIdAndShopId(tbUserInfo.getId().toString(), tbShopInfo.getId().toString());
|
||||
shopMap.put("shopId", tbShopUser.getShopId());
|
||||
shopMap.put("name", tbShopInfo.getShopName());
|
||||
shopMap.put("amount", BigDecimal.ZERO.toPlainString());
|
||||
shopMap.put("levelConsume", BigDecimal.ZERO.toPlainString());
|
||||
}
|
||||
|
||||
Map<String,Object> map=new HashMap<>();
|
||||
map.put("userInfo",tbUserInfo);
|
||||
map.put("shopUser",shopMap);
|
||||
map.put("shopInfo",tbShopInfo);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("userInfo", tbUserInfo);
|
||||
map.put("shopUser", shopMap);
|
||||
map.put("shopInfo", tbShopInfo);
|
||||
|
||||
|
||||
return Result.success(CodeEnum.ENCRYPT,map);
|
||||
return Result.success(CodeEnum.ENCRYPT, map);
|
||||
}
|
||||
public static void main(String[] args){
|
||||
for(int i =0;i<10;i++){
|
||||
|
||||
public static void main(String[] args) {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
System.out.println(RandomUtil.randomNumbers(10));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ public class OnlineUserService {
|
||||
onlineUserDto.setLoginTime(new Date());
|
||||
onlineUserDto.setShopId(shopId);
|
||||
try {
|
||||
redisUtils.set("online-token-"+token, onlineUserDto, MILLIS_MINUTE);
|
||||
redisUtils.set("online-token-"+token, onlineUserDto, MILLIS_MINUTE);//30分钟
|
||||
}catch (Exception e){
|
||||
throw new MsgException("登录错误");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user