KKSU
2024-04-11 aa5feb8f990bc4f01b1a1e15cac41458f3c2179a
src/test/java/cc/mrbird/febs/AgentTest.java
@@ -5,32 +5,38 @@
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.common.utils.RedisUtils;
import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
import cc.mrbird.febs.mall.dto.AddOrderItemDto;
import cc.mrbird.febs.mall.dto.AgentLevelUpdateDto;
import cc.mrbird.febs.mall.dto.ApiCreateOrderVerifyDto;
import cc.mrbird.febs.mall.dto.ApiMallActWinDetailsDto;
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.service.IApiMallOrderInfoService;
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 cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
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;
@@ -77,6 +83,93 @@
    private  MallGoodsMapper mallGoodsMapper;
    @Autowired
    private  MallGoodsImagesMapper goodsImagesMapper;
    @Autowired
    private IApiMallOrderInfoService iApiMallOrderInfoService;
    @Test
    public void getCouponAmountMap(){
        Long memberCouponId = 139L;
        List<AddOrderItemDto> items = new ArrayList<>();
        AddOrderItemDto addOrderItemDto = new AddOrderItemDto();
        addOrderItemDto.setSkuId(185L);
        addOrderItemDto.setCnt(2);
        items.add(addOrderItemDto);
        Map<Long, BigDecimal> couponAmountMap = iApiMallOrderInfoService.getCouponAmountMap(memberCouponId, items);
        for (Map.Entry<Long, BigDecimal> entry : couponAmountMap.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
    }
    @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;
@@ -712,11 +805,11 @@
//    }
//
//
//    @Autowired
//    private AgentConsumer agentConsumer;
//
//    @Test
//    public void orderReturnTest() {
//        agentConsumer.orderReturnMoney("7");
//    }
    @Autowired
    private AgentConsumer agentConsumer;
    @Test
    public void orderReturnTest() {
        agentConsumer.getScoreMsg(215L);
    }
}