|
@@ -13,6 +13,35 @@ use app\admin\model\Menu;
|
|
*/
|
|
*/
|
|
class MenuApi {
|
|
class MenuApi {
|
|
|
|
|
|
|
|
+ public static function getOne($id) {
|
|
|
|
+ $where = [];
|
|
|
|
+ $where[] = ["t1.id", "=", $id];
|
|
|
|
+ $where[] = ["t1.delete", "=", 0];
|
|
|
|
+ $menu = Menu::alias("t1")->leftJoin("sys_menu t2", "t1.pcode=t2.code")->field("t1.*,if(t2.code is null,'顶级',t2.name) as pcodeName,t2.id as pid")->where($where)->findOrEmpty();
|
|
|
|
+ return $menu;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static function getOneByCode($code) {
|
|
|
|
+ $where = [];
|
|
|
|
+ $where[] = ["code", "=", $code];
|
|
|
|
+ $where[] = ["delete", "=", 0];
|
|
|
|
+ $menu = Menu::where($where)->findOrEmpty();
|
|
|
|
+ return $menu;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static function getList($params = []) {
|
|
|
|
+ $where = [];
|
|
|
|
+ $where[] = ["delete", "=", 0];
|
|
|
|
+ if ($params["menuName"]) {
|
|
|
|
+ $where[] = ["name", "like", "%" . $params["menuName"] . "%"];
|
|
|
|
+ }
|
|
|
|
+ if ($params["level"]) {
|
|
|
|
+ $where[] = ["levels", "=", $params["level"]];
|
|
|
|
+ }
|
|
|
|
+ $list = Menu::where($where)->order("num asc")->select()->toArray();
|
|
|
|
+ return $list;
|
|
|
|
+ }
|
|
|
|
+
|
|
public static function getMenuIdsByNewUrls(array $urls) {
|
|
public static function getMenuIdsByNewUrls(array $urls) {
|
|
$where = [];
|
|
$where = [];
|
|
$where[] = ["new_url", "in", $urls];
|
|
$where[] = ["new_url", "in", $urls];
|
|
@@ -25,15 +54,17 @@ class MenuApi {
|
|
$data["name"] = $params["name"];
|
|
$data["name"] = $params["name"];
|
|
$data["new_url"] = $params["url"];
|
|
$data["new_url"] = $params["url"];
|
|
$data["code"] = $params["code"];
|
|
$data["code"] = $params["code"];
|
|
- $data["pcode"] = $params["pcode"];
|
|
|
|
$data["num"] = $params["num"];
|
|
$data["num"] = $params["num"];
|
|
$data["icon"] = $params["icon"];
|
|
$data["icon"] = $params["icon"];
|
|
$data["ismenu"] = $params["ismenu"];
|
|
$data["ismenu"] = $params["ismenu"];
|
|
- $pcode = $params["pcode"];
|
|
|
|
|
|
+ $data["status"] = $params["status"] ?: 1;
|
|
$tmp = [];
|
|
$tmp = [];
|
|
- while($pcode != "0"){
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ $parent = self::getOne($params["pcode"]);
|
|
|
|
+ $data["pcode"] = $parent["code"] ?: 0;
|
|
|
|
+ $_pcodes = array_filter(explode(",", $parent["pcodes"]));
|
|
|
|
+ $_pcodes[] = "[" . $data["pcode"] . "]";
|
|
|
|
+ $data["pcodes"] = implode(",", $_pcodes);
|
|
|
|
+ $data["levels"] = count($_pcodes);
|
|
if ($params["id"]) {
|
|
if ($params["id"]) {
|
|
$data["id"] = $params["id"];
|
|
$data["id"] = $params["id"];
|
|
return Menu::update($data);
|
|
return Menu::update($data);
|
|
@@ -41,6 +72,12 @@ class MenuApi {
|
|
return Menu::insert($data);
|
|
return Menu::insert($data);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static function delete($id) {
|
|
|
|
+ $data["id"] = $id;
|
|
|
|
+ $data["delete"] = 1;
|
|
|
|
+ return Menu::update($data);
|
|
|
|
+ }
|
|
|
|
+
|
|
public static function getAllMenus($fields = "*") {
|
|
public static function getAllMenus($fields = "*") {
|
|
$where[] = ["status", "=", 1];
|
|
$where[] = ["status", "=", 1];
|
|
$where[] = ["delete", "=", 0];
|
|
$where[] = ["delete", "=", 0];
|