From 8cf981d26a5e78e561a9a48f2484c6b775c7505f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 07 Sep 2022 10:28:30 +0800
Subject: [PATCH] 20220902

---
 src/test/java/cc/mrbird/febs/ProfitTest.java |  177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 171 insertions(+), 6 deletions(-)

diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 1076d6e..6071375 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,9 +208,9 @@
     private IXcxPayService iXcxPayService;
 
     @Test
-    public void qrcode(){
+    public void qrcodeBase64(){
         WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto();
-        wxGenerateQrCodeDto.setPage("wxGenerateQrCodeDto");
+        wxGenerateQrCodeDto.setPage("pages/index/index");
         wxGenerateQrCodeDto.setScene("15");
         FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto);
         String data = febsResponse.get("data").toString();
@@ -262,11 +289,149 @@
         }
 
     }
+    @Autowired
+    private MallMoneyFlowMapper mallMoneyFlowMapper;
 
     @Test
     public void testAddress(){
-        MallOrderInfo orderInfo = mallOrderInfoMapper.selectOrderDetailsById(266L);
-        System.out.println(orderInfo.getLeaderLatitude());
+        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) {

--
Gitblit v1.9.1