You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

142 lines
2.9 KiB

package user
import (
"recook/internal/back"
"recook/internal/dbc"
"recook/internal/model/manage"
"recook/tools"
"strconv"
"strings"
"github.com/gin-gonic/gin"
)
// 员工列表
func List(c *gin.Context) {
var l []manage.UserInfo
dbc.DB.Model(&l).Select("goods_type ,id ,is_del ,name ,mobile ,role ,role_id ,role_name ,user_name ,user_id, login_time, updated_at, newrole_id").Scan(&l)
rolMap := make(map[uint]manage.Role)
for key, _info := range l {
if _info.RoleID == 0 {
continue
}
if rolMap[_info.RoleID].ID == 0 {
role := manage.Role{}
dbc.DB.Where("id = ?", _info.RoleID).First(&role)
rolMap[_info.RoleID] = role
}
strArray := StrToArr(rolMap[_info.RoleID].Code, ",")
for _, _str := range strArray {
if _str == "goodsSetting_goods_cg" {
l[key].IsCg = 1
}
}
//获取新的角色名称
}
back.Suc(c, "操作成功", l)
}
/***
字符串转数组
*/
func StrToArr(str, partition string) []string {
formatStr := []rune(str)
//allStr := ","
var returnStr []string
j := 0
for i := 0; i < len(formatStr); i++ {
strIndex := strings.Index(partition, string(formatStr[i]))
if strIndex >= 0 {
j++
continue
}
char := ""
if len(returnStr)-1 == j {
char = returnStr[j]
} else {
char = ""
returnStr = append(returnStr, "")
}
if len(returnStr)-1 < j {
j = len(returnStr) - 1
}
returnStr[j] = char + string(formatStr[i])
}
return returnStr
}
type RoleInfo struct {
Name string `json:"name"`
ID uint `json:"id"`
Authority []Authority `json:"authority"`
}
type Authority struct {
ID int `json:"id"`
Name string `json:"name"`
Code string `json:"code"`
PrintID int64 `json:"print_id"`
}
func UpdateGoods(c *gin.Context) {
var p RoleInfo
err := tools.Params(&p, c)
if err != nil {
back.Fail(c, err.Error())
return
}
code := ""
for key, info := range p.Authority {
if key == 0 {
code += strconv.Itoa(info.ID)
} else {
code += "," + strconv.Itoa(info.ID)
}
}
l := manage.UserInfo{}
dbc.DB.Where("id = ?", p.ID).First(&l)
if l.ID == 0 {
back.Fail(c, "用户不存在")
return
}
if err := dbc.DB.Model(manage.UserInfo{}).Where("id = ?", p.ID).Updates(manage.UserInfo{
GoodsType: code,
}).Error; err != nil {
back.Err(c, err.Error())
return
}
back.Suc(c, "", nil)
}
type argsVends struct {
Id uint `json:"id" form:"id"`
VendIds []int `json:"vendIds" form:"vendIds"`
}
func UpdateVend(c *gin.Context) {
var args argsVends
err := tools.Params(&args, c)
if err != nil {
back.Fail(c, err.Error())
return
}
vendsList := ""
for _, vendId := range args.VendIds {
vendsList += "," + strconv.Itoa(vendId)
}
if vendsList != "" {
vendsList = vendsList[1:]
}
if err := dbc.DB.Model(manage.UserInfo{}).Where("id = ?", args.Id).Updates(manage.UserInfo{
VendsList: vendsList,
}).Error; err != nil {
back.Err(c, err.Error())
return
}
back.Suc(c, "", nil)
}