MemberTj.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
  8. // +----------------------------------------------------------------------
  9. // | Author: 萤火科技 <admin@yiovo.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. namespace app\common\model\member;
  13. use app\common\library\helper;
  14. use app\console\model\Setting as SettingModel;
  15. use think\facade\Db;
  16. use app\common\model\BaseModel;
  17. /**
  18. * 会员统计模型
  19. * Class Order
  20. * @package app\common\model
  21. */
  22. class MemberTj extends BaseModel
  23. {
  24. // 定义表名
  25. protected $name = 'member_tj';
  26. // 定义表名(外部引用)
  27. public static $tableName = 'member_tj';
  28. // 定义主键
  29. protected $pk = 'id';
  30. // // 定义别名
  31. // protected $alias = 'id';
  32. protected $ftype = [1=>'day',2=>'week',3=>'month'];
  33. //(商品总价 - 优惠券 - 分销员)+ 运费 = 微信支付+米卡抵扣+米卡抵扣运费(total_price-coupon_money-distrbutor_total_money)+express_price = pay_price+rice_card_money+rice_card_express_money
  34. public function day($dif = 1){
  35. //应付总金额(含运费)
  36. //未扣减优惠金额、米卡抵扣金额前的订单总金额
  37. $start = Date("Y-m-d",time()-86400*$dif)." 00:00:00";
  38. $end = Date("Y-m-d",time()-86400*$dif)." 23:59:59";
  39. $remark = Date("Y-m-d",time()-86400*$dif);
  40. $data = $this->search($start,$end);
  41. $data['remark'] = $remark;
  42. $data['ftype'] = 1;
  43. $data['tj_time'] = Date("Y-m-d H:i:s",strtotime($start) + 10);
  44. $this->add($data);
  45. // var_dump(Date("Y-m-d H:i:s",$data['tj_time']));
  46. return true;
  47. }
  48. public function month($dif = 1){
  49. $d = date("d",time());
  50. if($d!='01'){
  51. return false;
  52. }
  53. $standardTime = date('Y-m-1');
  54. $_lastMonthStart = date('Y-m-01 00:00:00', strtotime("-1 month", strtotime($standardTime)));
  55. $_lastMonthEnd = date('Y-m-d H:i:s', strtotime('-1 sec', strtotime($standardTime)));
  56. $start = $_lastMonthStart;
  57. $end = $_lastMonthEnd;
  58. $remark = substr($_lastMonthStart,0,7);
  59. $data = $this->search($start,$end);
  60. $data['ftype'] =3;
  61. $data['remark'] = $remark;
  62. $data['tj_time'] = Date("Y-m-d H:i:s",strtotime($start) + 10);
  63. // var_dump(Date("Y-m-d H:i:s",$data['tj_time']));
  64. $this->add($data);
  65. return true;
  66. }
  67. public function week($dif = 1){
  68. //上周一
  69. $w = date("w",time());
  70. if($w!=1){
  71. return false;;
  72. }
  73. $t = $w==1?1:2; //如果当前时间是周一,则-1,如果已经是周二 要-2
  74. $d1 = date('Y-m-d 00:00:00',strtotime('-'.$t.' monday',time())); //无论今天几号,-1 monday为上一个有效周未
  75. //上周日
  76. $d7 = date('Y-m-d 23:59:59',strtotime('-1 sunday', time())); //
  77. //上一个有效周日,同样适用于其它星期
  78. $remark = substr($d1,0,10).'--'.substr($d7,0,10);
  79. $start = $d1;
  80. $end = $d7;
  81. $data = $this->search($start,$end);
  82. $data['ftype'] =2;
  83. $data['remark'] = $remark;
  84. $data['tj_time'] = Date("Y-m-d H:i:s",strtotime($start) + 10);
  85. // var_dump(Date("Y-m-d H:i:s",$data['tj_time']));
  86. $this->add($data);
  87. return true;
  88. }
  89. //查找时间段
  90. public function search($start,$end){
  91. $sql = "SELECT count(1) as t1
  92. FROM yoshop_member_order where pay_status=? and create_time>? and create_time<?";
  93. $param = [1,$start,$end];
  94. $result = Db::query($sql, $param);
  95. $t1 = $result[0]['t1']??1;//订单数
  96. $data = ['values'=>$t1];
  97. return $data;
  98. }
  99. //添加
  100. public function add($data){
  101. $m = new MemberTj;
  102. $one = $m->where('remark',$data['remark'])->where("ftype",$data['ftype'])->find();
  103. if(empty($one)){
  104. $m->save($data);
  105. }else{
  106. // var_dump($data);
  107. $one->where('id',$one->id)->update($data);
  108. }
  109. }
  110. public function getList($params){
  111. // 检查查询条件
  112. $filter = [];
  113. if(!isset($params['ftype'])){
  114. // $params['ftype'] = 3;
  115. }
  116. isset($params['ftype'])&&$params['ftype']>-1 && $filter[] = ['ftype', '=', (int)$params['ftype']];
  117. // 申请时间
  118. if (!empty($params['betweenTime'])) {
  119. $times = between_time($params['betweenTime']);
  120. $filter[] = ['tj_time', '>=', Date('Y-m-d H:i:s',$times['start_time'])];
  121. $filter[] = ['tj_time', '<', Date('Y-m-d H:i:s',$times['end_time'] + 86400)];
  122. }
  123. return $this->where($filter)->order(['create_time' => 'id'])->paginate(10000);
  124. }
  125. // /**
  126. // * 导出列表
  127. // * @param array $param
  128. // * @author: zq
  129. // * @Time: 2021/10/15 13:51
  130. // */
  131. // public function listExport(array $params)
  132. // {
  133. // //$ids = $param['goods_id'];
  134. // $data['header'] = ['时间', '应付总金额(含运费)', '应付商品总金额', '实付金额(含运费)', '运费','平台优惠券抵扣', '成交用户数','订单数','客单价'];
  135. // $data['filename'] = '销售分析';
  136. // $data['data'] = [];
  137. // $filter = [];
  138. // isset($params['ftype'])&&$params['ftype']>-1 && $filter[] = ['ftype', '=', (int)$params['ftype']];
  139. // // 申请时间
  140. // if (!empty($params['betweenTime'])) {
  141. // $times = between_time($params['betweenTime']);
  142. // $filter[] = ['tj_time', '>=', Date('Y-m-d H:i:s',$times['start_time'])];
  143. // $filter[] = ['tj_time', '<', Date('Y-m-d H:i:s',$times['end_time'] + 86400)];
  144. // }
  145. // $res = $this->where($filter)->order(['create_time' => 'desc'])->select();
  146. // $data = ['total_price'=>$t1,
  147. // 'total_goods_price'=>$t2,
  148. // 'total_pay_price'=>$t3,
  149. // 'total_express_price'=>$t4,
  150. // 'total_coupon_price'=>$t5,
  151. // 'total_users'=>$t6,
  152. // 'total_orders'=>$t7,
  153. // 'pcts'=>$t8];
  154. // $newdata = [];
  155. // foreach($res as $row){
  156. // $newrow['remark'] = $row['remark'];
  157. // $newrow['total_price'] = $row['total_price'];
  158. // $newrow['total_goods_price'] = $row['total_goods_price'];
  159. // $newrow['total_pay_price'] = $row['total_pay_price'];
  160. // $newrow['total_express_price'] = $row['total_express_price'];
  161. // $newrow['total_coupon_price'] = $row['total_coupon_price'];
  162. // $newrow['total_users'] = $row['total_users'];
  163. // $newrow['total_orders'] = $row['total_orders'];
  164. // $newrow['pcts'] = $row['pcts'];
  165. // $newdata[] = $newrow;
  166. // }
  167. // $data['data'] = $newdata;
  168. // return $data;
  169. // }
  170. }