package cc.mrbird.febs.mall.service.impl;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.common.exception.FebsException;
|
import cc.mrbird.febs.common.utils.AppContants;
|
import cc.mrbird.febs.common.utils.LoginUserUtil;
|
import cc.mrbird.febs.common.utils.RedisUtils;
|
import cc.mrbird.febs.mall.dto.*;
|
import cc.mrbird.febs.mall.entity.MallAppMember;
|
import cc.mrbird.febs.mall.entity.MallMember;
|
import cc.mrbird.febs.mall.mapper.MallAppMemberMapper;
|
import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper;
|
import cc.mrbird.febs.mall.mapper.MallGoodsMapper;
|
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
|
import cc.mrbird.febs.mall.service.IApiMallAppService;
|
import cc.mrbird.febs.mall.vo.ApiMallAppMemberInfoVo;
|
import cc.mrbird.febs.mall.vo.ApiMallGoodsListVo;
|
import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo;
|
import cc.mrbird.febs.mall.vo.MallGoodsListVo;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.crypto.SecureUtil;
|
import cn.hutool.crypto.asymmetric.KeyType;
|
import cn.hutool.crypto.asymmetric.RSA;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class ApiMallAppServiceImpl extends ServiceImpl<MallAppMemberMapper, MallAppMember> implements IApiMallAppService {
|
|
private final RedisUtils redisUtils;
|
private final MallMemberMapper mallMemberMapper;
|
private final MallGoodsCategoryMapper mallGoodsCategoryMapper;
|
private final MallGoodsMapper mallGoodsMapper;
|
|
@Override
|
public FebsResponse appToLogin(LoginDto loginDto) {
|
String md5Pwd = SecureUtil.md5(loginDto.getPassword());
|
|
MallMember mallMember = mallMemberMapper.selectInfoByAccountAndPwd(loginDto.getAccount(), md5Pwd);
|
if (mallMember == null) {
|
throw new FebsException("用户不存在或账号密码错误");
|
}
|
|
String redisKey = AppContants.SY_APP_LOGIN_PREFIX + mallMember.getId();
|
String existToken = redisUtils.getString(redisKey);
|
if (StrUtil.isNotBlank(existToken)) {
|
Object o = redisUtils.get(existToken);
|
if (ObjectUtil.isNotEmpty(o)) {
|
redisUtils.del(existToken);
|
}
|
}
|
|
String token = IdUtil.simpleUUID();
|
redisUtils.set(token, JSONObject.toJSONString(mallMember));
|
redisUtils.set(redisKey, token);
|
Map<String, Object> authInfo = new HashMap<>();
|
authInfo.put("token", token);
|
authInfo.put("rasToken", generateAsaToken(token));
|
return new FebsResponse().success().data(authInfo);
|
}
|
|
@Override
|
public FebsResponse appMemberInfo(ApiMallAppMemberInfoDto apiMallAppMemberInfoDto) {
|
Long memberId = LoginUserUtil.getLoginUser().getId();
|
List<ApiMallAppMemberInfoVo> mallMembers = this.baseMapper.selectMemberInfoLikePhone(apiMallAppMemberInfoDto.getPhone());
|
return new FebsResponse().success().data(mallMembers);
|
}
|
|
@Override
|
public FebsResponse findAllCategoryList() {
|
List<MallGoodsCategoryVo> mallGoodsCategoryVos = mallGoodsCategoryMapper.selectAllCategoryListByIsApp(AppContants.IS_APP_CATEGORY);
|
return new FebsResponse().success().data(mallGoodsCategoryVos);
|
}
|
|
@Override
|
public FebsResponse findMallGoodsListNoPage(ApiMallGoodsQueryDto queryDto) {
|
List<ApiMallGoodsListVo> mallGoodsListVos = mallGoodsMapper.selectMallGoodsListQueryNoPageIsApp(queryDto);
|
return new FebsResponse().success().data(mallGoodsListVos);
|
}
|
|
@Override
|
public FebsResponse createAppOrder(ApiAddOrderDto addOrderDto) {
|
|
// return new FebsResponse().success().data(orderId).message("创建订单成功");
|
return new FebsResponse().success().message("创建订单成功");
|
}
|
|
public String generateAsaToken(String token) {
|
RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
|
return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);
|
}
|
|
}
|