Cron.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. namespace Bill\Lib;
  3. use Dever;
  4. class Cron
  5. {
  6. public function sell_api()
  7. {
  8. # 按月份统计团队业绩
  9. $month = Dever::input('month', date('Y-m'));
  10. $start_time = $month .'-01 00:00:00';
  11. $end_time = date('Y-m-d', strtotime($start_time. ' +1 month -1 day')).' 23:59:59';
  12. $where['type'] = '2,10';
  13. $where['start'] = Dever::maketime($start_time);
  14. $where['end'] = Dever::maketime($end_time);
  15. $data = Dever::db('bill/sell')->getNumByTime($where);
  16. if ($data) {
  17. foreach ($data as $k => $v) {
  18. if ($v['num'] > 0) {
  19. $w = array();
  20. $w['mid'] = $v['mid'];
  21. $w['month'] = $where['start'];
  22. $info = Dever::db('bill/sell_stat')->find($w);
  23. $w['new_num'] = $v['num'];
  24. $where['mid'] = $v['mid'];
  25. $total = Dever::db('bill/sell')->getNumByTimeOne($where);
  26. if ($total) {
  27. $w['num'] = $total['num'];
  28. }
  29. if ($info) {
  30. $w['where_id'] = $info['id'];
  31. Dever::db('bill/sell_stat')->update($w);
  32. } else {
  33. Dever::db('bill/sell_stat')->insert($w);
  34. }
  35. }
  36. }
  37. }
  38. return 'ok';
  39. }
  40. public function goods_api()
  41. {
  42. $num = Dever::input('num', 1);
  43. $start = Dever::input('start', date('Y-m-d', strtotime('-'.$num.' day')));
  44. $end = Dever::input('end', date('Y-m-d'));
  45. $start = Dever::maketime($start . ' 00:00:00');
  46. $end = Dever::maketime($end . ' 23:59:59');
  47. $day = intval(($end - $start)/86400);
  48. for($i=0; $i<=$day; $i++) {
  49. $where['start'] = $start + 86400*$i;
  50. $where['end'] = $start + 86400*$i + 86399;
  51. $goods = Dever::db('agent/member_goods')->findAll($where);
  52. if ($goods) {
  53. foreach ($goods as $k => $v) {
  54. $data = array();
  55. $data['day'] = $where['start'];
  56. $data['type'] = $v['type'];
  57. $data['type_id'] = $v['type_id'];
  58. $data['sku_id'] = $v['sku_id'];
  59. $info = Dever::db('bill/goods_stat')->find($data);
  60. $data['total_num'] = $v['total_num'];
  61. $data['sell_num'] = $v['sell_num'];
  62. $data['cash'] = $v['cash'];
  63. $data['name'] = $v['name'];
  64. if ($info) {
  65. $data['where_id'] = $info['id'];
  66. Dever::db('bill/goods_stat')->update($data);
  67. } else {
  68. Dever::db('bill/goods_stat')->insert($data);
  69. }
  70. }
  71. }
  72. }
  73. }
  74. # 区域分润
  75. /*
  76. 区域毛利 = 区域内所有门店的采购商品的零售价总额 x 30%
  77. 城市分润 = 区域毛利 x 1%
  78. 区县分润 = 区域毛利 x 3%
  79. 街道分润 = 区域毛利 x 5%
  80. */
  81. public function area_api()
  82. {
  83. # 获取所有代理商
  84. $where['status'] = 2;
  85. $member = Dever::db('agent/member')->select($where);
  86. if ($member) {
  87. foreach ($member as $k => $v) {
  88. # 获取区域内门店的利润
  89. $role = Dever::db('setting/role')->find($v['role']);
  90. $profit = $role['profit'];
  91. if (!$profit) {
  92. continue;
  93. }
  94. $temp = explode(',', $v['area']);
  95. if ($role['type'] == 2) {
  96. $area = '';
  97. if ($role['area'] == 1 && isset($temp[1])) {
  98. # 城市
  99. $area = $temp[0] . ',' . $temp[1];
  100. } elseif ($role['area'] == 2 && isset($temp[2])) {
  101. # 区县
  102. $area = $temp[0] . ',' . $temp[1] . ',' . $temp[2];
  103. } elseif ($role['area'] == 3 && isset($temp[3])) {
  104. # 街道
  105. $area = $temp[0] . ',' . $temp[1] . ',' . $temp[2] . ',' . $temp[3];
  106. }
  107. if ($area) {
  108. }
  109. }
  110. }
  111. }
  112. }
  113. # 权益使用情况统计:类型、商品名、总发放数量、总使用数量
  114. # 营业额报表:日期,订单数,确认订单数,确认订单额度,新增代理商数量
  115. # 代理商统计:日期,新增代理商,城市代理商,区县代理商,街道代理商,创客,消客
  116. # 资金账户统计:日期,总收入,代理费,软件服务费,赠送商品价值,直推佣金,市场培训费
  117. }