diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java b/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java
index f3a1211c0..fac038871 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java
@@ -3,23 +3,12 @@ package com.ruoyi.business.ajax;
import com.ruoyi.business.service.IBizMemberService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.utils.security.Md5Utils;
import org.apache.ibatis.annotations.Param;
-import org.apache.shiro.crypto.hash.Md5Hash;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import sun.security.provider.MD5;
import javax.annotation.Resource;
-import javax.crypto.Cipher;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.spec.DESKeySpec;
-import javax.crypto.spec.IvParameterSpec;
-import java.security.NoSuchAlgorithmException;
-import java.util.Base64;
/**
* 前端用户登录
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java b/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java
index 11e7eafc2..3363aedee 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java
@@ -1,28 +1,24 @@
package com.ruoyi.business.controller;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
+import com.ruoyi.business.domain.BizMember;
+import com.ruoyi.business.service.IBizMemberService;
import com.ruoyi.business.utils.Encrypt;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.business.domain.BizMember;
-import com.ruoyi.business.service.IBizMemberService;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* 会员Controller
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizAccount.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizAccount.java
index bc9bd182a..6159e7c58 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizAccount.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizAccount.java
@@ -23,6 +23,9 @@ public class BizAccount extends BaseEntity
public static final int DOU_SPECIAL = 3;
public static final int DOU_FIELD = 4;
+ //二级直推拥有有效下级用户数量条件
+ public static final int SECOND_AWARD_CHILD_LIMIT = 3;
+
/** 会员账户ID */
private Long id;
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java
index f4cc12f18..fdd83253f 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java
@@ -48,6 +48,9 @@ public class BizOrder extends BaseEntity
@Excel(name = "0-待支付,1-已支付,2-已取消, 3-待收货, 4-已完成")
private Integer orderStatus;
+ /** 是否团队福豆影响 */
+ private Integer isTeam;
+
/** 订单备注 */
@Excel(name = "订单备注")
private String remark;
@@ -148,7 +151,16 @@ public class BizOrder extends BaseEntity
{
return orderStatus;
}
- public void setAddressId(Long addressId)
+
+ public Integer getIsTeam() {
+ return isTeam;
+ }
+
+ public void setIsTeam(Integer isTeam) {
+ this.isTeam = isTeam;
+ }
+
+ public void setAddressId(Long addressId)
{
this.addressId = addressId;
}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java b/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java
index 75661d595..99acd1acc 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java
@@ -76,4 +76,13 @@ public interface BizMemberMapper
* @return 结果
*/
public int deleteBizMemberByIds(String[] ids);
+
+ /**
+ * 取出有效下级数量(有订单)
+ *
+ * @param memberID 上级用户ID
+ * @return 结果
+ */
+ public int getValidChildCount(Long memberID);
+
}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java
index 95ec2319c..49e71406e 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java
@@ -11,6 +11,7 @@ import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.util.ShiroUtils;
+import com.ruoyi.system.utils.DictUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -187,6 +188,7 @@ public class BizOrderServiceImpl implements IBizOrderService
order.setMemberName(member.getMemberName());
order.setOrderAmount(orderTotal);
order.setOrderStatus(BizOrder.STATUS_PAYED); //已支付
+ order.setIsTeam(cashbackAmount.longValue() > 0 ? 1 : 0); //是否团队福豆影响订单
order.setRemark(remark);
order.setAddressDetail(address.getAddress());
order.setAddressId(addressID);
@@ -200,19 +202,43 @@ public class BizOrderServiceImpl implements IBizOrderService
orderDetail.setProductCount(productNum);
orderDetail.setProductAmount(amount);
bizOrderMapper.insertBizOrderDetail(orderDetail);
+
+ String businessCode = String.valueOf(order.getOrderSn());
//减去福豆余额账户
// TODO 类型不对,同步完数据后在修改
- boolean result = bizAccountService.accountChange(memberID, BizAccount.DOU_BALANCE, BizAccountDetail.DOU_DETAIL_TYPE_ORDER, -orderTotal.longValue(), String.valueOf(order.getId()), BizAccountDetail.DOU_DESC_ORDER);
+ boolean result = bizAccountService.accountChange(memberID, BizAccount.DOU_BALANCE, BizAccountDetail.DOU_DETAIL_TYPE_ORDER, -orderTotal.longValue(), businessCode, BizAccountDetail.DOU_DESC_ORDER);
if (!result) {
return AjaxResult.error("扣款失败,请联系管理员");
}
//增加专项账户
if(cashbackAmount.longValue() > 0) {
// TODO 类型不对,同步完数据后在修改
- result = bizAccountService.accountChange(memberID, BizAccount.DOU_SPECIAL, BizAccountDetail.DOU_DETAIL_TYPE_CHARGE, cashbackAmount.longValue(), String.valueOf(order.getId()), BizAccountDetail.DOU_DESC_SPECIAL1);
+ result = bizAccountService.accountChange(memberID, BizAccount.DOU_SPECIAL, BizAccountDetail.DOU_DETAIL_TYPE_CHARGE, cashbackAmount.longValue(), businessCode, BizAccountDetail.DOU_DESC_SPECIAL1);
if (!result) {
return AjaxResult.error("扣款失败,请联系管理员");
}
+
+ //增加直推奖励(团队福豆账户)
+ Long recMemberID = member.getRecommendId();
+ if (recMemberID != null && recMemberID != 0) {
+ //取出直推奖励金额
+ String award1 = DictUtils.getDictLabel("busi_recommend_award", "1");
+ result = bizAccountService.accountChange(memberID, BizAccount.DOU_TEAM, BizAccountDetail.DOU_DETAIL_TYPE_CHARGE, Long.parseLong(award1), businessCode, BizAccountDetail.DOU_DESC_RECOMM);
+ if (!result) {
+ return AjaxResult.error("扣款失败,请联系管理员");
+ }
+ //判断二级直推(需要3个下级)
+ BizMember recommendMember = bizMemberMapper.selectBizMemberSimple(recMemberID);
+ Long topMemberID = recommendMember.getRecommendId();
+ //判断有效下级数不少于三个
+ if (bizMemberMapper.getValidChildCount(topMemberID) >= BizAccount.SECOND_AWARD_CHILD_LIMIT) {
+ String award2 = DictUtils.getDictLabel("busi_recommend_award", "2");
+ result = bizAccountService.accountChange(memberID, BizAccount.DOU_TEAM, BizAccountDetail.DOU_DETAIL_TYPE_CHARGE, Long.parseLong(award2), businessCode, BizAccountDetail.DOU_DESC_SECOND);
+ if (!result) {
+ return AjaxResult.error("扣款失败,请联系管理员");
+ }
+ }
+ }
}
return AjaxResult.success();
}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java b/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java
index 29147d5ff..8dcbbcca2 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java
@@ -2,6 +2,7 @@ package com.ruoyi.business.utils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.security.Md5Utils;
+import com.ruoyi.system.utils.DictUtils;
import javax.crypto.*;
import javax.crypto.spec.DESKeySpec;
@@ -72,7 +73,9 @@ public class Encrypt {
public static void main(String args[]) {
//System.out.println(encrypt("x123456"));
- System.out.println(decrypt("248E135E28C103B4"));
+ //System.out.println(decrypt("248E135E28C103B4"));
+
+ //System.out.println(DictUtils.getDictLabel("busi_recommend_award", "1"));
}
private static final String HEX_CHAR = "0123456789ABCDEF";
diff --git a/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml b/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml
index 0100a9a52..942631052 100644
--- a/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml
+++ b/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml
@@ -122,4 +122,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
\ No newline at end of file
diff --git a/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml b/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml
index ba67f5e36..da90c36af 100644
--- a/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml
+++ b/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml
@@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
@@ -69,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
member_name,
order_amount,
order_status,
+ is_team,
address_detail,
remark,
address_id,
@@ -84,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{memberName},
#{orderAmount},
#{orderStatus},
+ #{isTeam},
#{addressDetail},
#{remark},
#{addressId},