Browse Source

feat:常用功能更新

wangshan 3 năm trước cách đây
mục cha
commit
852d19f173
2 tập tin đã thay đổi với 24 bổ sung49 xóa
  1. 24 49
      entity/workDesktop.go
  2. BIN
      rpc/rpc.exe

+ 24 - 49
entity/workDesktop.go

@@ -2,8 +2,8 @@ package entity
 
 import (
 	MC "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/encrypt"
 	"database/sql"
-	"fmt"
 	"github.com/zeromicro/go-zero/core/logx"
 	"sort"
 	"strings"
@@ -220,59 +220,34 @@ var (
 //更新常用功能
 func CommonlyUpdate(in *pb.WorkDesktopComprehensiveReq) (B bool, M string) {
 	//事务  1:查; 2: 存;3: 删;
-	//此功能是否需要验证权限
-	var parametersSelect []string
-	var idsSelect []interface{}
+	var ids []string
 	for _, mid := range strings.Split(in.MenuIds, ",") {
-		parametersSelect = append(parametersSelect, "?")
-		idsSelect = append(idsSelect, mid)
+		//id 解密
+		ids = append(ids, encrypt.SE.DecodeString(mid))
 	}
-	menuSelectData := BaseMysql.SelectBySql(fmt.Sprintf(`SELECT id,powerids from %s WHERE  id IN (%s) AND status = 0`, WorkMenu, strings.Join(parametersSelect, ",")), idsSelect...)
-	if menuSelectData != nil && len(*menuSelectData) > 0 {
-		var powerIdsMap = map[int]int{} //2:需要权限;1:不需要权限
-		for _, mv := range *menuSelectData {
-			if MC.IntAll(mv["id"]) == 0 {
-				continue
-			}
-			powerIdsMap[MC.IntAll(mv["id"])] = MC.If(MC.ObjToString(mv["powerids"]) != "", 2, 1).(int)
+	//更新此用户设置的常用功能
+	if B = BaseMysql.ExecTx("常用功能批量更新", func(tx *sql.Tx) bool {
+		//查询此用户常用功能是否已存在记录
+		var id = 0
+		existingData := BaseMysql.SelectBySqlByTx(tx, `SELECT id  FROM `+WorkCommonly+` WHERE userid = ? AND appid = ? AND field = ? AND platform = ?  ORDER BY id DESC `, in.UserId, in.AppId, in.ActionMode, in.Platform)
+		if existingData != nil && len(*existingData) > 0 {
+			id = MC.IntAll((*existingData)[0]["id"])
 		}
-		if powerIdsMap != nil {
-			//此处需要事务
-			if B = BaseMysql.ExecTx("常用功能批量更新", func(tx *sql.Tx) bool {
-				//查
-				var delId = 0
-				existingData := BaseMysql.SelectBySql(`SELECT id,value  FROM `+WorkCommonly+` WHERE userid = ? AND appid = ? AND field = ? AND platform = ?  ORDER BY id DESC `, in.UserId, in.AppId, in.ActionMode, in.Platform)
-				if existingData != nil && len(*existingData) > 0 {
-					delId = MC.IntAll((*existingData)[0]["id"])
-				}
-				//先保存
-				var insertValue []interface{}
-				for id, checkCode := range powerIdsMap {
-					insertValue = append(insertValue, in.AppId, in.UserId, in.Platform, in.ActionMode, fmt.Sprint(id), checkCode > 1)
-				}
-				if len(insertValue)/len(InsertCollKey) > 0 {
-					x, _ := BaseMysql.InsertBatchByTx(tx, WorkCommonly, InsertCollKey, insertValue)
-					if x < 0 {
-						logx.Info("常用功能更新数据处理异常")
-						return false
-					}
-				}
-				//再删除
-				if delId > 0 {
-					if BaseMysql.UpdateOrDeleteBySqlByTx(tx, `DELETE  FROM `+WorkCommonly+` WHERE userid = ? AND field = ? AND id <= ? AND platform = ? `, in.UserId, in.ActionMode, delId, in.Platform) < 0 {
-						logx.Info("常用功能删除数据处理异常")
-						return false
-					}
-				}
-				return true
-			}); !B {
-				M = "常用功能批量更新数据失败"
+		switch {
+		case id > 0: //更新
+			if BaseMysql.UpdateOrDeleteBySqlByTx(tx, `UPDATE `+WorkCommonly+` SET value = ?  WHERE id = ?`, strings.Join(ids, ","), id) < 0 {
+				logx.Info("常用功能-更新数据失败")
+				return false
+			}
+		default: //插入
+			if BaseMysql.InsertBySqlByTx(tx, `INSERT INTO work_commonly  (appid,userid,platform,field,value) VALUES (?,?,?,?,?)`, in.AppId, in.UserId, in.Platform, in.ActionMode, strings.Join(ids, ",")) < 0 {
+				logx.Info("常用功能-插入数据失败")
+				return false
 			}
-		} else {
-			M = "暂无此常用功能"
 		}
-	} else {
-		M = "常用功能查询异常"
+		return true
+	}); !B {
+		M = "常用功能更新数据失败"
 	}
 	return
 }

BIN
rpc/rpc.exe