xiaoyong931011
2023-07-28 ea825bb73b6fa9824738914aeb8a657da10e8fe3
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -1,10 +1,7 @@
package cc.mrbird.febs.mall.service.impl;
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.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.enumerates.*;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.HttpCurlUtil;
@@ -13,6 +10,9 @@
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.*;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
@@ -55,6 +55,8 @@
    private final IApiMallMemberWalletService memberWalletService;
    private final MallRollPerkMapper mallRollPerkMapper;
    private final IMallMoneyFlowService mallMoneyFlowService;
    private final MallMemberClassMapper mallMemberClassMapper;
    private final MallMemberHouseMapper mallMemberHouseMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -239,7 +241,7 @@
    @Override
    public void addMemberScan(String str) {
        String[] split = StrUtil.split(str, "-");
        String[] split = StrUtil.split(str, "@");
        String referrerId = split[0];
        String openId = split[1];
        MallMember mallMember = memberMapper.selectMemberByOpenId(openId);
@@ -377,7 +379,7 @@
                BigDecimal amountActual = amountBigDecimal.multiply(returnPercent).setScale(2, BigDecimal.ROUND_DOWN);
                memberWalletService.add(amountActual, id, "balance");
                mallMoneyFlowService.addMoneyFlow(id, amountActual, MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(),
                        mallOrderInfo.getOrderNo(),  FlowTypeEnum.BALANCE.getValue());
                        mallOrderInfo.getOrderNo(),  FlowTypeEnum.BALANCE.getValue(),"直推奖",2);
            }
        }
        for(MallOrderItem mallOrderItem : mallOrderItemList){
@@ -386,13 +388,17 @@
            if(ObjectUtil.isEmpty(mallGoods)){
                break;
            }
            if(ObjectUtil.isNotEmpty(mallGoods.getIsUnreal()) && 1 == mallGoods.getIsUnreal()){
                mallOrderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
                mallOrderInfoMapper.updateById(mallOrderInfo);
            }
            //是否送券 1:是 2:否
            BigDecimal levelTwoPrice = mallGoods.getLevelTwoPrice();
            if(BigDecimal.ONE.compareTo(levelTwoPrice) == 0){
                MallRollPerk mallRollPerk = new MallRollPerk();
                mallRollPerk.setMemberId(memberId);
                mallRollPerk.setState(1);
                mallRollPerk.setRollId(Long.parseLong(mallGoods.getLevelThreePrice().toString()));
                mallRollPerk.setRollId(mallGoods.getLevelThreePrice().longValue());
                mallRollPerkMapper.insert(mallRollPerk);
            }
            //赠送积分
@@ -401,33 +407,93 @@
                memberWalletService.add(levelOnePrice, memberId, "score");
                mallMoneyFlowService.addMoneyFlow(memberId, levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.getValue(),
                        mallOrderInfo.getOrderNo(),  FlowTypeEnum.SCORE.getValue());
                        mallOrderInfo.getOrderNo(),  FlowTypeEnum.SCORE.getValue(),"赠送积分",2);
            }
        }
    }
    @Override
    public void rollSendMsg(Long orderId) {
        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
        if(ObjectUtil.isEmpty(mallOrderInfo)){
            return;
        }
        Long memberId = mallOrderInfo.getMemberId();
        MallMember mallMember = memberMapper.selectById(memberId);
        if(ObjectUtil.isEmpty(mallMember)){
            return;
        }
        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderId);
        if(CollUtil.isEmpty(mallOrderItemList)){
            return;
        }
        MallOrderItem mallOrderItem = mallOrderItemList.get(0);
        String goodsName = mallOrderItem.getGoodsName();
        String skuImage = mallOrderItem.getSkuImage();
        Long goodsId = mallOrderItem.getGoodsId();
        MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
        if(ObjectUtil.isEmpty(mallGoods)){
            return;
        }
        Integer isNormal = mallGoods.getIsNormal();
        if(4 == isNormal){
            //课程卷
            MallMemberClass mallMemberClass = new MallMemberClass();
            mallMemberClass.setMemberId(mallMember.getId());
            mallMemberClass.setOrderId(orderId);
            mallMemberClass.setClassName(goodsName);
            mallMemberClass.setClassPic(skuImage);
            mallMemberClass.setClassDec(mallGoods.getGoodsIntrodution());
            mallMemberClass.setClassUrl(mallGoods.getVideoUrl());
            mallMemberClass.setCreateTime(DateUtil.date());
            mallMemberClassMapper.insert(mallMemberClass);
            return;
        }else if(5 == isNormal){
            //民宿卷
            MallMemberHouse mallMemberHouse = new MallMemberHouse();
            mallMemberHouse.setOrderId(orderId);
            mallMemberHouse.setOrderNo(mallOrderInfo.getOrderNo());
            mallMemberHouse.setMemberId(memberId);
            mallMemberHouse.setState(1);
            mallMemberHouse.setCreateTime(DateUtil.date());
            mallMemberHouse.setUpdateTime(mallOrderInfo.getUseTime());
            mallMemberHouse.setUnuseTime(DateUtil.date().offset(DateField.HOUR_OF_DAY,48));
            mallMemberHouse.setHouseName(mallGoods.getHouseName());
            mallMemberHouse.setHouseAddress(mallGoods.getHouseAddress());
            mallMemberHouse.setHousePic(mallGoods.getThumb());
            mallMemberHouseMapper.insert(mallMemberHouse);
            return;
        }else{
            return;
        }
    }
    public static void main(String[] args) {
        RestTemplate restTemplate = new RestTemplate();
        String accessToken = "70__DR_q_qmjcMfPQEBwmjdfJFWnpml55Bq6JK2vt9MMdcRLsHaYM1BQGFWzLUISjcFC8HAYTKOaPJH93KHNvo4KIeMZkxFF2qP66nAdygUQ6c";
        String openId = "oXL7Y6LW5KGQTbmmP5W3JljjApSo";
        String requrl = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";
        // 创建一个StringHttpMessageConverter,并设置字符集为UTF-8
        StringHttpMessageConverter stringConverter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        stringConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.TEXT_PLAIN));
        // 将StringHttpMessageConverter添加到RestTemplate的消息转换器列表中
        restTemplate.getMessageConverters().add(0, stringConverter);
        // 创建HttpHeaders对象,设置Accept头部的值为"text/plain;charset=UTF-8"
        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Collections.singletonList(MediaType.TEXT_PLAIN));
        headers.set(HttpHeaders.ACCEPT_CHARSET, "UTF-8");
        DateTime offset = DateUtil.date().offset(DateField.HOUR_OF_DAY, 48);
        System.out.println(offset);
        String responseStr = restTemplate.getForObject(requrl, String.class);
        net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(responseStr);
        log.info("微信获取用户信息={}", json);
        String nickname = json.getString("nickname");
        String headImgUrl = json.getString("headimgurl");
        System.out.println(nickname);
        System.out.println(headImgUrl);
//        RestTemplate restTemplate = new RestTemplate();
//        String accessToken = "70__DR_q_qmjcMfPQEBwmjdfJFWnpml55Bq6JK2vt9MMdcRLsHaYM1BQGFWzLUISjcFC8HAYTKOaPJH93KHNvo4KIeMZkxFF2qP66nAdygUQ6c";
//        String openId = "oXL7Y6LW5KGQTbmmP5W3JljjApSo";
//        String requrl = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";
//        // 创建一个StringHttpMessageConverter,并设置字符集为UTF-8
//        StringHttpMessageConverter stringConverter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
//        stringConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.TEXT_PLAIN));
//        // 将StringHttpMessageConverter添加到RestTemplate的消息转换器列表中
//        restTemplate.getMessageConverters().add(0, stringConverter);
//        // 创建HttpHeaders对象,设置Accept头部的值为"text/plain;charset=UTF-8"
//        HttpHeaders headers = new HttpHeaders();
//        headers.setAccept(Collections.singletonList(MediaType.TEXT_PLAIN));
//        headers.set(HttpHeaders.ACCEPT_CHARSET, "UTF-8");
//
//        String responseStr = restTemplate.getForObject(requrl, String.class);
//        net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(responseStr);
//        log.info("微信获取用户信息={}", json);
//        String nickname = json.getString("nickname");
//        String headImgUrl = json.getString("headimgurl");
//        System.out.println(nickname);
//        System.out.println(headImgUrl);
    }
}