[Java二级分销佣金实现demo]

news/2023/11/28 11:17:10

目录

✨前言:

✨Java简单分销demo

🐱‍🚀创建一个Product类,包含商品的名称、价格和佣金比例。

🐱‍🚀创建一个User类,包含用户的姓名和佣金总额。

🐱‍🚀创建一个SalesSystem类,包含商品列表和用户列表,以及实现购买和分销的方法。

🐱‍🚀在主函数中创建商品和用户,并进行购买和分销操作。

🐱‍🚀✨运行结果:

🐱‍🚀✨代码描述:

✨简单表结构设计:

🐱‍🏍商品表(product)

🐱‍🏍用户表(user)

🐱‍🏍分销记录表(distribution)


✨前言:

    🐱‍🚀之前做过分销场景,主要是A用户分享商品链接,然后B用户使用这个链接去购买以后,A用户可以获取佣金,当时记得是 通gu过A用户id ,还有分享商品id 房子url里面,然后B用户购买以后  会记录他们购买的关联信息,然后去做一些业务逻辑处理开心✨

✨Java简单分销demo

  1. 🐱‍🚀创建一个Product类,包含商品的名称、价格和佣金比例。

 public class Product {private String name;private double price;private double commissionRate;public Product(String name, double price, double commissionRate) {this.name = name;this.price = price;this.commissionRate = commissionRate;}public String getName() {return name;}public double getPrice() {return price;}public double getCommissionRate() {return commissionRate;}
}
  1. 🐱‍🚀创建一个User类,包含用户的姓名和佣金总额。

public class User {private String name;private double commissionTotal;public User(String name) {this.name = name;this.commissionTotal = 0;}public String getName() {return name;}public double getCommissionTotal() {return commissionTotal;}public void addCommission(double commission) {this.commissionTotal += commission;}
}
  1. 🐱‍🚀创建一个SalesSystem类,包含商品列表和用户列表,以及实现购买和分销的方法。

import java.util.ArrayList;public class SalesSystem {private ArrayList<Product> productList;private ArrayList<User> userList;public SalesSystem() {this.productList = new ArrayList<>();this.userList = new ArrayList<>();}public void addProduct(Product product) {this.productList.add(product);}public void addUser(User user) {this.userList.add(user);}public void purchase(User buyer, Product product) {double commission = product.getPrice() * product.getCommissionRate();for (User seller : this.userList) {if (seller != buyer && seller.getName().equals(product.getName() + "的分享者")) {seller.addCommission(commission);}}}
}
  1. 🐱‍🚀在主函数中创建商品和用户,并进行购买和分销操作。

public static void main(String[] args) {SalesSystem salesSystem = new SalesSystem();// 创建商品Product product1 = new Product("商品1", 100, 0.1);Product product2 = new Product("商品2", 200, 0.2);salesSystem.addProduct(product1);salesSystem.addProduct(product2);// 创建用户User userA = new User("用户A");User userB = new User("用户B");User userC = new User("商品1的分享者");User userD = new User("商品2的分享者");salesSystem.addUser(userA);salesSystem.addUser(userB);salesSystem.addUser(userC);salesSystem.addUser(userD);// 用户B购买商品1salesSystem.purchase(userB, product1);// 商品1的分享者获得佣金System.out.println(userC.getName() + "的佣金总额为:" + userC.getCommissionTotal());// 用户B购买商品2salesSystem.purchase(userB, product2);// 商品2的分享者获得佣金System.out.println(userD.getName() + "的佣金总额为:" + userD.getCommissionTotal());
}

🐱‍🚀✨运行结果:

商品1的分享者的佣金总额为:10.0

商品2的分享者的佣金总额为:40.0

 

 

🐱‍🚀✨代码描述:

  • 用户B购买商品1和商品2时,只有对应的分享者获得了相应的佣金。

这里主要逻辑就是 只要卖seller 满足他是分享者条件的时候 才会让他获取佣金,   在平常业务逻辑中 ,会有很多复杂业务, 分销者等级不同 分销金不同,  在设计表结构的时候,  简单设置的话就是直接在商品上面设计分销金, 商品在发布的时候就提前给他弄好佣金,  另一种就是分销规则, 根据分销者的等级 对应不同的分销佣金,这个就需要表之间的关联了, 或者使用标识 在业务层实现

✨简单表结构设计:

根据上面的代码,我们可以设计以下的MySQL表结构:

  1. 🐱‍🏍商品表(product)

字段名类型描述
idint商品ID
namevarchar(50)商品名称
pricedouble商品价格
commission_ratedouble分销佣金比例
share_user_idint分享者用户ID
  1. 🐱‍🏍用户表(user)

字段名类型描述
idint用户ID
namevarchar(50)用户名称
balancedouble用户余额
  1. 🐱‍🏍分销记录表(distribution)

字段名类型描述
idint分销记录ID
product_idint商品ID
buyer_idint购买者用户ID
seller_idint分享者用户ID
commissiondouble分销佣金

🐱‍🚀✨

在这个表结构中,商品表(product)记录了商品的基本信息,包括商品ID、名称、价格、分销佣金比例和分享者用户ID。用户表(user)记录了用户的基本信息,包括用户ID、名称和余额。分销记录表(distribution)记录了每一次分销的详细信息,包括分销记录ID、商品ID、购买者用户ID、分享者用户ID和分销佣金。


http://www.ppmy.cn/news/399343.html

相关文章

Macbook Pro双系统装Window10后设置触摸屏滑动方向

最近想给自己的Macbook Pro装Windows10操作系统&#xff0c;毕竟Windows才是真正的生产力工具&#xff0c;装了以后不需要两台笔记本了&#xff0c;直接在一台笔记本上有MacOS和Windows 装好以后发现触摸屏不能轻点触控还有触摸屏的滑动方向是反的 第一个问题&#xff0c;不能轻…

面试题:C语言中 printf(“%d“,sizeof(‘c‘)); 结果为什么是4?

在C语言中&#xff0c;sizeof运算符用于获取数据类型或变量的字节大小。当您使用sizeof(c)时&#xff0c;它会返回字符常量c的字节大小。 在C语言中&#xff0c;字符常量的类型是int&#xff0c;而不是char。 尽管字符常量表示一个字符&#xff0c;但它实际上是以整数形式存储…

批量生成,本地推理,人工智能声音克隆框架PaddleSpeech本地批量克隆实践(Python3.10)

云端炼丹固然是极好的&#xff0c;但不能否认的是&#xff0c;成本要比本地高得多&#xff0c;同时考虑到深度学习的训练相对于推理来说成本也更高&#xff0c;这主要是因为它需要大量的数据、计算资源和时间等资源&#xff0c;并且对超参数的调整也要求较高&#xff0c;更适合…

git使用方法小结

1.如何git push直接推到远程分支&#xff1f; 先建立本地分支和远程分支的关联 git branch --set-upstream-toorigin/remote_branch your_branch 然后git push 否则就需要git push origin your_branch 2.查看本地版本和远程版本的对应关系 git branch -vv 3.查看本地和远程…

Java企业级开发学习笔记(1.8)基于Java配置方式使用Spring MVC

一、基于Java配置方式使用Spring MVC 1.1 创建Maven项目 Maven项目 - SpringMvcDemo02 1.2 添加相关依赖 在pom.xml文件里添加相关依赖 <?xml version"1.0" encoding"UTF-8"?> 4.0.0 <groupId>org.example</groupId> <artifactId…

实验篇(7.2) 11. 站对站安全隧道 - 双方互相发起连接(FortiGate-IPsec) ❀ 远程访问

【简介】前面我们实验的是FortiClient客户端与防火墙进行VPN连接&#xff0c;现在我们要做的实验是防火墙与防火墙之间进行VPN连接。现在我们来看看两台防火墙之间要怎样创建VPN连接。 实验要求与环境 OldMei集团深圳总部部署了域服务器和ERP服务器&#xff0c;用来对集团总部进…

享元模式(十四)

每天都是全新的一天&#xff0c;感谢今日努力的自己。 上一章简单介绍了外观模式(十三), 如果没有看过, 请观看上一章 一. 享元模式 引用 菜鸟教程里面的外观模式介绍: https://www.runoob.com/design-pattern/flyweight-pattern.html 享元模式&#xff08;Flyweight Patter…

Qt5.15.10+msvc2019_x86+qwebengine(含mp4)源码编译

系统要求: win10 64bit 英文版(或者把“区域”->“管理”->“非Unicode程序中所使用的当前语言”->改为"英语(美国)") 内存16g够用,cpu性能越高越好,硬盘在安装环境、下载源码后,至少还有100g可用空间 下载源码: https://download.qt.io/archiv…

Phone案例Java

定义一个手机类(Phone)&#xff0c;要求如下&#xff1a; 1.提供成员变量&#xff08;name、private、color&#xff09;&#xff0c;并用private修饰 2.为每一个被private修饰的成员变量提供getXxx()方法&#xff0c;便于外界获取成员变量的值 3.为每一个被private修饰的成…

adb shell cmd phone(系统服务:phone)

1 需求 打开数据开关 adb shell cmd phone data enable关闭数据开关 adb shell cmd phone data disable 2 语法 C:\>adb shell cmd phone Telephony Commands:helpPrint this help text.imsIMS Commands.emergency-number-test-modeEmergency Number Test Mode Commands.e…

phone启动流程

phone进程是persistent进程&#xff0c;通过在manifest中配置android:persistent"true"属性。因此phone的启动流程是众多persistent进程启动的一个例子。 从代码SystemServer.run()–startOtherServices–ActivityManagerService.systemReady()–startPersistentApp…

Windows Phone 7

离Windows Phone 7正式发布已过去几个月了&#xff0c;但国内关于Windows Phone 7的中文书籍资料太少了&#xff0c;大多数是英文资料&#xff0c;一本真正的中文开发教程书都没有&#xff0c; 要啃英文资料对大部分的开发者来说太难了&#xff0c;而且很多的中文的文章教程又太…

phone基本概念

1、OTA OTA&#xff08;Over&#xff0d;the&#xff0d;Air Technology&#xff09; 空中下载 技术。是通过移动通信&#xff08; GSM 或 CDMA &#xff09;的空中接口对 SIM卡 数据及应用进行远程管理的技术。空中接口可以采用WAP、GPRS、CDMA1X及短消息技术。OTA技术的应用&…

windows phone

http://www.cnblogs.com/wangkewei/archive/2010/03/17/1687956.html http://mobileworld.appamundi.com/blogs/petevickers/archive/2010/08/15/windows-phone-7-vs2010-and-vmware.aspx (wp7虚拟机上运行) http://mobiledev.cnblogs.com&#xff08;WP7及其WM博客经典&#x…

PhoneGap

一、安装 在安装PhoneGap开发环境之前&#xff0c;需要先安装以下框架&#xff1a; 1. Java SDK 2. Eclipse 3. Android SDK 4. ADT Plugin 5. PhoneGap 说明&#xff1a; 1.Java SDK直接下载安装即可&#xff0c;没什么可说的&#xff0c;安装不了就是人品问题了; 2.Eclipse 也…

phone

1.1 要求能够向指定的号码发起呼叫&#xff1b; 1.2 能够监视呼入事件&#xff0c;并得到呼入的号码&#xff1b; 1.3 尝试对呼入事件进行处理&#xff08;显示给用户或者直接拒绝&#xff09;&#xff1b; 1.4 通话记录的获取以及删除&#xff1b; 1.5 上述技术点都涉及到…

english-phoneme

1. 声音概述2. 音素phoneme与音标2.1 音素与音标2.2 音素与字母2.3 字母发音-字母自然发音对照表2.4 音标表2.5 元音字母-辅音字母表2.6 单元音发音口形趋势表3. 音节的概念3.1 音节的分类3.2 音节的划分3.3 音节的拼读方法3.4 重读音节4. 英语的重读5. 小结:发音及拼写有规则也…

Telephone Lines

Description Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncooperative, so he needs to pay for some of the cables required to connect his farm to the phone system. There are N (1 ≤ N ≤ 1,000) forlorn tel…

Mobile phones

二维树状数组 注意求区间和 要分成多个部分来加减 还有就是 注意0的情况 #include <cstdio> #include <cstring> #include <iostream> using namespace std; int const MAXN 1100; int c[MAXN 10][MAXN 10],a[MAXN 10][MAXN 10]; int n,m; int Low…

phone1:phone进程

第1章 Phone 1.1 Phone进程 phone进程指的是“com.android.phone”&#xff0c;代码位于packages/services/Telephony。Phone进程是开机启动进程的&#xff0c;它的AndroidManifest.xml文件中的以下代码决定了其将在DBM下就会启动了&#xff0c;且异常退出后会自动重启。 图1…
最新文章