"SMS_250975801", // "phoneNumberJson" => "['13161001120', '15550493042']", // "signNameJson" => "['乐餐宝', '乐餐宝']", // "code"=>"123456" ]; $sendSmsRequest = [ "TemplateCode" => $TemplateCode, "phoneNumber" => $phoneNumber, "TemplateParam" => $TemplateParam ]; $res = Alisms::sendSmsCode($sendSmsRequest); // 短信发送记录 $smslog_model = new Smslog(); $insert_data = [ 'mobile' => $phoneNumber, 'template_code' => $TemplateCode, 'template_param' => $TemplateParam, 'createtime' => time(), 'response_param' => json_encode($res), ]; $smslog_model->insert($insert_data); return $res['Code'] == 'OK' ? true : false; } /** * 回收订单 - 超时未回收订单提醒 */ public function RecoveryTimeout() { // 读取超时时间 $order_recovery_overtime = !empty(config('site.order_recovery_overtime')) ? config('site.order_recovery_overtime') : 8; $overtime = time() - $order_recovery_overtime * 3600; $recovery_order_model = new Recoveryorder(); $data = [ 'timeout' => 1, ]; $where['status'] = 1; $where['timeout'] = 0; $where['create_time'] = ['<=', $overtime]; $recovery_order_model->isUpdate(true, $where)->save($data); $this->success('ok'); } /** * 店铺注销退货(餐具)- 超时退货回收提醒 --发给b端配送员 */ public function CancelOrderTimeOut() { // 读取超时时限 $cancel_order_recovery = !empty(config('site.cancel_order_recovery')) ? config('site.cancel_order_recovery') : 48; $overtime = time() - $cancel_order_recovery * 3600; $cancel_order_model = new Cannelorder(); $data = [ 'timeout' => 1, ]; $where['status'] = 1; $where['timeout'] = 0; $where['create_time'] = ['<=', $overtime]; $cancel_order_model->isUpdate(true, $where)->save($data); $this->success('ok'); //状态:1=已接收,2=已清点,3=待退款,4=已退款,5=已入库-- // --需求更改不要短信了 // $cancel_order = $cancel_order_model->alias('o') // ->join('user u', 'o.b_user_id = u.id') // ->field('o.id,o.b_user_id,u.mobile') // ->where('o.status', '=', 1) // ->where('o.timeout', '=', 0) // ->where('o.createtime', '<=', $overtime)->select(); // // if (count($cancel_order) == 0) { // $this->success('无数据'); // } // $TemplateCode = "SMS_250740130"; // $ids = []; // foreach ($cancel_order as $k => $row) { // $phoneNumber = $row['mobile']; // $code = "786324"; // $TemplateParam = json_encode(['code' => $code]); // $is_success = $this->SmsTemplate($TemplateCode, $phoneNumber, $TemplateParam); // // if ($is_success) { // $ids[] = $row['id']; // } // } // if (count($ids) > 0) { // $data = [ // 'timeout' => 1, // ]; // $where['id'] = ['in', $ids]; // $cancel_order_model->isUpdate(true, $where)->save($data); // // $this->success(__('发送成功')); // } } /** * 账单未支付提醒 -- 发给配送员和回收员 */ public function OrderUnpaid() { // 读取超时时限 $order_recovery_overtime = !empty(config('site.bill_unpaid_overtime')) ? config('site.bill_unpaid_overtime') : 360; $overtime = time() - $order_recovery_overtime * 3600; // 回收月结账单 $recovery_bill_model = new RecoveryBill(); $recovery_bill = $recovery_bill_model->alias('b') ->join('user u', 'b.b_user_id = u.id') ->field('b.id,b.b_user_id,u.mobile') ->where('b.status', '=', 1) ->where('b.pay_timeout', '=', 0) ->where('b.createtime', '<=', $overtime) ->select(); //var_dump($recovery_bill);exit(); if (count($recovery_bill) != 0) { $ids = []; // $mobiles = []; // foreach ($recovery_bill as $k => $row) { // $mobiles[] = $row['mobile']; // $ids[] = $row['id']; // } $TemplateCode = "SMS_262525727"; foreach ($recovery_bill as $k => $row) { $phoneNumber = $row['mobile']; $code = "786324"; $TemplateParam = json_encode(['code' => $code]); $is_success = $this->SmsTemplate($TemplateCode, $phoneNumber, $TemplateParam); if ($is_success) { $ids[] = $row['id']; } // todo add else log } // var_dump($ids); if (count($ids) > 0) { $data = [ 'pay_timeout' => 1, ]; $where['id'] = ['in', $ids]; $recovery_bill_model->isUpdate(true, $where)->save($data); echo(__('发送成功')); } } //餐具月结账单 $tableware_bill_model = new TablewareBill(); $tableware_bill = $tableware_bill_model->alias('b') ->join('user u', 'b.b_user_id = u.id') ->field('b.id,b.b_user_id,u.mobile') ->where('b.status', '=', 1) ->where('b.pay_timeout', '=', 0) ->where('b.createtime', '<=', $overtime) ->select(); if (count($tableware_bill) != 0) { $ids = []; // $mobiles = []; // foreach ($tableware_bill as $k => $row) { // $mobiles[] = $row['mobile']; // $ids[] = $row['id']; // } // $msg = "有餐具月结账单未支付,请及时催收"; // $template = 1; // $ret = Smslib::notice($mobiles, $msg, $template); $TemplateCode = "SMS_250740130"; foreach ($tableware_bill as $k => $row) { $phoneNumber = $row['mobile']; $code = "786324"; $TemplateParam = json_encode(['code' => $code]); $is_success = $this->SmsTemplate($TemplateCode, $phoneNumber, $TemplateParam); if ($is_success) { $ids[] = $row['id']; } // todo add else log } if (count($ids) > 0) { $data_tableware_bill = [ 'pay_timeout' => 1, ]; $where_tableware_bill['id'] = ['in', $ids]; $tableware_bill_model->isUpdate(true, $where_tableware_bill)->save($data_tableware_bill); echo(__('发送成功')); } } } /** * 积分清零 */ public function ScoreClear() { $score_clear_date = config('site.score_clear_date'); if (empty($score_clear_date)) { $this->success('score_clear_date is null!'); } $score_clear_int = strtotime($score_clear_date); // 函数将日期转换为时间戳; $clear_date = date('m-d', $score_clear_int); // today $now_date = date('m-d', time()); if ($clear_date != $now_date) { $this->success('not clear date!'); } $user_model = new User(); // $user_model->where('id','>',0)->update(['score'=>0]); $users = $user_model->field('id,score,username')->where('score', '>', 0)->select(); if (count($users) == 0) { $this->success('无操作数据'); } $insert_list = []; $user_ids = []; foreach ($users as $v) { $insert_list[] = [ 'user_id' => $v['id'], 'username' => $v['username'], 'number' => $v['score'], 'type' => 3, 'desc' => '程序清零', ]; $user_ids[] = $v['id']; } Db::startTrans(); try { // 添加记录 $user_score_model = new Userscore(); $user_score_model->saveAll($insert_list); // 清空积分 $where_user_ids['id'] = ['in', $user_ids]; $user_model->where('id', 'in', $user_ids)->update(['score' => 0, 'updatetime' => time()]); Db::commit(); } catch (\Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('ok'); } }