当前位置: 首页 > news >正文

springboot vue 会员收银系统 (12)购物车关联服务人员 订单计算提成 开源

前言

完整版演示 http://120.26.95.195/
开发版演示 http://120.26.95.195:8889/

在之前的开发进程中,我们完成订单的挂单和取单功能,今天我们完成购物车关联服务人员,用户计算门店服务人员的提成。

1.商品关联服务人员
服务人员选择
服务人员可以选择 一个 或者 多个
当选择多个时候 会按照 实际支付金额进行平均分 例:某个商品 X 会员折后价 X 数量 为总业绩 单个服务人员业绩 除以 服务人员个数
商品的提成 常见的有 按照固定金额 或者 按一定的比例
商品提成修改
结算时根据设置的提成方式进行计算
关键代码

//该条目有服务人员List<ServerVo> serverList = productDetail.getServerList();if(CollectionUtil.isNotEmpty(serverList)) {//如果是固定金额 固定金额除以人数 获取固定金额//如果是比例 计算出比例后提成 获取固定金额//业绩和提成均平均分//总提成BigDecimal totalPushMoney = BigDecimal.ZERO;//总业绩 为订单实付金额BigDecimal totalGradeMoney = sellDetail.getTotalRealAmount();//固定金额的话if (product.getPushType().equals(PUSH_FIXED)) {totalPushMoney = BigDecimalUtil.mul(product.getPushAmount(),new BigDecimal(sellDetail.getCount()));}//按比例if (product.getPushType().equals(PUSH_SCALE)) {//提成额 先转换为百分数BigDecimal pushPercent = BigDecimalUtil.div(product.getPushPercent(), new BigDecimal("100"));//折后价*百分数totalPushMoney = BigDecimalUtil.mul(totalGradeMoney, pushPercent);}//平均分BigDecimal pushMoney = BigDecimalUtil.div(totalPushMoney, new BigDecimal(serverList.size()));BigDecimal gradeMoney = BigDecimalUtil.div(totalGradeMoney, new BigDecimal(serverList.size()));//设置服务人员serverList.stream().forEach(server -> {SellDetailServer sellDetailServer = new SellDetailServer();sellDetailServer.setSellId(sell.getSellId());sellDetailServer.setSellDetailId(sellDetail.getSellDetailId());sellDetailServer.setServerId(server.getServerId());sellDetailServer.setServerName(server.getServerName());sellDetailServer.setServerPushMoney(pushMoney);sellDetailServer.setServerGrade(gradeMoney);sellDetailServerService.save(sellDetailServer);});

2.卡项的提成
卡项的提成跟 商品类似 仅计算 比例分成即可
续卡时查询当时开卡的 提成比例 计入即可
订单查询时将细单对应的服务人员查出
商品订单
开卡订单

服务人员业绩提成完成,后续我们完成订单的多维度统计功能。

代码地址
https://gitee.com/ddeatrr/memberShop


http://www.mrgr.cn/news/79024.html

相关文章:

  • 常见排序算法总结 (三) - 归并排序与归并分治
  • 工程设计行业内外网文件交换解决方案:FileLink助力高效、安全的跨网协作
  • Maven 打包出现问题解决方案
  • 动手学深度学习10.5. 多头注意力-笔记练习(PyTorch)
  • 【计算机网络】实验2:总线型以太网的特性
  • Python世界:复制粘贴?没那么简单!浅谈深拷贝与浅拷贝
  • 2.2 线性表的顺序表示
  • ultralytics-YOLOv11的目标检测解析
  • WPF+LibVLC开发播放器-LibVLC在C#中的使用
  • Python 入门教程(2)搭建环境 | 2.4、VSCode配置Node.js运行环境
  • 如何手搓一个智能激光逗猫棒
  • 当大的div中有六个小的div,上面三个下面三个,当外层div高变大的时候我希望里面的小的div的高也变大
  • C 语言 “神秘魔杖”—— 指针初相识,解锁编程魔法大门(一)
  • [docker中首次配置git环境与时间同步问题]
  • Spring Cloud Alibaba(六)
  • Java NIO channel
  • 【教学类-43-25】20241203 数独3宫格的所有可能-使用模版替换(12套样式,空1格-空8格,每套510张,共6120小图)
  • Bert+CRF的NER实战
  • OpenSSL 自建CA 以及颁发证书(网站部署https双向认证)
  • 细说STM32单片机用定时器触发DAC输出三角波并通过串口观察波形的方法
  • RealESRGAN技术详解(附代码)
  • DIY搭建网站(学术个人介绍主页)
  • HTML5+JavaScript实现连连看游戏
  • FreeRTOS之ARM CR5栈结构操作示意图
  • MATLAB提供的窗函数
  • Alibaba Druid(简称Druid)