From 589d37fd7592c0eddfabb8629047ab3a09f26614 Mon Sep 17 00:00:00 2001 From: Administrator <513693417@qq.com> Date: Fri, 18 Sep 2020 23:51:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B4=E6=8E=A8=E5=92=8C=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E7=9B=B4=E6=8E=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/ajax/AjaxLoginController.java | 11 ------- .../controller/BizMemberController.java | 30 ++++++++----------- .../com/ruoyi/business/domain/BizAccount.java | 3 ++ .../com/ruoyi/business/domain/BizOrder.java | 14 ++++++++- .../business/mapper/BizMemberMapper.java | 9 ++++++ .../service/impl/BizOrderServiceImpl.java | 30 +++++++++++++++++-- .../com/ruoyi/business/utils/Encrypt.java | 5 +++- .../mapper/business/BizMemberMapper.xml | 4 +++ .../mapper/business/BizOrderMapper.xml | 3 ++ 9 files changed, 77 insertions(+), 32 deletions(-) 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},