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