租车吸引客户业务:关于多重奖励的解决方案

简介: 租车吸引客户业务:关于多重奖励的解决方案

最近项目有遇到一个需求:

1用户表tmk_user_info(图1)

refferNo是推荐人手机号表里的phoneNo(推荐人也是tmk_user_info里的人)

recordid是主键

2用户账号表tmk_user_account(图2 和tmk_user_info里的数据一 一对应)

accountuser是tmk_user_info表里的recordid

totalamount是该用户的账号余额

同一个用户可以有多个推荐人,奖励规则是:一级推荐人奖励a1元,二级推荐人奖励a2元,三级推荐人奖励3元… 以此类推,最多奖励五级,在奖励过程中如果发现两个相互推荐的人则结束后续的奖励,现在给定一个用户recordid要求根据tmk_user_info的推荐人关系更新所有的获得奖励的用户totalamount字段

问题分析和思路:

如上图假设recordid初始为1他的查表得到他的推荐人为2,3,4,5

然后继续查表得知2的推荐人为1,7,8,9其中1在前面的路径已经出现过了所以不计算奖励也不继续后面的查询,由于奖励最多5级所以最多查五次

伪代码:

Integer[] levelarr = {a1,a2,a3,a4,a5};  //奖励金额数组
   List<String> refferIds = new ArrayList<>();
   List<String> refferIds2 = new ArrayList<>();
   List<String> refferIds3 = new ArrayList<>();
  refferIds2.add(1);  //记录初始recordid 的值1
  for(int i=0;i<5;i++){
      refferIds.clear();                 
      refferIds.addAll(refferIds2);
      refferIds2.clear();
      for (String refferId : refferIds) {
       //从tmk_user_info读取推荐关系
       sql= " select tui2.recordid refferuserid from "+
            " tmk_user_info tui1 LEFT JOIN tmk_user_info "+
            " tui2 on tui1.refferNo =tui2.phoneNo and"+
            " tui2.deletestatus=0 where tui1.recordid "+
            " in(" + refferId + ") and tui1.deletestatus=0";
       refferIds3 = DbUtil.get().executeQueryFirstColString(sql);
         for (String refferId3 : refferIds3) {
         //有可能推荐人还未注册
         if(refferId3==null){
           continue;
         }
                           //验证是否存在相互推荐的情况
               count=DbUtil.get().executeQueryOneInt(
                              "select count(1) from tmk_user_info where 
                              " refferNo="+refferId+"
                              " and  recordid="+refferId3);
         if( count!=0){
           continue;
         }
         refferIds2.add(refferId3);
         //更新 tmk_user_account的totalamount字段
         UserAccountModel userAccountModel = new UserAccountModel();
         userAccountModel.setAccountuser(Integer.valueOf(refferId3));
               userAccountModel =  (UserAccountModel)getDao().selectObject("TMK_USER_ACCOUNT.ibatorgenerated_selectByUserid",userAccountModel);                
               userAccountModel.setReward(userAccountModel.getReward() + levelarr[i]); userAccountModel.setTotalamount(userAccountModel.getTotalamount() +  levelarr[i]);
                   getDao().updateSql("TMK_USER_ACCOUNT.ibatorgenerated_updateByPrimaryKeySelective",userAccountModel);
          }
      }             
  }


相关文章
|
1月前
|
存储 JavaScript 前端开发
共享购融合推三返一:推动裂变增长,增加用户黏性
本文概述了将“共享购”与“推三返一”模式转化为技术实现的简化框架,涵盖后端开发(如技术栈选择、核心功能实现)、前端开发(如用户界面、状态管理)、数据库设计、安全性考虑及测试部署等方面,旨在为开发者提供指导。
|
3月前
|
搜索推荐 数据可视化 数据挖掘
会展中心定位导航:精准展位指引,提升用户参馆体验,增加企业成交机会!
在数字化时代,会展中心借助物联网、大数据与AI技术,推出了智能定位导航系统,革新参会体验。展前通过线上展位预约和可视化招商地图,简化招商流程,提高展位分配效率。展会期间,利用精准定位技术,实现一键导航,同时提供个性化展位推荐,增强参观效率与满意度。系统还支持位置分享、车位检索等功能,并通过数据分析为决策提供支持,全面提升会展品牌形象与竞争力。
77 0
会展中心定位导航:精准展位指引,提升用户参馆体验,增加企业成交机会!
|
4月前
|
人工智能 BI
客户在哪儿AI助大客户销售最高成功概率的见到目标客户决策层
文章摘要:大客户经理触及决策层可使成交率翻倍,但初次成功接触是关键。通过AI技术,可挖掘目标客户决策者的真实关系网,匹配公司人脉,找到合适的外部引荐人;分析历史活动,预测未来参与,提高非办公地偶遇概率;同时,识别并接触目标企业内部员工,促其主动引荐决策层,最大化首次会面成功率。
|
4月前
|
数据挖掘
美容院代理分销APP开发:拓展客户群体,增加收益利润
在当今数字化时代,手机APP已经成为人们生活中不可或缺的一部分。对于美容院来说,开发一款代理分销APP具有极高的价值。此APP不仅可以提升业务效率,还可以扩大客户群体,增加收益。
|
4月前
|
人工智能 数据挖掘 数据库
客户在哪儿AI——做真正管用的大客户获客方案
我们的目标是打造高效的ToB大客户获客方案。客户在哪儿AI生成企业全历史行为数据并提供数据分析服务,帮助企业从上帝视角洞察营销。通过真实案例展示,AI能显著提升活动营销效果,例如仅通过10场活动即可触及贡献44.9%营收的客户,30场则可达73.3%,极大提高效率。此外,在决策层和销售工作中,AI发现了某一关键客户与其69.3%营收来源有深层联系,证实了聚焦此客户的战略价值。我们虽不能公开全部细节,但愿与有兴趣者分享真实分析流程。由于服务刚启动,目前尚未有足够反馈,未来将及时分享成果。
|
机器学习/深度学习 搜索推荐 算法
流失客户预测及营销方案(源码)
流失客户预测及营销方案(源码)
新能力 | 玩转“轻会员”,价值再跃升!
支付宝小程序讲堂第八期《会员营销新能力-轻会员》,本周讲堂邀请了商户平台运营部的运营专家雁来同学,教您如何玩转“轻会员”。
1605 12
新能力 | 玩转“轻会员”,价值再跃升!
|
机器学习/深度学习 数据采集 数据可视化
Bertelsmann Arvato 邮购公司客户细分和预测
1. 介绍 1.1 项目概述 在商业直销活动中,使用标签化的用户模型对进行营销活动进行优化是实现精准营销的一个重要工具。本项目要求根据一家德国邮购公司已有客户的人口学特征数据,使用非监督学习技术来分析公司现有顾客的主要特征。
1079 1
Bertelsmann Arvato 邮购公司客户细分和预测
[转]严防变相抬升小微企业综合融资成本,北京银保监局明确违规表现形式
20日,记者从北京银保监局获悉,昨日该局印发《北京银保监局关于规范小微企业贷款服务收费的通知》(下称《通知》),针对当前部分银行在发放小微企业贷款时附加不合理条件、变相抬升小微企业综合融资成本等现象提出监管要求。
《玩法变了》活动评估(财务、营销、传播角度)
项目 活动A 活动B 活动C 时长 10天 12天 15天 硬广投放 3.56 4.33 2.24 直通车 .
934 0
下一篇
无影云桌面