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

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.kler.cn/a/419758.html

相关文章:

  • 微软表示不会使用你的 Word、Excel 数据进行 AI 训练
  • 解决 Flutter Dio合并请求多个接口,如果一个接口500,那么导致其他请求不在执行
  • 洛谷二刷P4715 【深基16.例1】淘汰赛(c嘎嘎)
  • 【人工智能-基础】SVM中的核函数到底是什么
  • webpack5开发环境、生产环境配置 (三)
  • matlab 中的 bug
  • python学习笔记12 python中的函数(上)
  • 深度学习7 梯度下降优化、过拟合、手机价格预测
  • 机器学习——生成对抗网络(GANs):原理、进展与应用前景分析
  • The selected directory is not a valid home for Go SDK
  • PostgreSQL17.x创建数据库及数据库信息查看命令
  • 算法刷题Day7: 二叉树前中后遍历
  • 通义灵码 x 函数计算:构建高效开发流程,加速项目交付
  • 「Mac畅玩鸿蒙与硬件40」UI互动应用篇17 - 照片墙布局
  • 后端 Java发送邮件 JavaMail 模版 20241128测试可用
  • 渗透测试--Linux上获取凭证
  • vue3+echarts柱状图点击加载数据及选中效果
  • C++入门基础知识156—【关于C++数据类型】
  • MATLAB数学建模之画图汇总
  • [计算机网络] HTTP/HTTPS
  • 怎么理解BeamSearch?
  • 畅游Diffusion数字人(9):Magic-Me: Identity-Specific Video Customized Diffusion
  • sheng的学习笔记-【中】【吴恩达课后测验】Course 5 -序列模型 - 第二周测验 - 自然语言处理与词嵌入
  • 【计网】自定义序列化反序列化(二) —— 实现网络版计算器【上】
  • 匹配 变量的类型
  • 前端API自动化构建工具:讲述 FlyHttp 设计思想