<?php namespace App\Model; use Illuminate\Database\Eloquent\Model; use Request; use RedisDB; class SupplierExtendModel extends Model { protected $connection='web'; protected $table='supplier_extend'; public $timestamps = false; /* * 方法作废于20200402,原因附加费改版 */ public function AddInfo($supplierID='', $supplierSn='', $data='', $isUpdate = false){ if(empty($supplierID) || empty($data) || !is_array($data)) return false; empty($data['price']) && $data['price'] = 0; empty($data['max']) && $data['max'] = 0; $charge_content[0] = [ 'max' => $data['max'], 'price' => $data['price'], ]; $charge_content_json = json_encode($charge_content); $Add['charge_content'] = $charge_content_json; if (!empty($isUpdate)) { // 编辑 $Add['update_time'] = time(); $Add['status'] = $data['status']; $res = $this->where('supplier_id','=',$supplierID)->update($Add); // 修改redis if (!empty($data['status']) && $data['status'] == '-1') { // 禁用 $charge_content_json = ''; } } else { // 新增 $Add['supplier_id'] = $supplierID; $Add['create_time'] = time(); $res = $this->insert($Add); } //redis 处理 $Redis = RedisDB::connection(); $pre = Config('fixed.SUPPLIER_REDIS_PRE'); $SUPPLIER_ID = Config('fixed.SUPPLIER_ID'); // 联营供应商ID 17 $Redis->hset($pre, $SUPPLIER_ID. '.' . $supplierSn, $charge_content_json); // 联营供应商ID是17,储存内容格式如下{"max":2000,"price":10} return $res; } public function ExtendInfo($SupplierID=''){ $collert=Request::only('supplier_id'); $collert=TrimX($collert,true,['supplier_id']); empty($collert) && $collert['supplier_id']=$SupplierID; if(empty($collert['supplier_id'])) return false; $info=$this->where('supplier_id','=',$collert['supplier_id'])->first(); if(!$info) return false;$info = $info->toArray(); if (!empty($info)) { if ($info['charge_content']) { $charge_content = json_decode($info['charge_content'], true); $info['charge_content'] = $charge_content; } } return $info ? $info : ''; } // 获取附加费信息 public function getExtendExtra($SupplierCode='', $SupplierID=''){ if(empty($SupplierCode)) return false; $Redis = new RedisModel(); $pre = Config('fixed.SUPPLIER_REDIS_PRE'); $SUPPLIER_ID = Config('fixed.SUPPLIER_ID'); // 联营供应商ID 17 $extendInfo = $Redis->hget($pre, $SUPPLIER_ID. '.' . $SupplierCode); // 联营供应商ID是17,储存内容格式如下{"max":2000,"price":10} if (empty($extendInfo)) { $charge_content = $this->select(['charge_content'])->where('supplier_id','=',$SupplierID)->where('status', '=', 1)->first(); if (!empty($charge_content)) { $charge_content = $charge_content->toArray(); $extendInfo = $charge_content['charge_content']; } if (!empty($extendInfo)) { $Redis->hset($pre, $SUPPLIER_ID. '.' . $SupplierCode, $extendInfo); } } if ($extendInfo) { $extendInfo = json_decode($extendInfo, true); } return $extendInfo ? $extendInfo : ''; } /** * 此方法废弃于20200402,原因是附加费改版 * @param string $UserInfo * @return array */ private function changeExtra($UserInfo=''){ // return [20001,'新增供应商失败']; $arr=['extra']; $collert=Request::only($arr); $collert=TrimX($collert,true,$arr); $extra = $collert['extra']; // 根据supplier_code 和supplier_id $extra['status'] = '1'; // 目前暂时皆为1启用(默认) $re = $this->select(['supplier_id'])->where('supplier_id', '=', $extra['supplier_id'])->get()->toArray(); $isUpdate = false; if (!empty($re[0]['supplier_id'])) $isUpdate = true; $FeeInfo=$this->getExtendExtra($extra['supplier_code'],$extra['supplier_id']); $res = $this->AddInfo($extra['supplier_id'], $extra['supplier_code'], $extra, $isUpdate); if ($res) { $url=Config('website.Feer_Robot_Url'); $UserModel=new UserModel(); $UserName=$UserModel->FinduserInfoName($UserInfo->userId); $RemindInfo ='附加费调整通知'."\n"; $RemindInfo .='渠道编码:'.$extra['supplier_code']."\n"; if($FeeInfo){ $RemindInfo .='原附加费:不满'.$FeeInfo['max'].'收取'.$FeeInfo['price']."运费\n"; } $RemindInfo .='新附加费:不满'.$extra['max'].'收取'.$extra['price']."运费\n"; $RemindInfo .='调整人:'.$UserName; if(config('website.data')=='http://supplier.ichunt.net') SendRobot($url,$RemindInfo); return [0,'修改成功']; } else { return [11010,'修改失败,失败原因:数据库修改更新失败']; } } public function save_change_extra($data, $supplier_code){ $data['status'] = 1; $data['update_time'] = time(); $res = $this->where('supplier_id','=',$data['supplier_id'])->update($data); if(!$res){ return false; } $this->set_change_extra_cache($supplier_code, $data['charge_content']); return true; } public function add_change_extra($data, $supplier_code){ $data['status'] = 1; $data['create_time'] = time(); $data['update_time'] = time(); $res = $this->insert($data); if(!$res){ return false; } $this->set_change_extra_cache($supplier_code, $data['charge_content']); return true; } public function set_change_extra_cache($supplier_code, $charge_content){ $Redis = new RedisModel(); $pre = Config('fixed.SUPPLIER_REDIS_PRE'); $SUPPLIER_ID = Config('fixed.SUPPLIER_ID'); // 联营供应商ID 17 // 联营供应商ID是17 $Redis->hset($pre, $SUPPLIER_ID. '.' . $supplier_code, $charge_content); return true; } }