From a834326805b2ca86c54437a22bb41a23eceace3f Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Fri, 10 Nov 2023 18:08:43 +0800 Subject: [PATCH] Merge branch 'blnka' of http://120.27.238.55:7000/r/xc-mall into blnka --- src/test/java/cc/mrbird/febs/AgentTest.java | 181 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 176 insertions(+), 5 deletions(-) diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java index 2a02690..7be46b8 100644 --- a/src/test/java/cc/mrbird/febs/AgentTest.java +++ b/src/test/java/cc/mrbird/febs/AgentTest.java @@ -1,35 +1,46 @@ package cc.mrbird.febs; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.LoginUserUtil; -import cc.mrbird.febs.mall.dto.AgentLevelUpdateDto; -import cc.mrbird.febs.mall.dto.ApiMallActWinDetailsDto; +import cc.mrbird.febs.common.utils.RedisUtils; +import cc.mrbird.febs.mall.conversion.MallGoodsConversion; +import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.quartz.ProfitJob; import cc.mrbird.febs.mall.service.IAgentService; -import cc.mrbird.febs.mall.vo.ApiMallActWinDetailsVo; -import cc.mrbird.febs.mall.vo.ApiMallAwardDetailsVo; +import cc.mrbird.febs.mall.vo.*; +import cc.mrbird.febs.pay.util.WechatConfigure; import cc.mrbird.febs.rabbit.consumer.AgentConsumer; import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.exceptions.ApiException; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import okhttp3.*; import org.aspectj.weaver.loadtime.Agent; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.web.client.RestTemplate; +import javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @author wzy @@ -63,6 +74,166 @@ private MallMemberWalletMapper mallMemberWalletMapper; @Autowired private MallActSetMapper mallActSetMapper; + @Autowired + private MallGoodsSkuMapper mallGoodsSkuMapper; + @Autowired + private MallOrderItemMapper mallOrderItemMapper; + @Autowired + private MallGoodsMapper mallGoodsMapper; + @Autowired + private MallGoodsImagesMapper goodsImagesMapper; + + + @Autowired + private RedisUtils redisUtils; + @Resource + RestTemplate restTemplate; + + public static final String API_KEY = "MPHXcBxkGLIDOmoaahS9pIB7"; + public static final String SECRET_KEY = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw"; + + static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build(); + @Test + public void getAccessToken(){ + ApiIdentifyAddressDto apiIdentifyAddressDto = new ApiIdentifyAddressDto(); + apiIdentifyAddressDto.setText("上海市浦东新区纳贤路701号百度上海研发中心 F4A000 张三"); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, JSONUtil.toJsonStr(apiIdentifyAddressDto)); + Request request = new Request.Builder() + .url("https://aip.baidubce.com/rpc/2.0/nlp/v1/address?access_token=" + redisUtils.get(WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY).toString()) + .method("POST", body) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json") + .build(); + try { + Response response = HTTP_CLIENT.newCall(request).execute(); + String responseStr = response.body().string(); + System.out.println(responseStr); + if (responseStr.contains("error_code")) { + System.out.println("获取access_token失败"); + JSONObject jsonObject = JSONUtil.parseObj(responseStr); + System.out.print(jsonObject.get("error_code").toString()); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + @Test + public void getAccessToken2(){ + // 官网获取的 API Key 更新为你注册的 + String clientId = "MPHXcBxkGLIDOmoaahS9pIB7"; + // 官网获取的 Secret Key 更新为你注册的 + String clientSecret = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw"; + String authHost = "https://aip.baidubce.com/oauth/2.0/token?"; + String getAccessTokenUrl = authHost + // 1. grant_type为固定参数 + + "grant_type=client_credentials" + // 2. 官网获取的 API Key + + "&client_id=" + clientId + // 3. 官网获取的 Secret Key + + "&client_secret=" + clientSecret; + String jsonStr = restTemplate.getForObject(getAccessTokenUrl, String.class); + + /** + * 返回结果 + * {"access_token":"ACCESS_TOKEN","expires_in":7200} + */ + if (!jsonStr.contains("access_token")) { + System.out.println("获取access_token失败"); + } + com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(jsonStr); + String accessToken = jsonObject.getString("access_token"); + + String accessTokenKey = WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY; + if (StrUtil.isEmpty(accessToken)) { + log.error("获取baidu access_token失败: {}" , jsonObject.getString("errmsg")); + throw new ApiException("获取access token失败"); + } else { + log.info("baidu access_token : {}",accessToken); + System.out.println(accessToken); + redisUtils.set(accessTokenKey,accessToken); + } + } + @Test + public void goodsDetails(){ + Long id = 68L; + MallGoods mallGoods = mallGoodsMapper.selectGoodsDetailById(id); + if (mallGoods == null) { + throw new FebsException("商品不存在"); + } + List<String> images = goodsImagesMapper.selectGoodsImagesByGoodsId(mallGoods.getId()); + MallGoodsDetailsVo mallGoodsDetailsVo = MallGoodsConversion.INSTANCE.entityToDetailsVo(mallGoods); + + List<GoodsDetailsStyleVo> styles = mallGoodsDetailsVo.getStyles(); + if(ObjectUtil.isNotEmpty(styles)){ + for(GoodsDetailsStyleVo goodsDetailsStyleVo : styles){ + List<GoodsDetailsSkuVo> skus = goodsDetailsStyleVo.getSkus(); + if(CollUtil.isNotEmpty(skus) ){ + for(GoodsDetailsSkuVo goodsDetailsSkuVo : skus){ + if(StrUtil.isNotEmpty(goodsDetailsSkuVo.getSample())){ + goodsDetailsSkuVo.setSampleFlag(true); + }else{ + goodsDetailsSkuVo.setSampleFlag(false); + } + } + } + } + } + + if (CollUtil.isNotEmpty(mallGoods.getStyles())) { + Map<String, BigDecimal> stockAndVolume = mallGoodsMapper.selectGoodsStockAndVolume(id); + mallGoodsDetailsVo.setStock(stockAndVolume.get("stock").intValue()); + mallGoodsDetailsVo.setVolume(stockAndVolume.get("volume").intValue()); + } + mallGoodsDetailsVo.setImages(images); + + } + + @Test + public void levelTest(){ + ApiCreateOrderVerifyDto apiCreateOrderVerifyDto = new ApiCreateOrderVerifyDto(); + List<AddOrderItemDto> addOrderItemDtos = new ArrayList<>(); + AddOrderItemDto addOrderItemDto = new AddOrderItemDto(); + addOrderItemDto.setCnt(1); + addOrderItemDto.setSkuId(243L); + addOrderItemDtos.add(addOrderItemDto); + apiCreateOrderVerifyDto.setItems(addOrderItemDtos); + MallMember member = mallMemberMapper.selectById(401L); + List<AddOrderItemDto> items = apiCreateOrderVerifyDto.getItems(); + if(CollUtil.isEmpty(items)){ + System.out.println("请先挑选商品"); + } + for (AddOrderItemDto item : apiCreateOrderVerifyDto.getItems()) { + MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId()); + if (sku == null) { + System.out.println("购买商品或sku不存在"); + } + if("样品".equals(sku.getSample())){ + List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectItemBySkuIdUnCancel(sku.getId(), member.getId()); + if (CollUtil.isNotEmpty(mallOrderItems)) { + System.out.println("样品只能购买一次"); + } + Integer cnt = item.getCnt(); + if(1 < cnt){ + System.out.println("样品只能购买一件"); + } + }else{ + //验证用户的等级 + if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){ + System.out.println(sku.getSkuName() + "请先申请成为合伙人"); + } + } + + if (sku.getStock() < item.getCnt()) { + System.out.println(sku.getSkuName() + "库存不足"); + } + + MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); + if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) { + System.out.println(mallGoods.getGoodsName() + "已下架"); + } + } + } // @Test // public void skusTest() { // ApiMallAwardDetailsVo apiMallAwardDetailsVo = new ApiMallAwardDetailsVo(); -- Gitblit v1.9.1