Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt

Keyword

分组与聚合操作。

一个for做分组。。。里面的做聚合。。。

数据g操作查询api sql化

etRchgTotal_groupby_SubAgent_where_ParentAgentId(

http://localhost:8080/agentNrecharge/sub_total_overview.htm?begindate=2016-06-09&enddate=2016-06-09&cnn=3&parent_id=888888

http://localhost:8080/wrmiServletV3?iocx=com.attilax.ioc.Ioc4agent&$rdm=0.5026763516943902&$code=new(com.attilax.agent.AgentRechargeService).getSubAgentNtotalsByParentAgentId(888888)

[ { "uid":"200005", "total":0 }, { "uid":"20002422", "total":0 }, { "uid":"200024", "total":0 }, { "uid":"200025", "total":0 } ]

00001.

$code:

00002.

new(com.attilax.orm.AtiOrmV2).queryAsRzt("select sum(rmb) sumx from recharge where status=1 and accountId in ( select id as uid from account where promoter=888888 )")

00003.

http://localhost:8080/wrmiServletV3?iocx=com.attilax.ioc.Ioc4agent&$rdm=0.8521046019159257&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATEGENERATOR=735FCFCE&hid_cDate=2016-06-09&hid_cDate2=2016-06-09&mylist%24ctl00%24hid_Agentuid=111755&$code=new(com.attilax.orm.AtiOrmV2).queryAsRzt("select%20sum(rmb)%20sumx%20from%20recharge%20%20where%20status%3D1%20and%20accountId%20in%20(%20%20select%20id%20as%20uid%20from%20account%20where%20promoter%3D888888%20)")&$utype=agent

/atiplat_cms/src/com/attilax/agent/AgentRechargeService.java

分组

public List getRchgTotal_groupby_SubAgent_where_ParentAgentId(String pid) {

String sql = " select uid from  agent where  parent_id=$pid$";

sql = sql.replace("$pid$", pid);

List<Map> li = dbsvr.findBySql(sql);

for (Map map : li) {

String subAgentId = (String) map.get("uid");

Map m = Maps.newLinkedHashMap();

m.put("promoter", subAgentId);

BigDecimal money = getRchgTotalsRecycleByAgentId(subAgentId);

map.put("total", money);

}

return li;

}

聚合

/**

* sub mem ,self ,and subagt

attilax    2016年11月7日  下午5:14:57

* @param subAgentId

* @return

*/

public BigDecimal getRchgTotalsRecycleByAgentId(String subAgentId) {

//Map m

BigDecimal SubMemTotal= getSubMemTotalByAgentId(subAgentId,Maps.newConcurrentMap());

String agent_id=subAgentId;

BigDecimal self=getSelfTotalByUid(subAgentId);

SubMemTotal=SubMemTotal.add(self);

//calc sub agent 's  member recharge

String sql = " select uid from  agent where  parent_id=$pid$";

sql = sql.replace("$pid$", agent_id);

List<Map> li = dbsvr.findBySql(sql);

for (Map map : li) {

String sub_id=(String) map.get("uid");

//Map m2=Maps.newLinkedHashMap();

//m2.putAll(subAgentId);

//m2.put("promoter",sub_id);

BigDecimal SubMemTotal2=getRchgTotalsRecycleByAgentId(sub_id);

SubMemTotal=SubMemTotal.add(SubMemTotal2);

}

return SubMemTotal;

}

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt的更多相关文章

  1. Atitit.atiagent  agent分销系统 代理系统 设计文档

    Atitit.atiagent  agent分销系统 代理系统 设计文档 1. 启动项目1 2. 首也2 3. 登录功能2 4. 用户中心2 5. 充值查询3 6. 授权下级代理4 7. 我的提成5 ...

  2. net-snmp子代理(SubAgent)编写详述

    net-snmp子代理(SubAgent)编写 net-snmp子代理(SubAgent)编写 Netsnmp_Node_Handler MIB/OID定义 1.头文件test.h的编写 2.test ...

  3. snmpd 子代理模式编译测试

    1.参考链接 1)Net-snmp添加子代理示例 https://blog.csdn.net/eyf0917/article/details/39546651   2.操作步骤 1)网络拷贝下面的文件 ...

  4. atitit. 分销系统规划p8k

    atitit. 分销系统规划p8k 1. 商户平台管理 overview2 1.1. 分销业务管理2 1.2. 文案管理2 1.3. 订单管理3 1.4. 统计报表3 1.5. 财务结算3 1.6.  ...

  5. snmp agent 表格实现(子代理方式实现)

    前奏參见例如以下: http://blog.sina.com.cn/s/blog_8f3de3250100xhao.html http://blog.csdn.net/hepeng597/articl ...

  6. 细说java系统之动态代理

    代理模式 在深入学习动态代理之前,需要先掌握代理模式.只有深刻理解了代理模式的应用,才能充分理解Java动态代理带来的便利. 在生活中存在许多使用"代理模式"的场景,比如:村里的张 ...

  7. 信用卡分销系统源码、分销系统定制贴牌、信用卡三级分销系统源码、信用卡返佣系统OEM

    信用卡返佣分销系统贴牌,全套源码,可定制UI界面 这一整套绝对是市场上最完善最好的一套系统:里面的特色功能: 1.合伙人功能,解决你前期的资金以及资源问题 2.推广素材库,全方位增加推广效率 3.红包 ...

  8. Spring学习总结(二)——静态代理、JDK与CGLIB动态代理、AOP+IoC

    一.为什么需要代理模式 假设需实现一个计算的类Math.完成加.减.乘.除功能,如下所示: package com.zhangguo.Spring041.aop01; public class Mat ...

  9. 动态代理的两种方式,以及区别(静态代理、JDK与CGLIB动态代理、AOP+IoC)

    Spring学习总结(二)——静态代理.JDK与CGLIB动态代理.AOP+IoC   目录 一.为什么需要代理模式 二.静态代理 三.动态代理,使用JDK内置的Proxy实现 四.动态代理,使用cg ...

随机推荐

  1. python 连接 mysql 被拒绝

    登陆mysql,然后输入 grant all on *.*  to root@'%' identified by 'root'; 然后重启mysql即可

  2. Redis第一篇(Redis单机版本安装及启动)

    安装: 1 2 3 4 5 [root@M2_Redis1 ~]# yum install gcc gcc-c++     (安装依赖) [root@M2_Redis1 tools]# wget ht ...

  3. 【微信要跪】 iOS 应用如何完全支持 IPv6-ONLY 网络?

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  4. <转>技术团队新官上任之基层篇

    发表于2013-09-04 17:17| 10455次阅读| 来源<程序员>| 35 条评论| 作者高博 <程序员>杂志2013年9月刊技术团队管理EMC高博CTO 摘要:从技 ...

  5. input文本框去除单击时的边框的方法

    前端开发写的input文本框标签后单击时可以看到有边框,去除边框的方法: input{     outline:medium; }

  6. 远程连接oracle服务器

    用户名 / 密码@172.16.16.203:1521/orcl

  7. windows编程:资源和播放声音

    要播放声音,要附加项:winmm.lib,然后包含头文件:#include <mmsystem.h> 播放声音用PlaySound函数,只能播放midi和wav波形文件. #define ...

  8. java-android推送

    之前做的推送,考虑了很多,最后因为各个因素,选择了极光的.

  9. kvm虚拟机--存储池配置梳理(转)

    1.创建基于文件夹的存储池(目录) 2.定义存储池与其目录 1 # virsh pool-define-as vmdisk --type dir --target /data/vmfs 3.创建已定义 ...

  10. oracle在impdp时报ORA-31655和ORA-39154

    检查表空间大小设置的是否合理. 另外可以试试 grant IMP_FULL_DATABASE to user;增加导入权限. (转)