挑战您的思路,高分求一段asp代码,高手请进来!!

yihunnanzi 2005-12-31 03:26:19

数据库结构:
username(用户) jsren(介绍人) jibie(级别)......

其中jibie(级别)有五种级别,从高到低分别是:E级会员、D级推广员、C级培训员、B级代理员、A级代理商

要求:
传统的直销模式,求《辅导或育成奖》的算法和思路。求这段asp代码!!!

辅导或育成奖介绍:只有C级培训员和B级代理员能拿到的奖励,是当你的下线和你同一级别的时候,你所拿的奖励。。当你是C级培训员的时候,你的下线也晋升为C级培训员的时候,可以拿到4%的辅导或育成奖98元;当你是B级代理员的时候,你的下线和他的下线都晋升为B级代理员的时候(算你三线 B ),可以拿到3% 73.5元和2% 49元的辅导或育成奖(当你只有一线B或超过三线B的时候,这种奖项就拿不到了)。

声明:
本人反对直销,我考虑的目的只是这个问题具有挑战性,请高手不要拿板砖。。。

挑战您的思路,高分求一段asp代码,高手请进来!!



...全文
208 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yihunnanzi 2006-01-06
  • 打赏
  • 举报
回复
感谢楼上答复,是不是应该往下找呢?怎么可能一直往下找呢???
taito 2006-01-02
  • 打赏
  • 举报
回复
这就是递归的思想,一直往上找,直到他的等级<=你的等级,当等于上级的的等级时,结算,并停止算奖金。这样就可以把上面全部的人奖金算出来了。
yihunnanzi 2006-01-02
  • 打赏
  • 举报
回复
感谢taito(史克威尔)的答复,C级的问题已经解决了,现在就是B级把我饶晕了。。


当我是B级代理员的时候,我的下线(注意:“下线”不一定就是我的下面一层,也有可能在三层、五层,统称为“下线”)TTTT和TTTT的下线VVVV这两个都晋升为B级代理员的时候,,我拿到TTTT每单3%的育成奖和VVVV每单2%的育成奖,如果VVVV的下线也出来一个B级代理员的时候,那么我就拿不到了,这个时候,TTTT又可以拿到育成奖了。。。思路或代码如何实现???


李睿_Lee 2006-01-01
  • 打赏
  • 举报
回复
学习一下,
顺便抢一点分.
taito 2006-01-01
  • 打赏
  • 举报
回复
'End If
Sql = Sql & " where boardid=" & Boardid & ""
conn.Execute (Sql)
End If
Case 2
NNum = DjNum(Boardid, 3) '下级有几人
If NNum > 2 Or (NNum > 1 And Userjf + Sbonus >= 158960) Then
Sql = "update dv_board set Userdj=Userdj+1 where boardid=" & Boardid & ""
'If rs(3) <> "" Then
' sql = "update dv_board set Userdj=Userdj+1,Effect_Date=null,Effect=1 where datediff(day,Effect_Date,getdate())>15 and boardid=" & boardid & ""
' Effect = True '有超越
'Else
' sql = "update dv_board set Effect_Date=getdate() where boardid=" & boardid & ""
'End If
conn.Execute (Sql)
End If
Case 3
NNum = DjNum(Boardid, 4) '下级有几人
If NNum > 3 Or (NNum > 2 And Userjf + Sbonus >= 788880) Then
If rs(3) <> "" Then
Sql = "update dv_board set Userdj=Userdj+1,Effect_Date=null where datediff(day,Effect_Date,getdate())>15 and boardid=" & Boardid & ""
'sql = "update dv_board set Userdj=Userdj+1,Effect_Date=null,Effect=1 where datediff(day,Effect_Date,getdate())>15 and boardid=" & boardid & ""
Else
Sql = "update dv_board set Effect_Date=getdate() where boardid=" & Boardid & ""
End If
conn.Execute (Sql)
End If
End Select
End If
rs.MoveNext
j = j + 1
Else
If UserDj > MyArray(2, j) Then
If MyArray(3, j) = 1 Then
Select Case MyArray(2, j)
Case 2
T = -(0.05 - T)
Case 3
T = -(0.08 - T)
End Select
End If
j = j + 1
Else
rs.MoveNext
End If
End If
If j > 12 Then Exit Do
Loop
rs.Close

If Effect <> True Then Effect = False

bonus = Effect
'If Effect = True Then Call NewOrder(PreId)
End Function
taito 2006-01-01
  • 打赏
  • 举报
回复
Public Function bonus(PreId, Sbonus, add) '奖金计算
Dim i, j, Q, T, UserDj, Userjf, UserCjf, Boardid, Parentid, NNum, Effect, Sql, ParentStr
Dim MyArray(3, 12)
MyArray(1, 0) = 0 '忠诚顾客
MyArray(1, 1) = 0.2 '普卡20%
MyArray(1, 2) = 0.02 '普卡2%
MyArray(1, 3) = 0.05 '铜卡25%
MyArray(1, 4) = 0.03 '铜卡3%
MyArray(1, 5) = 0.02 '铜卡2%
MyArray(1, 6) = 0.08 '银卡32%
MyArray(1, 7) = 0.03 '银卡3%
MyArray(1, 8) = 0.02 '银卡2%
MyArray(1, 9) = 0.02 '银卡2%
MyArray(1, 10) = 0.12 '金卡42%
MyArray(1, 11) = 0.02 '金卡2%
MyArray(1, 12) = 0.01 '金卡1%

MyArray(2, 0) = 0 '忠诚顾客
MyArray(2, 1) = 1 '普卡20%
MyArray(2, 2) = 1 '普卡2%
MyArray(2, 3) = 2 '铜卡25%
MyArray(2, 4) = 2 '铜卡3%
MyArray(2, 5) = 2 '铜卡2%
MyArray(2, 6) = 3 '银卡32%
MyArray(2, 7) = 3 '银卡3%
MyArray(2, 8) = 3 '银卡2%
MyArray(2, 9) = 3 '银卡2%
MyArray(2, 10) = 4 '金卡42%
MyArray(2, 11) = 4 '金卡2%
MyArray(2, 12) = 4 '金卡1%

MyArray(3, 0) = 0 '
MyArray(3, 1) = 1 '级差
MyArray(3, 2) = 0
MyArray(3, 3) = 1 '级差
MyArray(3, 4) = 0
MyArray(3, 5) = 0
MyArray(3, 6) = 1 '级差
MyArray(3, 7) = 0
MyArray(3, 8) = 0
MyArray(3, 9) = 0
MyArray(3, 10) = 1 '级差
MyArray(3, 11) = 0
MyArray(3, 12) = 0

conn.Open mstrConn

j = 0 '数组增加
Q = True '判断是否等级递增 T为减掉的差额
If add = False Then Sbonus = -Sbonus
Sql = "Select ParentStr From dv_board where boardid = " & PreId & ""
Set rs = conn.Execute(Sql)
ParentStr = rs(0)
Sql = "Select boardid,UserDj,Userjf,Effect_Date,parentid,UserCjf From dv_board where boardid in (" & PreId & "," & ParentStr & ") order by boardid desc"
Set rs = conn.Execute(Sql)
Set Boardid = rs(0)
Set UserDj = rs(1)
Set Userjf = rs(2)
Set Parentid = rs(4)
Set UserCjf = rs(5)

Do While Not rs.EOF
If UserDj = MyArray(2, j) Then
If Q = True Then
Select Case MyArray(2, j)
Case 0
'T = 0.15
Sql = "update dv_board set UserCjf=UserCjf+" & Sbonus & ",Userjf=Userjf+" & Sbonus & " where boardid=" & Boardid & ""
j = 12
Case 1
T = 0.2
Sql = "update dv_board set User_jz=User_jz+" & Round(Sbonus * T) & ",UserCjf=UserCjf+" & Sbonus & ",Userjf=Userjf+" & Sbonus & " where boardid=" & Boardid & ""
Case 2
T = 0.25
Sql = "update dv_board set User_jz=User_jz+" & Round(Sbonus * T) & ",UserCjf=UserCjf+" & Sbonus & ",Userjf=Userjf+" & Sbonus & " where boardid=" & Boardid & ""
Case 3
T = 0.32
Sql = "update dv_board set User_jz=User_jz+" & Round(Sbonus * T) & ",UserCjf=UserCjf+" & Sbonus & ",Userjf=Userjf+" & Sbonus & " where boardid=" & Boardid & ""
Case Is >= 4
T = 0.42
Sql = "update dv_board set User_jz=User_jz+" & Round(Sbonus * T) & ",UserCjf=UserCjf+" & Sbonus & ",Userjf=Userjf+" & Sbonus & " where boardid=" & Boardid & ""
End Select
conn.Execute (Sql)
T = 0
Q = False

Else
If MyArray(3, j) = 0 Then
T = MyArray(1, j) + T
conn.Execute ("update dv_board set User_jy = User_jy+" & Round(Sbonus * MyArray(1, j)) & ",UserCjf=UserCjf+" & Sbonus & ",Userjf=Userjf+" & Sbonus & " where boardid=" & Boardid)
Else
T = MyArray(1, j) - T
conn.Execute ("update dv_board set User_jg = User_jg+" & Round(Sbonus * T) & ",UserCjf=UserCjf+" & Sbonus & ",Userjf=Userjf+" & Sbonus & " where boardid=" & Boardid)
T = 0
End If
End If
If (UserDj = 0 And Userjf + Sbonus >= 2500) Or (UserDj = 1 And Userjf + Sbonus >= 17228) Or (UserDj = 2 And Userjf + Sbonus >= 80220) Or (UserDj = 3 And Userjf + Sbonus >= 395180) Then
Select Case UserDj
Case 0
Sql = "Update Dv_board set Userdj = Userdj + 1,UserCjf=1480,Userjf=1480"
Sql = Sql & " where boardid=" & Boardid & ""
conn.Execute (Sql)
Case 1
NNum = DjNum(Boardid, 3) '下级有几人
If NNum > 2 Or (NNum > 1 And Userjf + Sbonus >= 32976) Then
Sql = "Update Dv_board set Userdj = Userdj + 1"
'Set rst = conn.Execute("Select Userdj From Dv_Board where Boardid = " & parentid)
'If UserDj + 1 > rst(0) Then
' sql = sql & ",Effect=1"
' Effect = True '有超越
taito 2006-01-01
  • 打赏
  • 举报
回复
不蛮楼主,本人就做过两套直销系统。一套级差制(育成奖+推荐奖+分红等),和一套双轨制(推荐奖+对碰奖+育成+消费再生奖+再消费分红)。一个用组件,一个用存储过程。

大家也不要拿砖拍我,我们都只关心程序,不关心其它的,能赚钱就好。不过感觉那帮搞直销的真TMD会呼呦。

楼主其实要写的话并不难,多用数组和递归就好了。

提供一段程序做为参考,具体的制度会有些有的差异,这是第一套奖金制度的一部分算法:
diaoxueOK 2006-01-01
  • 打赏
  • 举报
回复
帮你顶
baoxiaohua 2006-01-01
  • 打赏
  • 举报
回复
up
卡哇伊qingqing 2006-01-01
  • 打赏
  • 举报
回复
感谢 taito(史克威尔)的答复,上面我的解释有点问题,没有表达清楚,对不起!

应该是这样:
我想计算育成奖:

一、C级拿一代
就是当我是C级培训员的时候,我的下线TTTT也是C级培训员的时候,我拿到TTTT每单4%的育成奖,如果TTTT的下线也出来一个C级培训员的时候,那么我就拿不到了,这个时候,TTTT又可以拿到育成奖了。。。思路或代码如何实现???

二、B级拿二代
由于我的下线有两条C级培训员,那么我会在下个月的一号升为B级代理员,当我是B级代理员的时候,我的下线TTTT和TTTT的下线VVVV这两个都晋升为B级代理员的时候,,我拿到TTTT每单3%的育成奖和VVVV每单2%的育成奖,如果VVVV的下线也出来一个B级代理员的时候,那么我就拿不到了,这个时候,TTTT又可以拿到育成奖了。。。思路或代码如何实现???

我自己都糊涂了,,把我饶晕了,希望拜托高手指点迷津。。




taito 2006-01-01
  • 打赏
  • 举报
回复
错了,应该是T = T - 1
taito 2006-01-01
  • 打赏
  • 举报
回复
T = 1 (C级拿一代)

Do
...
循环
....

If TTTT的上级 = 你 And T <> 0 Then
你的奖金 = 奖金 * 4%
T = T + 1
End If

Loop

同理 ...
yihunnanzi 2006-01-01
  • 打赏
  • 举报
回复
感谢 taito(史克威尔)的答复,

晕菜,看不懂,

我想计算育成奖:就是当我C级培训员的时候,我的下线TTTT也出来一个C级培训员的时候,我拿到TTTT每单4%的育成奖,如果TTTT也出来一个C级培训员的时候,那么我就拿不到了,这个时候,TTTT又可以拿到育成奖了。。。

拜托高手指点迷津。。
卡哇伊qingqing 2006-01-01
  • 打赏
  • 举报
回复
帮你顶,关注中
yihunnanzi 2005-12-31
  • 打赏
  • 举报
回复
感谢 tigerwen01答复,求《辅导或育成奖》的算法和思路?具体要完成那些功能?

我们以会员AAAA来举例,当AAAA是C级培训员的时候,AAAA的下线也晋升为C级培训员的时候,AAAA可以拿到每单4%的辅导或育成奖98元;当AAAA是B级代理员的时候,AAAA的下线和他的下线都晋升为B级代理员的时候(算AAAA三线 B ),AAAA可以拿到3% 73.5元和2% 49元的辅导或育成奖(当AAAA只有一线B或超过三线B的时候,这种奖项就拿不到了)。

在这里是用asp代码怎么计算AAAA的 辅导或育成奖????或计算这奖金的思路!!!
Only_D 2005-12-31
  • 打赏
  • 举报
回复
发现很多人都喜欢用“挑战你的思路..”等字样来命标题。
有点郁闷吧!来到这里不是求救就是救人,还有什么挑不挑战的
楼主有点虚伪...(别BS我,跟本就是!)
若白师妹 2005-12-31
  • 打赏
  • 举报
回复
那我也来抢
jspadmin 2005-12-31
  • 打赏
  • 举报
回复
我来抢点分,据说抢分是版主第一课
tigerwen01 2005-12-31
  • 打赏
  • 举报
回复
求《辅导或育成奖》的算法和思路?具体要完成那些功能?
竹林听雨2005 2005-12-31
  • 打赏
  • 举报
回复
土匪来抢分了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧