From 9b0cdb594239728ab1c7578a7d59baeb0a7526ac Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 22 Aug 2024 15:10:37 +0800 Subject: [PATCH] 后台 --- /dev/null | 714 --------------------------------------------------- src/main/java/cc/mrbird/febs/mall/controller/CommonController.java | 4 src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java | 6 src/test/java/cc/mrbird/febs/PayTest.java | 60 ++-- 4 files changed, 35 insertions(+), 749 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java b/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java index 017dac0..c26891d 100644 --- a/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java +++ b/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java @@ -34,12 +34,12 @@ return new com.aliyun.dysmsapi20170525.Client(config); } - private static final String SIGNNAME = "药王谷铺子"; - private static final String TEMPLATECODE = "SMS_465075162"; + private static final String SIGNNAME = "惠州象山药王谷种养科技"; + private static final String TEMPLATECODE = "SMS_302687291"; public static boolean sendALiYun(String phone,String TemplateParam){ com.aliyun.dysmsapi20170525.Client client = null; try { - client = createClient("LTAI4GBuydqbJ5bTsDP97Lpd", "vbCjQtPxABWjqtUlQfzjlA0qAY96fh"); + client = createClient("LTAI5tF6sVZ4crvpoCcgQMxJ", "VO3omrEnPJ3Fasc7RyMFmvVZm2lXlk"); } catch (Exception e) { e.printStackTrace(); return false; diff --git a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java index e012600..b3d1307 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java @@ -53,8 +53,8 @@ // 发送手机验证码 if (AppContants.ACCOUNT_TYPE_MOBILE.equals(type)) { - boolean result = Sms106Send.sendVerifyCode(account, code.toString(), 2); -// boolean result = ZzSmsSend.sendALiYun(account, code.toString()); +// boolean result = Sms106Send.sendVerifyCode(account, code.toString(), 2); + boolean result = ZzSmsSend.sendALiYun(account, code.toString()); // boolean result = ZzSmsSend.sendVerifyCode(account, code.toString(), 2); if (result) { Map<String, Object> map = new HashMap<>(); diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java deleted file mode 100644 index 7be46b8..0000000 --- a/src/test/java/cc/mrbird/febs/AgentTest.java +++ /dev/null @@ -1,799 +0,0 @@ -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.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.*; -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 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 - * @date 2021-09-25 - **/ -@Slf4j -@SpringBootTest -public class AgentTest { - - @Autowired - private AgentProducer agentProducer; - - @Autowired - private DataDictionaryCustomMapper dataDictionaryCustomMapper; - - @Autowired - private IAgentService agentService; - - @Autowired - private MallGoodsStyleMapper mallGoodsStyleMapper; - - @Autowired - private MallActAwardSetMapper mallActAwardSetMapper; - @Autowired - private MallMemberMapper mallMemberMapper; - @Autowired - private MallActWinRecordMapper mallActWinRecordMapper; - @Autowired - private MallActLuckdrawRecordMapper mallActLuckdrawRecordMapper; - @Autowired - 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(); -// Long memberId = 4L; -// Long actId = 1L; -// MallMember mallMember = mallMemberMapper.selectById(memberId); -// if(ObjectUtil.isEmpty(mallMember)){ -// throw new FebsException("用户不存在"); -// } -// -// MallActSet mallActSet = mallActSetMapper.selectById(actId); -// if(ObjectUtil.isEmpty(mallActSet)){ -// throw new FebsException("活动不存在"); -// } -// Integer actStatus = mallActSet.getActStatus(); -// if(MallActSet.ACT_STATUS_DISABLED == actStatus){ -// throw new FebsException("活动还没开始"); -// } -// /** -// * 获取用户积分数,判断能不能抽奖 -// * 减少对应的积分数量 -// * 较少奖品的已抽奖 -// * 生成一条抽奖记录 -// */ -// -// MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); -// if(ObjectUtil.isEmpty(wallet)){ -// throw new FebsException("账户不存在"); -// } -// BigDecimal commission = wallet.getCommission(); -// BigDecimal prizeScore = wallet.getPrizeScore(); -// Integer actScoreCnt = mallActSet.getActScoreCnt(); -// if(prizeScore.compareTo(new BigDecimal(actScoreCnt))<0){ -// throw new FebsException("竞猜积分不足"); -// } -// /** -// * 中奖概率 20% -// * 每次抽奖产生一个随机数要大于8,则中奖 -// * 历史10条抽奖记录有中奖过,中奖记录少于两条,则中奖 -// */ -// //获取中奖概率 -// DataDictionaryCustom scoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( -// DataDictionaryEnum.WIN_SCORE.getType(), -// DataDictionaryEnum.WIN_SCORE.getCode()); -// DataDictionaryCustom cashDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( -// DataDictionaryEnum.WIN_CASH.getType(), -// DataDictionaryEnum.WIN_CASH.getCode()); -// String scoreDicValue = scoreDic.getValue(); -// String cashDicValue = cashDic.getValue(); -// BigDecimal totalProbability = new BigDecimal(scoreDicValue).add(new BigDecimal(cashDicValue)); -// //获取那个更大一点的几率 -// BigDecimal maxProbability = BigDecimal.ZERO; -// BigDecimal minProbability = BigDecimal.ZERO; -// Integer maxAwardType = 0; -// Integer minAwardType = 0; -// if(new BigDecimal(scoreDicValue).compareTo(new BigDecimal(cashDicValue)) < 0){ -// maxProbability = new BigDecimal(cashDicValue); -// minProbability = new BigDecimal(scoreDicValue); -// maxAwardType = MallActAwardSet.AWARD_TYPE_YJ; -// minAwardType = MallActAwardSet.AWARD_TYPE_JF; -// }else{ -// maxProbability = new BigDecimal(scoreDicValue); -// minProbability = new BigDecimal(cashDicValue); -// maxAwardType = MallActAwardSet.AWARD_TYPE_JF; -// minAwardType = MallActAwardSet.AWARD_TYPE_YJ; -// } -// -// BigDecimal multiply = totalProbability.multiply(new BigDecimal(100)); -// BigDecimal failureScope = new BigDecimal(100).subtract(multiply); -// int randomInt = 90; -// //小于failureScope这个数字,则没中奖 -// if(new BigDecimal(randomInt).compareTo(failureScope) <= 0){ -// //抽奖记录 -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY); -// if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){ -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage()); -// apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName()); -// }else{ -// apiMallAwardDetailsVo.setAwardName("未中奖"); -// } -// }else if(new BigDecimal(randomInt).compareTo(failureScope) > 0 -// && new BigDecimal(randomInt).compareTo(failureScope.add(maxProbability.multiply(new BigDecimal(100)))) <= 0){ -// //大于failureScope.add(maxProbability.multiply(new BigDecimal(100)))这个数字,则中奖 -// //获取最新的十条抽奖记录 -// List<MallActLuckdrawRecord> records = mallActLuckdrawRecordMapper.selectRecordByMemberIdAndActId(memberId,actId); -// if(CollUtil.isNotEmpty(records)){ -// //中奖次数 -// Integer count = 0; -// for(MallActLuckdrawRecord mallActLuckdrawRecord : records){ -// Integer status = mallActLuckdrawRecord.getStatus(); -// if(MallActLuckdrawRecord.STATUS_ENABLE == status){ -// count = count + 1; -// } -// } -// if(new BigDecimal(count).compareTo(maxProbability.multiply(new BigDecimal(10))) < 0){ -// //获取活动下该类别的奖品 -// List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,maxAwardType); -// if(CollUtil.isEmpty(mallActAwardSets)){ -// //抽奖记录 -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY); -// if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){ -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage()); -// apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName()); -// }else{ -// apiMallAwardDetailsVo.setAwardName("未中奖"); -// } -// }else{ -// List<MallActAwardSet> idList = new ArrayList(); -// for(MallActAwardSet mallActAwardSet : mallActAwardSets){ -// Integer awardTotal = mallActAwardSet.getAwardTotal(); -// Integer awardCnt = mallActAwardSet.getAwardCnt(); -// if(awardCnt < awardTotal){ -// idList.add(mallActAwardSet); -// } -// } -// MallActAwardSet mallActAwardSet = new MallActAwardSet(); -// if(idList.size() <= 1){ -// mallActAwardSet = idList.get(0); -// }else{ -// int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1); -// mallActAwardSet = idList.get(randomIdIndex); -// } -// mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1); -// mallActAwardSetMapper.updateById(mallActAwardSet); -// -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// MallActWinRecord mallActWinRecord = new MallActWinRecord(); -// mallActWinRecord.setMemberId(memberId); -// mallActWinRecord.setActId(actId); -// mallActWinRecord.setActName(mallActSet.getActName()); -// mallActWinRecord.setAwardId(mallActAwardSet.getId()); -// mallActWinRecord.setAwardName(mallActAwardSet.getAwardName()); -// mallActWinRecord.setAwardType(mallActAwardSet.getAwardType()); -// mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue()); -// mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId()); -// mallActWinRecordMapper.insert(mallActWinRecord); -// -// apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName()); -// apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType()); -// apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue()); -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage()); -// -// if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){ -// prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){ -// commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// } -// } -// }else{ -// //抽奖记录 -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY); -// if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){ -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage()); -// apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName()); -// }else{ -// apiMallAwardDetailsVo.setAwardName("未中奖"); -// } -// } -// }else{ -// //获取活动下该类别的奖品 -// List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,maxAwardType); -// if(CollUtil.isEmpty(mallActAwardSets)){ -// //抽奖记录 -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY); -// if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){ -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage()); -// apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName()); -// }else{ -// apiMallAwardDetailsVo.setAwardName("未中奖"); -// } -// }else{ -// List<MallActAwardSet> idList = new ArrayList(); -// for(MallActAwardSet mallActAwardSet : mallActAwardSets){ -// Integer awardTotal = mallActAwardSet.getAwardTotal(); -// Integer awardCnt = mallActAwardSet.getAwardCnt(); -// if(awardCnt < awardTotal){ -// idList.add(mallActAwardSet); -// } -// } -// MallActAwardSet mallActAwardSet = new MallActAwardSet(); -// if(idList.size() <= 1){ -// mallActAwardSet = idList.get(0); -// }else{ -// int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1); -// mallActAwardSet = idList.get(randomIdIndex); -// } -// mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1); -// mallActAwardSetMapper.updateById(mallActAwardSet); -// -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// MallActWinRecord mallActWinRecord = new MallActWinRecord(); -// mallActWinRecord.setMemberId(memberId); -// mallActWinRecord.setActId(actId); -// mallActWinRecord.setActName(mallActSet.getActName()); -// mallActWinRecord.setAwardId(mallActAwardSet.getId()); -// mallActWinRecord.setAwardName(mallActAwardSet.getAwardName()); -// mallActWinRecord.setAwardType(mallActAwardSet.getAwardType()); -// mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue()); -// mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId()); -// mallActWinRecordMapper.insert(mallActWinRecord); -// -// apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName()); -// apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType()); -// apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue()); -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage()); -// -// if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){ -// prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){ -// commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// } -// } -// } -// }else{ -// //中奖 -// //获取最新的十条抽奖记录 -// List<MallActLuckdrawRecord> records = mallActLuckdrawRecordMapper.selectRecordByMemberIdAndActId(memberId,actId); -// if(CollUtil.isNotEmpty(records)){ -// //中奖次数 -// Integer count = 0; -// for(MallActLuckdrawRecord mallActLuckdrawRecord : records){ -// Integer status = mallActLuckdrawRecord.getStatus(); -// if(MallActLuckdrawRecord.STATUS_ENABLE == status){ -// count = count + 1; -// } -// } -// if(new BigDecimal(count).compareTo(minProbability.multiply(new BigDecimal(10))) < 0){ -// //获取活动下该类别的奖品 -// List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,minAwardType); -// if(CollUtil.isEmpty(mallActAwardSets)){ -// //抽奖记录 -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY); -// if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){ -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage()); -// apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName()); -// }else{ -// apiMallAwardDetailsVo.setAwardName("未中奖"); -// } -// }else{ -// List<MallActAwardSet> idList = new ArrayList(); -// for(MallActAwardSet mallActAwardSet : mallActAwardSets){ -// Integer awardTotal = mallActAwardSet.getAwardTotal(); -// Integer awardCnt = mallActAwardSet.getAwardCnt(); -// if(awardCnt < awardTotal){ -// idList.add(mallActAwardSet); -// } -// } -// MallActAwardSet mallActAwardSet = new MallActAwardSet(); -// if(idList.size() <= 1){ -// mallActAwardSet = idList.get(0); -// }else{ -// int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1); -// mallActAwardSet = idList.get(randomIdIndex); -// } -// mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1); -// mallActAwardSetMapper.updateById(mallActAwardSet); -// -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// MallActWinRecord mallActWinRecord = new MallActWinRecord(); -// mallActWinRecord.setMemberId(memberId); -// mallActWinRecord.setActId(actId); -// mallActWinRecord.setActName(mallActSet.getActName()); -// mallActWinRecord.setAwardId(mallActAwardSet.getId()); -// mallActWinRecord.setAwardName(mallActAwardSet.getAwardName()); -// mallActWinRecord.setAwardType(mallActAwardSet.getAwardType()); -// mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue()); -// mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId()); -// mallActWinRecordMapper.insert(mallActWinRecord); -// -// apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName()); -// apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType()); -// apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue()); -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage()); -// -// if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){ -// prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){ -// commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// } -// } -// }else{ -// //抽奖记录 -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY); -// if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){ -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage()); -// apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName()); -// }else{ -// apiMallAwardDetailsVo.setAwardName("未中奖"); -// } -// } -// }else{ -// //获取活动下该类别的奖品 -// List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,minAwardType); -// if(CollUtil.isEmpty(mallActAwardSets)){ -// //抽奖记录 -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY); -// if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){ -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage()); -// apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName()); -// }else{ -// apiMallAwardDetailsVo.setAwardName("未中奖"); -// } -// }else{ -// List<MallActAwardSet> idList = new ArrayList(); -// for(MallActAwardSet mallActAwardSet : mallActAwardSets){ -// Integer awardTotal = mallActAwardSet.getAwardTotal(); -// Integer awardCnt = mallActAwardSet.getAwardCnt(); -// if(awardCnt < awardTotal){ -// idList.add(mallActAwardSet); -// } -// } -// MallActAwardSet mallActAwardSet = new MallActAwardSet(); -// if(idList.size() <= 1){ -// mallActAwardSet = idList.get(0); -// }else{ -// int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1); -// mallActAwardSet = idList.get(randomIdIndex); -// } -// mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1); -// mallActAwardSetMapper.updateById(mallActAwardSet); -// -// MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord(); -// mallActLuckdrawRecord.setActId(actId); -// mallActLuckdrawRecord.setActName(mallActSet.getActName()); -// mallActLuckdrawRecord.setMemberId(memberId); -// mallActLuckdrawRecord.setActScoreCnt(actScoreCnt); -// mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE); -// mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord); -// -// MallActWinRecord mallActWinRecord = new MallActWinRecord(); -// mallActWinRecord.setMemberId(memberId); -// mallActWinRecord.setActId(actId); -// mallActWinRecord.setActName(mallActSet.getActName()); -// mallActWinRecord.setAwardId(mallActAwardSet.getId()); -// mallActWinRecord.setAwardName(mallActAwardSet.getAwardName()); -// mallActWinRecord.setAwardType(mallActAwardSet.getAwardType()); -// mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue()); -// mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId()); -// mallActWinRecordMapper.insert(mallActWinRecord); -// -// apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName()); -// apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType()); -// apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue()); -// apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage()); -// -// if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){ -// prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){ -// commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue())); -// } -// } -// } -// } -// -// //扣竞猜积分 -// prizeScore = prizeScore.subtract(new BigDecimal(actScoreCnt)); -// wallet.setPrizeScore(prizeScore); -// wallet.setCommission(commission); -// mallMemberWalletMapper.updateAmountWithVersion(wallet); -// -// System.out.println(apiMallAwardDetailsVo); -// } -// -// @Test -// public void agentTest() { -//// agentProducer.sendDelayMsg(1L, 10000L); -// -// ApiMallActWinDetailsDto apiMallActWinDetailsDto = new ApiMallActWinDetailsDto(); -// apiMallActWinDetailsDto.setActId(1L); -// apiMallActWinDetailsDto.setPageNow(1); -// apiMallActWinDetailsDto.setPageSize(10); -// Long memberId = 4L; -// MallMember mallMember = mallMemberMapper.selectById(memberId); -// if(ObjectUtil.isEmpty(mallMember)){ -// throw new FebsException("用户不存在"); -// } -// apiMallActWinDetailsDto.setMemberId(memberId); -// -// Long actId = apiMallActWinDetailsDto.getActId(); -// MallActSet mallActSet = mallActSetMapper.selectById(actId); -// if(ObjectUtil.isEmpty(mallActSet)){ -// throw new FebsException("活动不存在"); -// } -// Page<ApiMallActWinDetailsVo> page = new Page<>(apiMallActWinDetailsDto.getPageNow(), apiMallActWinDetailsDto.getPageSize()); -// IPage<ApiMallActWinDetailsVo> apiMallActWinDetailsVoIPage = mallActWinRecordMapper.selectApiMallActWinDetailsListInPage(apiMallActWinDetailsDto, page); -// System.out.println(apiMallActWinDetailsVoIPage); -// } -// -// @Test -// public void insertAgentTest() { -//// AgentInfo agentInfo = new AgentInfo(); -//// agentInfo.setOrderType(2); -//// agentInfo.setOrderCnt(2000); -//// agentInfo.setLastCnt(3); -//// agentInfo.setDirectIncome(BigDecimal.valueOf(50)); -//// agentInfo.setTeamIncome(BigDecimal.valueOf(15)); -//// agentInfo.setTeamIncomeType(2); -//// -//// DataDictionaryCustom data = new DataDictionaryCustom(); -//// data.setType("AGENT_LEVEL_REQUIRE"); -//// data.setCode(AgentLevelEnum.FOUR_LEVEL.name()); -//// data.setValue(JSONObject.toJSONString(agentInfo)); -//// dataDictionaryCustomMapper.insert(data); -// } -// -// @Test -// public void insertData() { -// int i = 1; -// for (AgentLevelEnum value : AgentLevelEnum.values()) { -// DataDictionaryCustom data = new DataDictionaryCustom(); -// data.setType("AGENT_LEVEL"); -// data.setDescription(value.getName()); -// data.setCode(value.name()); -// data.setValue(String.valueOf(i)); -// dataDictionaryCustomMapper.insert(data); -// } -// -// } -// -// public static void main(String[] args) { -// getJson(); -// } -// -// public static void getJson(){ -// AgentLevelUpdateDto adminAgentLevelUpdateInfoVo = new AgentLevelUpdateDto(); -// String jsonStr = "{\"directIncome\":50,\"lastCnt\":3,\"orderCnt\":2000,\"orderType\":2,\"teamIncome\":15,\"teamIncomeType\":2}"; -// JSONObject jsonObject = JSONObject.parseObject(jsonStr); -// adminAgentLevelUpdateInfoVo.setDirectIncome(new BigDecimal((jsonObject.get("directIncome")==null?0:jsonObject.get("directIncome")).toString())); -// adminAgentLevelUpdateInfoVo.setLastCnt(Integer.parseInt((jsonObject.get("lastCnt")==null?0:jsonObject.get("lastCnt")).toString())); -// adminAgentLevelUpdateInfoVo.setOrderCnt(Integer.parseInt((jsonObject.get("orderCnt")==null?0:jsonObject.get("orderCnt")).toString())); -// adminAgentLevelUpdateInfoVo.setOrderType(Integer.parseInt(jsonObject.get("orderType").toString())); -// adminAgentLevelUpdateInfoVo.setTeamIncome(new BigDecimal((jsonObject.get("teamIncome")==null?0:jsonObject.get("teamIncome")).toString())); -// adminAgentLevelUpdateInfoVo.setTeamIncomeType(Integer.parseInt(jsonObject.get("orderType").toString())); -// adminAgentLevelUpdateInfoVo.setId(14L); -// AgentLevelUpdateDto agentLevelUpdateDtoJson = new AgentLevelUpdateDto(); -// agentLevelUpdateDtoJson.setDirectIncome(adminAgentLevelUpdateInfoVo.getDirectIncome()); -// agentLevelUpdateDtoJson.setLastCnt(adminAgentLevelUpdateInfoVo.getLastCnt()); -// agentLevelUpdateDtoJson.setOrderCnt(adminAgentLevelUpdateInfoVo.getOrderCnt()); -// agentLevelUpdateDtoJson.setTeamIncome(adminAgentLevelUpdateInfoVo.getTeamIncome()); -// agentLevelUpdateDtoJson.setOrderType(adminAgentLevelUpdateInfoVo.getOrderType()); -// agentLevelUpdateDtoJson.setTeamIncomeType(adminAgentLevelUpdateInfoVo.getTeamIncomeType()); -// JSONObject jsonObjectA = (JSONObject)JSONObject.toJSON(agentLevelUpdateDtoJson); -// System.out.println(jsonObjectA.toJSONString()); -// } -// -// @Test -// public void autoLevelUp() { -// // agentService.autoUpAgentLevel(3L); -//// agentProducer.sendAutoLevelUpMsg(5L); -// -// agentProducer.sendReturnMoneyMsg(2L); -// } -// -// @Test -// public void returnMoney() { -// // agentService.autoUpAgentLevel(3L); -//// agentProducer.sendAutoLevelUpMsg(5L); -//// agentProducer.sendReturnMoneyMsg(52L); -// agentService.returnMoneyToAgent(52L); -// } -// -// @Test -// public void bigdecimalTest() { -// BigDecimal aa = new BigDecimal("1.345"); -// -// System.out.println(aa.setScale(2, RoundingMode.DOWN)); -// System.out.println(aa.setScale(2, RoundingMode.UP)); -// } -// -// @Autowired -// private ProfitJob profitJob; -// -// @Test -// public void profitJobTest() { -// profitJob.profitJob(); -// } -// -// -// @Autowired -// private AgentConsumer agentConsumer; -// -// @Test -// public void orderReturnTest() { -// agentConsumer.orderReturnMoney("7"); -// } -} diff --git a/src/test/java/cc/mrbird/febs/PayTest.java b/src/test/java/cc/mrbird/febs/PayTest.java index ab2f52b..3ca0e74 100644 --- a/src/test/java/cc/mrbird/febs/PayTest.java +++ b/src/test/java/cc/mrbird/febs/PayTest.java @@ -34,35 +34,35 @@ RestTemplate restTemplate; @Resource WechatEventUtil wechatEventUtil; - @Test - public void aliPay(){ - //前两个参数没用 - String ticket = wechatEventUtil.getTicket("123456"); - String qRcode = wechatEventUtil.getQRcode(ticket); - System.out.println(qRcode); - -// String appId = "wxfb1acf504eb9d058"; -// String appSecret = "7ee226a964b1be7cfb96f5e0dc739c44"; -// String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret; -// String jsonStr = restTemplate.getForObject(url, String.class); +// @Test +// public void aliPay(){ +// //前两个参数没用 +// String ticket = wechatEventUtil.getTicket("123456"); +// String qRcode = wechatEventUtil.getQRcode(ticket); +// System.out.println(qRcode); // -// /** -// * 返回结果 -// * {"access_token":"ACCESS_TOKEN","expires_in":7200} -// */ -// if (!jsonStr.contains("access_token")) { -// System.out.println("获取微信access_token失败"); -// } -// -// String accessTokenKey = WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY; -// JSONObject jsonObject = JSONObject.parseObject(jsonStr); -// String accessToken = jsonObject.getString(accessTokenKey); -// if (StrUtil.isEmpty(accessToken)) { -// log.error("获取access token失败: {}" , jsonObject.getString("errmsg")); -// throw new ApiException("获取access token失败"); -// } else { -// log.info("wx access_token : {}",accessToken); -// redisUtils.set(accessTokenKey,accessToken); -// } - } +//// String appId = "wxfb1acf504eb9d058"; +//// String appSecret = "7ee226a964b1be7cfb96f5e0dc739c44"; +//// String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret; +//// String jsonStr = restTemplate.getForObject(url, String.class); +//// +//// /** +//// * 返回结果 +//// * {"access_token":"ACCESS_TOKEN","expires_in":7200} +//// */ +//// if (!jsonStr.contains("access_token")) { +//// System.out.println("获取微信access_token失败"); +//// } +//// +//// String accessTokenKey = WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY; +//// JSONObject jsonObject = JSONObject.parseObject(jsonStr); +//// String accessToken = jsonObject.getString(accessTokenKey); +//// if (StrUtil.isEmpty(accessToken)) { +//// log.error("获取access token失败: {}" , jsonObject.getString("errmsg")); +//// throw new ApiException("获取access token失败"); +//// } else { +//// log.info("wx access_token : {}",accessToken); +//// redisUtils.set(accessTokenKey,accessToken); +//// } +// } } diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java deleted file mode 100644 index 98a4691..0000000 --- a/src/test/java/cc/mrbird/febs/ProfitTest.java +++ /dev/null @@ -1,714 +0,0 @@ -package cc.mrbird.febs; - -import cc.mrbird.febs.common.entity.FebsResponse; -import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; -import cc.mrbird.febs.common.enumerates.FlowTypeEnum; -import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; -import cc.mrbird.febs.common.enumerates.OrderStatusEnum; -import cc.mrbird.febs.common.exception.FebsException; -import cc.mrbird.febs.common.utils.HttpCurlUtil; -import cc.mrbird.febs.common.utils.MallUtils; -import cc.mrbird.febs.common.utils.RedisUtils; -import cc.mrbird.febs.mall.dto.AdminLeaderAddFenceDto; -import cc.mrbird.febs.mall.dto.ApiLeaderRefundOrderDto; -import cc.mrbird.febs.mall.dto.ApiRechargeWalletDto; -import cc.mrbird.febs.mall.entity.*; -import cc.mrbird.febs.mall.mapper.*; -import cc.mrbird.febs.mall.service.*; -import cc.mrbird.febs.pay.model.BrandWCPayRequestData; -import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto; -import cc.mrbird.febs.pay.service.IXcxPayService; -import cc.mrbird.febs.pay.util.WechatConfigure; -import cc.mrbird.febs.rabbit.consumer.AgentConsumer; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.httpclient.HttpStatus; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -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.*; -import java.math.BigDecimal; -import java.net.URLConnection; -import java.nio.charset.Charset; -import java.util.*; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.PrintWriter; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -/** - * @author wzy - * @date 2022-06-02 - **/ -@SpringBootTest -public class ProfitTest { - - @Autowired - private AgentConsumer agentConsumer; - - @Autowired - private IAgentService agentService; - - @Autowired - private IMemberProfitService memberProfitService; - - @Test - public void dynamicProfit() { - memberProfitService.dynamicProfit(21L); - } - @Test - public void agentProfit() { - memberProfitService.agentProfit(null); - } - - - @Test - public void staticProfit() { - memberProfitService.staticProfit(new Date()); - } - - @Test - public void thankfulProfit() { - memberProfitService.thankfulProfit(new Date()); - } - - @Test - public void rankProfit() { - memberProfitService.rankProfit(); - } - - @Autowired - private MallOrderInfoMapper mallOrderInfoMapper; - - @Test - public void directorProfitTest() { - memberProfitService.storeAndDirectorProfit(new Date()); - } - - @Autowired - private MallOrderItemMapper mallOrderItemMapper; - - @Autowired - private IMallAchieveService mallAchieveService; - - @Test - public void achieveTest() { - List<MallOrderItem> items = mallOrderItemMapper.selectList(null); - for (MallOrderItem item : items) { - mallAchieveService.add(item.getId()); - } - } - - @Test - public void paramTest() { - Map<String, Integer> map = new HashMap<>(); - BigDecimal amount = new BigDecimal("100"); - map.put("amount", 1); - changeAmount(map); - System.out.println(map.get("amount")); - } - - public void changeAmount(Map<String, Integer> amount) { - amount.put("amount", 2); - } - - @Resource - RestTemplate restTemplate; - - @Test - public void getWeChatAccessToken() { - - - // 第三方用户唯一凭证 - String appId = "wx052716b1a388b13c"; - // 第三方用户唯一凭证密钥 - String appSecret = "a217fd6bd36b4939e29a052fd5ba6984"; - String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret; - String jsonStr = restTemplate.getForObject(url, String.class); - - - /** - * 返回结果 - * {"access_token":"ACCESS_TOKEN","expires_in":7200} - */ - if (!jsonStr.contains("access_token")) { - System.out.println("获取微信access_token失败"); - } - - JSONObject jsonObject = JSON.parseObject(jsonStr); - System.out.println(jsonObject.get("access_token").toString()); - } - @Resource - IApiMallTeamLeaderService iApiMallTeamLeaderService; - - @Test - public void confirm(){ -// ApiLeaderOrderConfirmDto apiLeaderOrderConfirmDto = new ApiLeaderOrderConfirmDto(); -// apiLeaderOrderConfirmDto.setIds("90"); -// iApiMallTeamLeaderService.leaderOrderConfirm(apiLeaderOrderConfirmDto); - String productNames = getProductNames(35L, 106L); - System.out.println(productNames); - } - - /** - * 根据用户ID和订单ID获取所购买商品名称 - * @return 所含商品名称(多个以","隔开) - */ - public String getProductNames(Long memberId, Long orderId) { - MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectOrderByMemberIdAndId(memberId, orderId); - List<MallOrderItem> details = mallOrderInfo.getItems(); - if (CollectionUtils.isEmpty(details)) { - return ""; - } - StringBuffer productNameBuffer = new StringBuffer(); - Integer maxLength = 30; - for (int i = 0; i< details.size(); i++) { - MallOrderItem mallOrderItem = details.get(i); - String goodsName = mallOrderItem.getGoodsName(); - if (goodsName == null) { - continue; - } - if (i == 0 && goodsName.length() > maxLength) { - productNameBuffer.append(goodsName.substring(0, maxLength) + "..."); - break; - } - if ((productNameBuffer.length() + goodsName.length()) > maxLength) { - productNameBuffer.append("等"); - break; - } - productNameBuffer.append(goodsName + ","); - } - String productNames = productNameBuffer.toString(); - if (productNames.endsWith(",")) { - productNames = productNames.substring(0, productNames.length() - 1); - } - if (productNames.endsWith(",等")) { - productNames = productNames.substring(0, productNames.length() - 2) + "等"; - } - return productNames; - } - @Autowired - private IXcxPayService iXcxPayService; - @Autowired - private MallGoodsMapper mallGoodsMapper; - @Autowired - private IAdminMallTeamLeaderService iAdminMallTeamLeaderService; - - @Test - public void qrcodeBase64(){ - -// Integer integer = mallGoodsMapper.upDateStockAndVolumeByGoodsId(35L, 3); -// System.out.println(integer); -// WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto(); -// wxGenerateQrCodeDto.setPage("pages/product/details"); -// wxGenerateQrCodeDto.setScene("35"); -// FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto); -// String data = febsResponse.get("data").toString(); -// System.out.println(data); -// trackServiceInfo("e024c63342930addc57189c8608cdb01",null); -// String e024c63342930addc57189c8608cdb01 = trackServiceDel("e024c63342930addc57189c8608cdb01", "792477"); -// System.out.println(e024c63342930addc57189c8608cdb01); - String ss = fenceDel("95ede7157929f5f6b6c758971be924b1", "795278","795554"); - System.out.println(ss); - } - - //电子围栏删除 - public String fenceDel(String gaodeKey, String sid,String fenceId) { - String url = "https://tsapi.amap.com/v1/track/geofence/delete?key="+gaodeKey+"&sid="+sid+"&gfids="+fenceId; - HttpPost httpPost = new HttpPost(url); - Map<String,String> map = new HashMap<>(); - map.put("key",gaodeKey); - map.put("sid",sid); - map.put("gfids",fenceId); - String param= JSON.toJSONString(map); - String result = null; - try { - result = HttpCurlUtil.sendPostHttp(url, param); - } catch (IOException e) { - e.printStackTrace(); - } - cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); - System.out.println(maps); - String errcode = maps.get("errcode").toString(); - if(!"10000".equals(errcode)){ - return "fail"; - }else{ - return maps.toString(); - } - } - //服务删除 - public String trackServiceDel(String gaodeKey, String sid) { - String url = "https://tsapi.amap.com/v1/track/service/delete?key="+gaodeKey+"&sid="+sid; - HttpPost httpPost = new HttpPost(url); - Map<String,String> map = new HashMap<>(); - map.put("key",gaodeKey); - map.put("sid",sid); - String param= JSON.toJSONString(map); - String result = null; - try { - result = HttpCurlUtil.sendPostHttp(url, param); - } catch (IOException e) { - e.printStackTrace(); - } - cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); - System.out.println(maps); - String errcode = maps.get("errcode").toString(); - if(!"10000".equals(errcode)){ - return "fail"; - }else{ - return maps.toString(); - } -// String str2 = maps.get("data").toString(); -// cn.hutool.json.JSONObject maps2 = JSONUtil.parseObj(str2); -// String serviceId = maps2.get("sid").toString(); -// if(null!=serviceId&&!"".equals(serviceId)){ -// return serviceId; -// }else{ -// return "fail"; -// } - } - - - public String trackServiceInfo(String gaodeKey, String serviceName) { - String url = "https://tsapi.amap.com/v1/track/service/list"; - HttpPost httpPost = new HttpPost(url); - Map<String,String> map = new HashMap<>(); - //高德Key - //用户在高德地图官网申请Web服务API类型Key - map.put("key",gaodeKey); - System.out.println("==高德返回"+map); - String result = null; - try { - result = HttpCurlUtil.sendGetHttp(url, map); - } catch (IOException e) { - e.printStackTrace(); - } - System.out.println("==高德返回"+result); - cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); - String errCode = maps.get("errcode").toString(); - if("10000".equals(errCode)){ - String dataStr = maps.get("data").toString(); - cn.hutool.json.JSONObject dataResults = JSONUtil.parseObj(dataStr); - String resultsStr = dataResults.get("results").toString(); - return resultsStr; - }else{ - return "fail"; - } - } - - -// -// @Autowired -// private MallOrderInfoMapper mallOrderInfoMapper; -// -// @Autowired -// private MallGoodsSkuMapper mallGoodsSkuMapper; - - @Autowired - private MallLeaderAchieveMapper mallLeaderAchieveMapper; -// -// @Autowired -// private MallTeamLeaderMapper mallTeamLeaderMapper; -// -// @Autowired -// private IMemberProfitService memberProfitService; - -// @Autowired -// private IMallAchieveService mallAchieveService; - - @Autowired - private DataDictionaryCustomMapper dataDictionaryCustomMapper; - - @Autowired - private MallMemberMapper mallMemberMapper; - - @Autowired - private IMallMoneyFlowService mallMoneyFlowService; - - @Autowired - private IApiMallMemberWalletService memberWalletService; - - @Test - public void achieve(){ - DataDictionaryCustom dicBonusSwitch = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_SWITCH.getType(), DataDictionaryEnum.BONUS_SWITCH.getCode()); - String bonusSwitch = dicBonusSwitch.getValue(); - if("1".equals(bonusSwitch)){ - DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); - BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);; - //获取每日提成总数 - /** - * a.unique_code uniqueCode 团长特征码 - * , IFNULL(sum(a.amount),0) amount 每日提成总金额 - */ -// DateTime dateTime = DateUtil.offsetDay(new Date(), -1); - DateTime dateTime = DateUtil.offsetDay(new Date(), 0); - List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime); - if (CollUtil.isNotEmpty(allLeaderAchieve)) { - for (Map<String, String> map : allLeaderAchieve) { - String uniqueCode = map.get("uniqueCode"); - Object amountOrder = map.get("amount"); - //直接舍弃小数点的第三位 - BigDecimal amount = new BigDecimal(String.valueOf(amountOrder)).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal achieveMoney = amount.multiply(bonusPercent).setScale(2,BigDecimal.ROUND_DOWN); - MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); - memberWalletService.addBalance(achieveMoney,mallMember.getId()); - String achieveNo = "TC."+ MallUtils.getOrderNum(); - mallMoneyFlowService.addMoneyFlow( - mallMember.getId(), - achieveMoney, - MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), - achieveNo, - FlowTypeEnum.BALANCE.getValue()); - - - //更新到已提成状态 - mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); - } - } - } - - } - @Autowired - private MallMoneyFlowMapper mallMoneyFlowMapper; - - @Test - public void testAddress(){ - MallMember loginUser = mallMemberMapper.selectById(47L); - BigDecimal totalProfit = mallMoneyFlowMapper.selectAmountByFlowtypeAndType(loginUser.getId(),FlowTypeEnum.BALANCE.getValue(),MoneyFlowTypeEnum.LEADERACHIEVE.getValue(),null,null,null); - BigDecimal todayProfit = mallMoneyFlowMapper.selectAmountByFlowtypeAndType(loginUser.getId(),FlowTypeEnum.BALANCE.getValue(), - MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), - null,DateUtil.date(), - null); - - BigDecimal monthProfit = mallMoneyFlowMapper.selectAmountByFlowtypeAndType(loginUser.getId(),FlowTypeEnum.BALANCE.getValue(), - MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), - null,null, - DateUtil.date()); - BigDecimal waitProfit = mallLeaderAchieveMapper.selectProfitByStateAndDateTimeAndUniqueCode(1,null,loginUser.getInviteId()).setScale(2,BigDecimal.ROUND_DOWN); - System.out.println(todayProfit +";"); - System.out.println(waitProfit +";"); - System.out.println(totalProfit +";"); - System.out.println(monthProfit +";"); - } - - @Autowired - RedisUtils redisUtils; - @Autowired - MallRefundMapper mallRefundMapper; - - - - @Test - public void qrcode(){ - MallMember member = mallMemberMapper.selectById(402L); - -// ApiRechargeWalletDto apiRechargeWalletDto = new ApiRechargeWalletDto(); -// apiRechargeWalletDto.setAmount(new BigDecimal(1)); -// apiRechargeWalletDto.setMemberId(402L); -// BrandWCPayRequestData brandWCPayRequestData = null; -// try { -// brandWCPayRequestData = iXcxPayService.startRechargeWallet(apiRechargeWalletDto); -// } catch (Exception e) { -// throw new FebsException("支付失败"); -// } -// String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData); -// String payResultStr = brandWCPayRequestData.getPrepay_id(); -// Map<String, Object> map = new HashMap<>(); -// map.put("orderInfo", payResultStr); -// map.put("wxResultStr", wxResultStr); - - Long id = 345417L; - MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); - BrandWCPayRequestData brandWCPayRequestData = null; - try { - brandWCPayRequestData = iXcxPayService.startPayment(mallOrderInfo); - } catch (Exception e) { - throw new FebsException("支付失败"); - } - String s = JSONUtil.toJsonStr(brandWCPayRequestData); - String prepay_id = brandWCPayRequestData.getPrepay_id(); - - -// if(ObjectUtil.isEmpty(mallOrderInfo)){ -// } -// Integer status = mallOrderInfo.getStatus(); -// if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){ -// } -// Integer deliveryState = mallOrderInfo.getDeliveryState(); -// if(1 != deliveryState){ -// } -// //根据子订单生成退款记录 -// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); -// if(CollUtil.isEmpty(mallOrderItemList)){ -// } -// for(MallOrderItem mallOrderItem : mallOrderItemList){ -// QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>(); -// objectQueryWrapper.eq("member_id",member.getId()); -// objectQueryWrapper.eq("order_id",mallOrderInfo.getId()); -// objectQueryWrapper.eq("item_id",mallOrderItem.getId()); -// MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper); -// MallRefundEntity mallRefundEntity = new MallRefundEntity(); -// if(ObjectUtil.isEmpty(mallRefund)){ -// mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId()); -// mallRefundEntity.setMemberId(member.getId()); -// mallRefundEntity.setOrderId(mallOrderInfo.getId()); -// mallRefundEntity.setItemId(mallOrderItem.getId()); -// if("余额支付".equals(mallOrderInfo.getPayMethod())){ -// mallRefundEntity.setType(3); -// }else if("微信支付".equals(mallOrderInfo.getPayMethod())){ -// mallRefundEntity.setType(1); -// }else{ -// mallRefundEntity.setType(3); -// } -// mallRefundEntity.setState(3); -// mallRefundEntity.setAmount(mallOrderItem.getAmount()); -// mallRefundMapper.insert(mallRefundEntity); -// }else{ -// if(mallRefund.getState() == 2){ -// mallRefundEntity.setId(mallRefund.getId()); -// mallRefundEntity.setRefundNo(mallRefund.getRefundNo()); -// mallRefundEntity.setMemberId(mallRefund.getMemberId()); -// mallRefundEntity.setOrderId(mallRefund.getOrderId()); -// mallRefundEntity.setItemId(mallRefund.getItemId()); -// mallRefundEntity.setType(mallRefund.getType()); -// mallRefundEntity.setState(3); -// mallRefundEntity.setAmount(mallRefund.getAmount()); -// mallRefundMapper.updateById(mallRefundEntity); -// } -// } -// ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto(); -// apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId()); -// apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId()); -// apiLeaderRefundOrderDto.setAgreeState(1); -// iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto); -// } - } - - /** - * 获取小程序菊花码 - * @Description //TODO - * @Author zhaowx - * @Date 2020/3/25 15:23 - **/ - @Test - public void getWXCode() { - try { - //这里调用的是上面的获取access_token方法 - String access_token = redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString(); - String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+access_token; - String scene = "15"; - Map<String, String> param = new HashMap<>(); - param.put("scene",scene); - //这里的page如果没有的话可以不写,默认是跳主页,如果写了没有的页面的话,会返回错误信息 - param.put("page","pages/product/details"); - String json = JSON.toJSONString(param); - ByteArrayInputStream inputStream = sendPost(url, json); - - //这里判断的是返回的图片还是错误信息,一般错误信息不会大于200 - if (inputStream.available() <= 200){ - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - int i; - byte[] buffer = new byte[200]; - while ((i = inputStream.read(buffer)) != -1){ - byteArrayOutputStream.write(buffer,0,i); - } - String str = new String(byteArrayOutputStream.toByteArray()); - //错误信息的格式在官方文档里有 - JSONObject jsonObject = JSONObject.parseObject(str); - if ("41030".equals(jsonObject.getString("errcode"))){ - System.out.println("所传page页面不存在,或者小程序没有发布"); - - }else if ("45009".equals(jsonObject.getString("errcode"))){ - System.out.println("调用分钟频率受限"); - } - byteArrayOutputStream.close(); - } - //输出到本地的代码 - FileOutputStream fileOutputStream = new FileOutputStream("D:/123.png"); - int i; - byte[] buffer = new byte[10240000]; - while ((i = inputStream.read(buffer)) != -1){ - fileOutputStream.write(buffer,0,i); - } - - fileOutputStream.flush(); - fileOutputStream.close(); - inputStream.close(); - }catch (Exception e){ - } - } - - - public static ByteArrayInputStream sendPost(String URL, String json) { - InputStream inputStream = null; - ByteArrayInputStream byteArrayInputStream = null; - // 创建默认的httpClient实例. - CloseableHttpClient httpclient = HttpClients.createDefault(); - // 创建httppost - HttpPost httppost = new HttpPost(URL); - httppost.addHeader("Content-type", "application/json; charset=utf-8"); - httppost.setHeader("Accept", "application/json"); - try { - StringEntity s = new StringEntity(json, Charset.forName("UTF-8")); - s.setContentEncoding("UTF-8"); - httppost.setEntity(s); - HttpResponse response = httpclient.execute(httppost); - if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ - // 获取相应实体 - HttpEntity entity = response.getEntity(); - inputStream = entity.getContent(); - ByteArrayOutputStream outStream = new ByteArrayOutputStream(); - // 创建一个Buffer字符串 - byte[] buffer = new byte[1024]; - // 每次读取的字符串长度,如果为-1,代表全部读取完毕 - int len = 0; - // 使用一个输入流从buffer里把数据读取出来 - while ((len = inputStream.read(buffer)) != -1) { - // 用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度 - outStream.write(buffer, 0, len); - } - // 关闭输入流 - inputStream.close(); - // 把outStream里的数据写入内存 - byteArrayInputStream = new ByteArrayInputStream(outStream.toByteArray()); - byte[] data = outStream.toByteArray(); - String result = new String(Base64.getEncoder().encode(data)); - result = "data:image/jpeg;base64," + result; - System.out.println(result); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - // 关闭连接,释放资源 - try { - httpclient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - return byteArrayInputStream; - } - - - /** - * 传递自定义参数获取二维码保存后并生成url给前端访问 - * @Author yeafel - * @param scene - * @param page - * @param is_hyaline - * @param auto_color - * @return - */ - @Test - public void getQrCodeImgUrl() { - String scene = "pages/product/details"; - String page = "15"; - Boolean is_hyaline = true; - Boolean auto_color = true; - RestTemplate restTemplate = new RestTemplate(); - //首先获取ACCESS_TOKEN - String accessToken = redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString(); - - //然后调用微信官方api生成二维码 - String createQrCodeUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken; - //此处我是使用的阿里巴巴的fastJson - JSONObject createQrParam = new JSONObject(); - createQrParam.put("scene", scene); - createQrParam.put("page", page); - createQrParam.put("is_hyaline", is_hyaline); - createQrParam.put("auto_color", auto_color); - - PrintWriter out = null; - InputStream in = null; - try { - URL realUrl = new URL(createQrCodeUrl); - // 打开和URL之间的连接 - URLConnection conn = realUrl.openConnection(); - // 设置通用的请求属性 - conn.setRequestProperty("accept", "*/*"); - conn.setRequestProperty("connection", "Keep-Alive"); - conn.setRequestProperty("user-agent", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - // 发送POST请求必须设置如下两行 - conn.setDoOutput(true); - conn.setDoInput(true); - // 获取URLConnection对象对应的输出流 - out = new PrintWriter(conn.getOutputStream()); - // 发送请求参数,利用connection的输出流,去写数据到connection中,我的参数数据流出我的电脑内存到connection中,让connection把参数帮我传到URL中去请求。 - out.print(createQrParam); - // flush输出流的缓冲 - out.flush(); - //获取URL的connection中的输入流,这个输入流就是我请求的url返回的数据,返回的数据在这个输入流中,流入我内存,我将从此流中读取数据。 - in = conn.getInputStream(); - //定义个空字节数组 - byte[] data = null; - // 读取图片字节数组 - try { - //创建字节数组输出流作为中转仓库,等待被写入数据 - ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); - byte[] buff = new byte[100]; - int rc = 0; - while ((rc = in.read(buff, 0, 100)) > 0) { - //向中转的输出流循环写出输入流中的数据 - swapStream.write(buff, 0, rc); - } - //此时connection的输入流返回给我们的请求结果数据已经被完全地写入了我们定义的中转输出流swapStream中 - data = swapStream.toByteArray(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - String base64Code = new String(Objects.requireNonNull(Base64.getEncoder().encode(data))); - //Base64转byte[]数组 - System.out.println(base64Code); - } catch (Exception e) { - System.out.println("发送 POST 请求出现异常!" + e); - e.printStackTrace(); - } - - // 使用finally块来关闭输出流、输入流 - finally { - try { - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } - } catch (IOException ex) { - ex.printStackTrace(); - } - } - } - - - public static void main(String[] args) { - BigDecimal amount = new BigDecimal("0.15").setScale(2,BigDecimal.ROUND_DOWN); - System.out.println(amount); - } -} -- Gitblit v1.9.1