From dc8a456b052d74207a1a9b94892e8c6bf2b90c08 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 06 Sep 2022 16:45:17 +0800
Subject: [PATCH] 20220902
---
src/test/java/cc/mrbird/febs/ProfitTest.java | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 174 insertions(+), 3 deletions(-)
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 94d30e1..0eaa49d 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -4,30 +4,57 @@
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.properties.XcxProperties;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
+import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.common.utils.SpringContextHolder;
import cc.mrbird.febs.mall.dto.ApiLeaderOrderConfirmDto;
+import cc.mrbird.febs.mall.dto.ApiLeaderRefundOrderDto;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.*;
+import cc.mrbird.febs.mall.vo.ApiLeaderProfitVo;
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.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
+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.HttpClientBuilder;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
+import java.io.*;
import java.math.BigDecimal;
-import java.util.Date;
+import java.net.HttpURLConnection;
+import java.util.*;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Base64;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
/**
@@ -181,7 +208,7 @@
private IXcxPayService iXcxPayService;
@Test
- public void qrcode(){
+ public void qrcodeBase64(){
WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto();
wxGenerateQrCodeDto.setPage("wxGenerateQrCodeDto");
wxGenerateQrCodeDto.setScene("15");
@@ -262,6 +289,150 @@
}
}
+ @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(58L);
+ Long id = 320L;
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(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);
+ }
+ }
+
+ private static final String GET_WXACODE ="https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=";
+ /**
+ * 生成小程序码返回base64字符串
+ * @param sceneStr 要携带的参数
+ * @param accessToken 上面方法得到的token
+ * @param page 要跳转的小程序页面(必须是已发布的)
+ * @return
+ */
+
+ private static final String GETWXACODEUNLIMIT_URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=%s";// 生成小程序码地址
+ private static final String URL_GET_TOKEN = "https://api.weixin.qq.com/cgi-bin/token";//获取access_token地址
+ private static final String APP_ID = "wx0b515f652282158e";// 小程序appid
+ private static final String APP_SECRET = "8d3d3c14221f7dc37650b861dc0fc570"; // 小程序秘钥
+
+ public static final String PATH_HOME = "";
+ private static final String BASE_PREFIX = "data:image/png;base64,"; // base64图片固定前缀
+ public static String getminiqrQr(String sceneStr, String accessToken,String page) {
+ HttpURLConnection httpURLConnection = null;
+ try {
+ URL url = new URL(String.format(GETWXACODEUNLIMIT_URL,accessToken));
+ httpURLConnection = (HttpURLConnection) url.openConnection();
+ httpURLConnection.setRequestMethod("POST");// 提交模式
+ // 发送POST请求必须设置如下两行
+ httpURLConnection.setDoOutput(true);
+ httpURLConnection.setDoInput(true);
+ // 获取URLConnection对象对应的输出流
+ PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
+ // 发送请求参数
+ JSONObject paramJson = new JSONObject();
+ paramJson.put("scene", sceneStr);
+ paramJson.put("page", page);
+ printWriter.write(paramJson.toString());
+ // flush输出流的缓冲
+ printWriter.flush();
+ //开始获取数据
+
+ BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
+ try (InputStream is = httpURLConnection.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream();){
+ byte[] buffer = new byte[1024];
+ int len = -1;
+ while ((len = is.read(buffer)) != -1) {
+ baos.write(buffer, 0, len);
+ }
+ return BASE_PREFIX+ Base64.getEncoder().encodeToString(baos.toByteArray());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ if (httpURLConnection != null){
+ httpURLConnection.disconnect();
+ }
+ }
+ return null;
+ }
public static void main(String[] args) {
BigDecimal amount = new BigDecimal("0.15").setScale(2,BigDecimal.ROUND_DOWN);
--
Gitblit v1.9.1