|
@@ -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
|
|
|
}
|