| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | <?phpnamespace App\Modules\OfficialAccount\Models;use Illuminate\Database\Eloquent\Model;use DB;class CustomMsgSendTimeConfig extends Model{    protected $tables = 'custom_msg_send_time_configs';    protected $guarded = [];    /**     *获取站点下客服消息发送时间配置     */    static function getConfigs($params){        return self::where('is_enable','1')->where($params)->get();    }    /**     *批量创建客服消息发送时间配置     */    static function BatchCreateSendTimeConfigs($distribution_channel_ids = [],$custom_category = '',$send_times = [])    {        $now = date('Y-m-d H:i:s');        $insert_data = array();        if(!($distribution_channel_ids&&$custom_category&&$send_times)){            return false;        }        foreach ($distribution_channel_ids as $distribution_channel_id){            $params['distribution_channel_id'] = $distribution_channel_id;            $params['is_enable'] = 1;            foreach ($send_times as $send_time){                $params['custom_category'] = $custom_category;                $params['send_time'] = $send_time;                $params['created_at'] = $now;                $params['updated_at'] = $now;                $insert_data[] = $params;            }        }        try {            DB::beginTransaction();            //弃用现有配            DB::table('custom_msg_send_time_configs')                ->whereIn('distribution_channel_id',$distribution_channel_ids)                ->where('custom_category' , $custom_category)                ->update(['is_enable'=>0])            ;            //更新最新配置            $res = DB::table('custom_msg_send_time_configs')->insert($insert_data);            DB::commit();            return true;        } catch (Exception $e) {            Log::error('book_stacks confirm custom_msg_send_time_configs_insert :' . $e->getMessage());            return false;        }    }    /**     *获取站点下客服消息发送时间配置     */    static function getTimeConfig($channel_id='',$params=[]){        $res =  self::where('is_enable','1')            ->where('distribution_channel_id',$channel_id)->orderBy('send_time');            if(isset($params['custom_category'])&&$params['custom_category']){                $res->where('custom_category' , $params['custom_category']);            }            if(isset($params['begin_time'])&&$params['begin_time']){                $res->where('send_time' , '>',$params['begin_time']);            }            if(isset($params['end_time'])&&$params['end_time']){                $res->where('send_time' , '<',$params['end_time']);            }        return $res->first();    }}
 |