post = $this->request->post('',null,'trim'); if (!in_array($this->request->pathinfo(), $this->white)&&!in_array("*", $this->white)) $this->validateToken(); } public function validateToken() { //这个地方不能用return json_show()方法,无法阻止代码继续执行 $token = isset($this->post['token']) ? trim($this->post['token']) : ""; $companyNo = isset($this->post['relaComNo']) ? trim($this->post['relaComNo']) : ""; if($token==""){ return error_show(101,"参数token不能为空"); } $effetc = VerifyTokens($token); if(!empty($effetc) && $effetc['code']!=0) { return error_show($effetc['code'], $effetc['message']); } request()->uid = $this->uid=$effetc['data']['id']??"";//request()->uid主要是为了部分未继承Base控制器的方法使用,例如Model/OrderOutChild::BratchChild request()->uname = $this->uname=$effetc['data']['nickname']??""; request()->level = $this->level = $effetc['data']['level'];//request()->level主要是为了部分未继承Base控制器的方法使用,例如Model/ProcessOrder::adddProcess $where=[]; if($companyNo!=""){ $where=["companyNo"=>$companyNo]; } if ($effetc['data']['level'] == 2) { $user_role = Db::name("user_role") ->field('id,roleid') ->where(["uid" => $this->uid, "is_del" => 0]) ->where($where) ->findOrEmpty(); if (empty($user_role)) return error_show(101, "没有该公司的默认角色"); $this->roleid=$user_role['roleid']; }else $this->roleid=1; } public function checkRole() { if($this->level==1){ return [ 'action_conllect'=>'', 'write'=>[], 'platform'=>[], 'roleid'=>$this->roleid ]; }else { $uid = Db::name("user_role")->where(['uid' => $this->uid, "is_del" => 0, "status" => 1])->find(); if ($uid == false) { return []; } $action = []; $this->roleid = $uid['roleid']; $role = Db::name("role_action")->where(["role_id" => $uid['roleid'], "status" => 1])->json(["action_conllect"])->find(); $action['action_conllect'] = isset($role['action_conllect']) ? implode(",", $role['action_conllect']) :""; $action['write'][] = $this->uid; $group = []; $group = Db::name("role_group")->where("FIND_IN_SET($this->uid,group_user) > 0")->column("id"); $where = "to_user=$this->uid"; if (!empty($group)) { $where .= " or to_group in (" . implode(",", $group) . ")"; } $paltform = Db::name("user_platform")->where(["uid" => $this->uid, "is_del" => 0])->find(); $action['platform'] = $paltform != false ? explode(",", $paltform['platform']) : []; $share = Db::name("role_share")->where(["is_del" => 0, "status" => 1])->where($where)->select(); if (!empty($share)) { foreach ($share as $value) { if ($value['action'] == 1) { if ($value['share_user'] != "") { $action['write'][] = $value['share_user']; $user = Db::name("user_role")->where(['uid' => $value['share_user'], "is_del" => 0, "status" => 1])->find(); if ($user != false) { $role = Db::name("role_action")->where(["role_id" => $user['roleid'], "status" => 1])->find(); if ($role != false) { $conlect = Db::name("action")->where(['menuid' => explode(",", $value['action_collect'])])->column("id"); $shar = explode(",", $value['action_collect']); $wish = array_intersect($conlect, $shar); $action['action_conllect'] .= empty($wish) ? "" : "," . implode(",", $wish); } } } } if ($value['action'] === 0) { if ($value['share_user'] != "") $action['write'][] = $value['share_user']; if ($value['action_collect'] != '') { $act = Db::name("action")->where(['menuid' => explode(",", $value['action_collect']), "action_code" => '001'])->column("id"); $action['action_conllect'] .= empty($act) ? "" : "," . implode(",", $act); } } if ($value['action'] === '') { if ($value['share_user'] != "") $action['write'][] = $value['share_user']; if ($value['action_collect'] != '') { $act = Db::name("action")->where(['menuid' => explode(",", $value['action_collect']), "action_code" => '001'])->column("id"); $action['action_conllect'] .= empty($act) ? "" : "," . implode(",", $act); } } } } //离职交接权限 $resgin = Db::name("resign_info")->where([["hand_uid", "=", $this->uid], ["is_del", "=", 0], ['status', "=", 4]]) ->column(['resign_uid']); if (!empty($resgin)) { $action['write'] = array_unique(array_merge($action['write'], $resgin)); } // 超级管理员看到所有人的数据 // if ($uid['roleid'] == 1 || $uid['roleid'] == 33) { // $action['write'] = []; // } $action['roleid'] = $uid['roleid']; $action['action_conllect'] = implode(",", array_unique(explode(",", $action['action_conllect']))); return $action; } } //用户数据权限检查 protected function checkDataShare() { if ($this->roleid == 1 || $this->roleid == 33) return [];// 超级管理员(roleid==1)和最高领导(roleid==33)能看到所有人的数据 $data = get_group_share_uid($this->uid,$this->level); /** * data[DataGroupModel::$type_全部] 0全部 * data[DataGroupModel::$type_可编辑] 1可编辑 * data[DataGroupModel::$type_只读] 2只读 */ return $data; } /** * @param $good * @param $isZx * @param string $thNo * @return mixed|string * @throws \think\Exception */ public function CheckGoodZx($good, $isZx, $thNo = '') { $spuCode = makeNo("SKU"); //查询是否存在转库存品记录 存在则返回库存编号 $newCode = Db::name("good_change_log")->where(["oldCode" => $good['spuCode']])->value("newCode", ''); if ($newCode == '') { $log = ["oldCode" => $good['spuCode'], "order_source" => $isZx, "newCode" => $spuCode, "thCode" => $thNo, "createrid" => $this->uid, "creater" => $this->uname, "addtime" => date("Y-m-d H:i:s") ]; } else { return $newCode; } if ($isZx == 1) { // $supplier = Db::name("supplier")->where(["code" => $good['supplierNo']])->findOrEmpty(); // // if (empty($supplier)) throw new \Exception('非库存商品转库存失败'); $userCommon= \app\admin\common\User::getIns(); $supplier_temp =$userCommon->handle("sInfo",["code"=>$good['supplierNo']]); if ($supplier_temp['code']!=0 || empty($supplier_temp['data'])) throw new \Exception('查不到该供应商的记录'); $personid = $supplier_temp['data']['personid']??0; $person_name = $supplier_temp['data']['person']??''; $good = [ 'spuCode' => $spuCode, 'good_code' => $good['good_code'], 'good_name' => $good['good_name'], 'cat_id' => $good['cat_id'], 'brand_id' => $good['brand_id'], 'companyNo' => $good['companyNo'], 'good_unit' => $good['good_unit'], 'good_type' => $good['good_type'], 'moq' => $good['moq'], 'customized' => $good['customized'], 'tax' => $good['tax'], 'supplierNo' => $good['supplierNo'], 'is_auth' => $good['is_auth'], 'auth_img' => $good['auth_img'], 'after_sales' => '', 'craft_desc' => $good['craft_desc'], 'good_remark' => $good['good_remark'], 'weight' => $good['weight'], 'packing_way' => '', 'packing_size' => '', 'packing_spec' => '', 'packing_list' => '', 'packing_weight' => '', 'good_bar' => '', 'supply_area' => $good['supply_area'], 'delivery_place' => '', 'origin_place' => '', 'delivery_day' => '', 'lead_time' => '', 'sample_day' => '', 'sample_fee' => '', 'good_img' => '',//$good['good_img'], 'good_thumb_img' => $good['good_thumb_img'], 'good_info_img' => $good['good_img'],//商品主图对应到商品详情 'cert_fee' => '', 'packing_fee' => '', 'cost_fee' => '', 'mark_fee' => '', 'demo_fee' => '', 'open_fee' => '', 'noble_metal' => $good['noble_metal'], 'noble_weight' => $good['good_weight'], 'is_gold_price' => $good['is_gold_price'], 'cgd_gold_price' => '', 'market_price' => '', 'nake_price' => '', 'is_step' => '', 'is_online' => '0', 'is_stock' => '1', 'status' => 7,//咨询商品待编辑 'createrid' => $good['createrid'], 'creater' => $good['creater'], 'field_change' => '', 'is_del' => 0, 'is_support_stock' => 0, 'addtime' => date('Y-m-d H:i:s'), 'updatetime' => date('Y-m-d H:i:s'), 'is_diff' => $good['is_diff'], 'config' => $good['config'], 'other_config' => $good['other_config'], 'chargerid' => $personid ?? $good['createrid'], 'charger' => $person_name ?? $good['creater'],//负责人跟创建人一致 ]; } else { $good['id'] = null; $good['spuCode'] = $spuCode; $good['is_stock'] = 1; $good['is_support_stock'] = 0; $good['status'] = 7; $good['addtime'] = date("Y-m-d H:i:s"); $good['updatetime'] = date("Y-m-d H:i:s"); } $insert = Db::name("good_basic")->insert($good, true); if ($insert == false) throw new \Exception("非库存商品转库存失败", 1005); //修改状态,添加待办 ActionLog::logAdd($this->post['token'], [ "order_code" => $newCode,//咨询单详情编号 "status" => 0,//这里的status是之前的值 "action_remark" => '非库存品退货转库存',//备注 "action_type" => "create"//新建create,编辑edit,更改状态status ], "SPCB", 7, $good); ProcessOrder::AddProcess($this->post['token'], [ "order_type" => 'SPCB', "order_code" => $newCode,//咨询单详情编号 "order_id" => $insert, "order_status" => 7, "before_status" => 0, 'holder_id' => $good['createrid'], ]); $newAdd = Db::name("good_change_log")->insert($log); if ($newAdd == false) throw new \Exception("非库存商品转库存失败", 1005); return $spuCode; } /** * @param string $message * @param int $code * @param null $data */ public function error($message='',$code=1003,$data=null){ $this->result($message,$data,$code); } /** * @param string $msg * @param null $data * @param int $code * @param string|null $type * @param array $header * @param array $options */ private function result(string $msg, $data = null, int $code = 0, string $type = 'json', array $header = [], array $options = []) { $result = [ 'code' => $code, 'message' => $msg, 'data' => $data, ]; $code = 200; if (isset($header['statuscode'])) { $code = $header['statuscode']; unset($header['statuscode']); } $response = Response::create($result, $type, $code)->header($header)->options($options); throw new HttpResponseException($response); } /** * @param string $message * @param int $code * @param null $data */ public function success($message='',$data=null,$code=0){ $this->result($message,$data,$code); } }