123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
- namespace App\Modules\OfficialAccount\Models;
- use Illuminate\Database\Eloquent\Model;
- use DB;
- class WechatTemplateMsgs extends Model
- {
- protected $tables = 'wechat_template_msgs';
- protected $fillable = ['template_id','name','send_time','appid','template_content','redirect_url','status','remark','distribution_channel_id','subscribe_time','sex','balance','order_type','category_id','user_num','del_flag','is_full_send','is_show_list','description','book_name','chapter_name','is_activity'];
- /**
- * 获取单个模板消息,根据模板id
- */
- static function wechatTemplateMsgsByTemplateId($template_id)
- {
-
- return self::where('template_id', isset($template_id) ? $template_id : '')->first();
-
- }
-
- /**
- * 获取全部模板消息,根据模板id
- */
- static function allWechatTemplateMsgsByTemplateId($template_id)
- {
-
- return self::where('template_id', $template_id)->get();
-
- }
-
- /**
- * 更新模板消息template_id
- */
- static function updateWechatTemplateMsgsByTemplateId($new_template_id,$old_template_id)
- {
- return DB::table('wechat_template_msgs')->where('template_id', $old_template_id)->update(['template_id'=>$new_template_id,'updated_at'=>date('Y-m-d H:i:s')]);
-
- }
- /**
- * 根据状态获取模板消息
- */
- static function wechatTemplateMsgsByStatusStandBy($status)
- {
- return self::where(['status'=>$status,'del_flag'=>0])->get();
- }
- /**
- * 根据id获取模板消息
- */
- static function wechatTemplateMsgsById($id)
- {
-
- return self::where('id', isset($id) ? $id : '')->first();
-
- }
- /**
- * 判断1小时内是否有相同的模板消息插入过
- */
- static function isSendTemplateAtSameTime($distribution_channel_id,$appid,$send_time,$template_id)
- {
-
- return self::where(['distribution_channel_id'=>$distribution_channel_id,'appid'=>$appid,'del_flag'=>0,'template_id'=>$template_id])->where('status','!=','4')->where('send_time','<',date('Y-m-d H:i:s',strtotime($send_time)+3600))->where('send_time','>',date('Y-m-d H:i:s',strtotime($send_time)-3600))->first();
-
- }
- /**
- * 根据appid获取模板消息 is_show_list为1则界面展示
- */
- static function wechatTemplateMsgsBydistributionChannelId($distribution_channel_id)
- {
-
- return self::where('distribution_channel_id', isset($distribution_channel_id) ? $distribution_channel_id : '')->where('del_flag',0)->where('is_show_list',1)->orderBy('id','desc')->paginate();
-
- }
-
- /**
- * 根据分页获取模板消息
- */
- static function wechatTemplateMsgsPaginate($start_time,$end_time,$is_all=false)
- {
- \Log::info('$wechatTemplateMsgsPaginate');
- $search_obj = self::select('wechat_template_msgs.distribution_channel_id as site_id',
- 'wechat_template_msgs.name as task_name',
- DB::raw('date(wechat_template_msgs.created_at) as created_date'),
- 'wechat_template_msgs.send_time',
- 'wechat_template_msgs.user_num as suc_send_num',
- // DB::raw('"" as template_name'),
- DB::raw('(select t.title from wechat_templates w inner join wechat_public_templates t ON w.common_template_id=t.common_template_id where w.template_id=wechat_template_msgs.template_id limit 1) as template_name'),
- DB::raw('"" as tag'),
- DB::raw('(select group_concat(nickname) from official_accounts where distribution_channel_id=wechat_template_msgs.distribution_channel_id group by distribution_channel_id) as official_account_name')//official_account_name
- )
- ->where(['del_flag'=>0,'status'=>3])
- ->where('wechat_template_msgs.created_at','>=',$start_time)
- ->where('wechat_template_msgs.created_at','<',$end_time)
- ->orderBy('wechat_template_msgs.id','desc');
-
- if($is_all)
- {
- return $search_obj->get();
- }else{
- return $search_obj->paginate();
- }
- }
- function wechatTemplates(){
- return $this->hasOne('App\Modules\OfficialAccount\Models\WechatTemplates','template_id','template_id');
-
- }
-
- static function searchWechatTemplateMsgs($param,$is_all=false){
-
- $res = self::where('distribution_channel_id', $param['distribution_channel_id'])
- ->select('*')
- ->where('del_flag',0)
- ->where('is_show_list',1);
-
- if(isset($param['start_time']) && $param['start_time']){
- $res->where('wechat_template_msgs.created_at', '>=', $param['start_time']);
- }
- if(isset($param['end_time']) && $param['end_time']){
- $res->where('wechat_template_msgs.created_at', '<=', $param['end_time']);
- }
- if(isset($param['book_name']) && $param['book_name']){
- $res->where('wechat_template_msgs.book_name', 'like', '%'.$param['book_name'].'%');
- }
- if(isset($param['task_name']) && $param['task_name']){
- $res->where('wechat_template_msgs.name', 'like', '%'.$param['task_name'].'%');
- }
- if ($is_all){
- $wechat_template_msgs = $res->orderBy('id','desc')->get();
- }else{
- $wechat_template_msgs = $res->orderBy('id','desc')->paginate();
- }
- return $wechat_template_msgs;
- }
- }
|