StoreCouponUser.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace app\admin\model\store;
  3. use crmeb\basic\BaseModel;
  4. use crmeb\services\AlipayService;
  5. use crmeb\traits\ModelTrait;
  6. use think\facade\Db;
  7. class StoreCouponUser extends BaseModel
  8. {
  9. /**
  10. * 数据表主键
  11. * @var string
  12. */
  13. protected $pk = 'id';
  14. /**
  15. * 模型名称
  16. * @var string
  17. */
  18. protected $name = 'store_coupon_user';
  19. use ModelTrait;
  20. public static function tidyCouponList($couponList)
  21. {
  22. $time = time();
  23. foreach ($couponList as &$coupon){
  24. $coupon['_add_time'] = date('Y/m/d',$coupon['add_time']);
  25. $coupon['_end_time'] = date('Y/m/d',$coupon['end_time']);
  26. $coupon['use_min_price'] = floatval($coupon['use_min_price']);
  27. $coupon['coupon_price'] = floatval($coupon['coupon_price']);
  28. if ($coupon['status'] < 1){
  29. $coupon['_type'] = 1;
  30. $coupon['_msg'] = '未使用';
  31. }elseif ($coupon['status'] == 1){
  32. $coupon['_type'] = 0;
  33. $coupon['_msg'] = '已使用';
  34. }elseif ($coupon['status'] == 2){
  35. $coupon['_type'] = 0;
  36. $coupon['_msg'] = '已过期';
  37. }
  38. $coupon['integral']= Db::name('store_coupon')->where(['id'=>$coupon['cid']])->value('integral');
  39. }
  40. return $couponList;
  41. }
  42. //获取个人优惠券列表
  43. public static function getOneCouponsList($where){
  44. $list=self::where(['uid'=>$where['uid']])->page((int)$where['page'],(int)$where['limit'])->select();
  45. return self::tidyCouponList($list);
  46. }
  47. //获取优惠劵头部信息
  48. public static function getCouponBadgeList($where){
  49. return [
  50. [
  51. 'name'=>'总发放优惠券',
  52. 'field'=>'张',
  53. 'count'=>self::getModelTime($where, Db::name('store_coupon_issue'))->where('status',1)->sum('total_count'),
  54. 'background_color'=>'layui-bg-blue',
  55. 'col'=>6,
  56. ],
  57. [
  58. 'name'=>'总使用优惠券',
  59. 'field'=>'张',
  60. 'count'=>self::getModelTime($where,new self())->where('status',1)->count(),
  61. 'background_color'=>'layui-bg-blue',
  62. 'col'=>6,
  63. ]
  64. ];
  65. }
  66. //获取优惠劵图表
  67. public static function getConponCurve($where,$limit=20){
  68. //优惠劵发放记录
  69. $list=self::getModelTime($where, Db::name('store_coupon_issue')
  70. ->where('status',1)
  71. ->field(['FROM_UNIXTIME(add_time,"%Y-%m-%d") as _add_time','sum(total_count) as total_count'])->group('_add_time')->order('_add_time asc'))->select();
  72. $date=[];
  73. $seriesdata=[];
  74. $zoom='';
  75. foreach ($list as $item){
  76. $date[]=$item['_add_time'];
  77. $seriesdata[]=$item['total_count'];
  78. }
  79. unset($item);
  80. if(count($date)>$limit){
  81. $zoom=$date[$limit-5];
  82. }
  83. //优惠劵使用记录
  84. $componList=self::getModelTime($where,self::where('status',1)->field(['FROM_UNIXTIME(add_time,"%Y-%m-%d") as _add_time','sum(coupon_price) as coupon_price'])
  85. ->group('_add_time')->order('_add_time asc'))->select();
  86. count($componList) && $componList=$componList->toArray();
  87. $compon_date=[];
  88. $compon_data=[];
  89. $compon_zoom='';
  90. foreach($componList as $item){
  91. $compon_date[]=$item['_add_time'];
  92. $compon_data[]=$item['coupon_price'];
  93. }
  94. if(count($compon_date)>$limit){
  95. $compon_zoom=$compon_date[$limit-5];
  96. }
  97. return compact('date','seriesdata','zoom','compon_date','compon_data','compon_zoom');
  98. }
  99. }