From 15a6f5b0a38f0cd19c777c75c3fc4ff498fbc8dc Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 18 Aug 2023 10:17:58 +0800
Subject: [PATCH] 赠送积分更新状态
---
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 218 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 189 insertions(+), 29 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index 0f02d33..f098a85 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -1,19 +1,18 @@
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.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;
import cc.mrbird.febs.common.utils.ShareCodeUtil;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
-import cc.mrbird.febs.mall.service.IAgentService;
-import cc.mrbird.febs.mall.service.IApiMallMemberService;
-import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
-import cc.mrbird.febs.mall.service.IMallAchieveService;
+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;
@@ -50,6 +49,15 @@
private final MallMemberMapper memberMapper;
private final MallMemberWalletMapper mallMemberWalletMapper;
private final RestTemplate restTemplate;
+ private final MallOrderInfoMapper mallOrderInfoMapper;
+ private final MallOrderItemMapper mallOrderItemMapper;
+ private final MallGoodsMapper mallGoodsMapper;
+ private final IApiMallMemberWalletService memberWalletService;
+ private final MallRollPerkMapper mallRollPerkMapper;
+ private final IMallMoneyFlowService mallMoneyFlowService;
+ private final MallMemberClassMapper mallMemberClassMapper;
+ private final MallMemberHouseMapper mallMemberHouseMapper;
+ private final MallMoneyFlowMapper mallMoneyFlowMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -234,7 +242,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);
@@ -293,14 +301,15 @@
@Override
public void updateMemberInfo(String str) {
- String[] split = StrUtil.split(str, "-");
+ String[] split = StrUtil.split(str, "|");
String accessToken = split[0];
String openId = split[1];
MallMember mallMember = memberMapper.selectMemberByOpenId(openId);
- if (ObjectUtil.isNotEmpty(mallMember)) {
+ if (ObjectUtil.isEmpty(mallMember)) {
return;
}
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));
@@ -324,30 +333,181 @@
mallMember.setName(nickname);
mallMember.setAvatar(headImgUrl);
memberMapper.updateById(mallMember);
+ return;
+ }
+
+
+ @Override
+ public void orderGetMsg(String str) {
+ /**
+ * String str : orderId@amount
+ */
+ String[] split = StrUtil.split(str, "@");
+ String orderId = split[0];
+ String amount = split[1];
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
+ if(ObjectUtil.isEmpty(mallOrderInfo)){
+ return;
+ }
+ Long memberId = mallOrderInfo.getMemberId();
+ MallMember mallMember = memberMapper.selectById(memberId);
+
+
+ List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(mallOrderInfo.getId());
+ if(CollUtil.isEmpty(mallOrderItemList)){
+ return;
+ }
+
+ /**
+ * 支付后同意验证
+ * 1:是否送券
+ * 2:是否送积分
+ * 3:是否返利
+ */
+ //是否返利
+ BigDecimal amountBigDecimal = new BigDecimal(StrUtil.isEmpty(amount) ? "0" : amount);
+ if(BigDecimal.ZERO.compareTo(amountBigDecimal) < 0){
+ if(ObjectUtil.isNotEmpty(mallMember.getReferrerId())){
+ String referrerId = mallMember.getReferrerId();
+ MallMember mallMemberParent = memberMapper.selectInfoByInviteId(referrerId);
+ Long id = mallMemberParent.getId();
+
+ MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(mallOrderInfo.getOrderNo(), memberId, id);
+ if(ObjectUtil.isEmpty(mallMoneyFlow)){
+ DataDictionaryCustom returnPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.MEMBER_RETURN_PERCENT.getType(),
+ DataDictionaryEnum.MEMBER_RETURN_PERCENT.getCode()
+ );
+ String returnPercentStr = StrUtil.isNotEmpty(returnPercentDic.getValue()) ? "1" : returnPercentDic.getValue();
+ BigDecimal returnPercent = new BigDecimal(returnPercentStr).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN);
+ BigDecimal amountActual = amountBigDecimal.multiply(returnPercent).setScale(2, BigDecimal.ROUND_DOWN);
+
+ mallMoneyFlowService.addMoneyFlow(
+ id,
+ amountActual,
+ MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(),
+ mallOrderInfo.getOrderNo(),
+ "直推奖",
+ "直推奖",
+ mallMember.getId(),
+ 1,
+ FlowTypeEnum.BALANCE.getValue(),
+ 2);
+ }
+ }
+ }
+ for(MallOrderItem mallOrderItem : mallOrderItemList){
+ Long goodsId = mallOrderItem.getGoodsId();
+ MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
+ 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(mallGoods.getLevelThreePrice().longValue());
+ mallRollPerkMapper.insert(mallRollPerk);
+ }
+ //赠送积分
+ BigDecimal levelOnePrice = mallGoods.getLevelOnePrice();
+ if(BigDecimal.ZERO.compareTo(levelOnePrice) <= 0){
+ memberWalletService.add(levelOnePrice, memberId, "score");
+
+ mallMoneyFlowService.addMoneyFlow(memberId, levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.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_6yOz-tXaDx6qMswGgmfl6j3LfgG-ur3JE-top_QvX5Oea9ryFxzEBwgVoW53IpMrzcS7mpPJf7tI3czT_kA2l5Y_Xu1WS7d7xDNbMs97ARk";
- 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);
}
}
--
Gitblit v1.9.1