123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package leader
- import (
- "strings"
- "zhiyuan/pkg/app"
- adminParam "zhiyuan/pkg/param/admin"
- "zhiyuan/pkg/utils"
- "zhiyuan/services/admin"
- "zhiyuan/services/aftersale/supervisor"
- "zhiyuan/services/dept"
- "zhiyuan/services/form"
- "zhiyuan/services/role"
- "github.com/gin-gonic/gin"
- )
- func SupervisorList(c *gin.Context) {
- type SupervisorList struct {
- ID int `json:"id"`
- UserName string `json:"username"`
- Phone string `json:"phone"`
- RoleIds string `json:"role_ids"`
- RoleNames string `json:"role_names"`
- }
- adminInfo := admin.GetAdminCache(c.GetInt("adminID"))
- supervisorList := make([]*SupervisorList, 0)
- if adminInfo.DeptID == 24 {
- dept.GetSubDeptIds(1, []int{})
- }
- where := map[string]string{
- "where": " deleted_at=0",
- "_order_by": "id desc",
- }
- param := make(map[string]interface{})
- if adminInfo.DeptID != 24 {
- where["where"] = where["where"] + " AND dept_id IN {{dept_id}}"
- param["dept_id"] = []int{adminInfo.DeptID, 24}
- }
- where["where"] = where["where"] + " AND FIND_IN_SET({{role_id}}, role_ids)"
- param["role_id"] = adminParam.SupervisorRoleId
- // site_id
- if adminInfo := admin.GetAdminCache(c.GetInt("adminID")); adminInfo.SiteID > 0 {
- where["where"] += " AND (site_id={{site_id}} or site_id=0)"
- param["site_id"] = adminInfo.SiteID
- }
- if _, err := supervisor.GetList(where, param, &supervisorList); err != nil {
- app.Error(c, err.Error())
- return
- }
- // get role name
- roleListMap := make(map[int]string)
- if roleList, err := role.GetList(nil, []string{"id, name"}, app.Page{}, nil); err == nil {
- for _, v := range roleList {
- roleListMap[v.ID] = v.Name
- }
- }
- for k, v := range supervisorList {
- roleNames := ""
- roleSlice := strings.Split(v.RoleIds, ",")
- for _, vv := range roleSlice {
- roleNames += "," + roleListMap[utils.ToInt(vv)]
- }
- v.RoleNames = strings.TrimLeft(roleNames, ",")
- supervisorList[k] = v
- }
- app.Success(c, supervisorList)
- }
- func SupervisorEdit(c *gin.Context) {
- id := utils.StrTo(c.Param("id")).MustInt()
- if id <= 0 {
- app.Error(c, "supervisor id must be a number")
- return
- }
- var form form.SupervisorAdd
- if app.Bind(c, &form) != nil {
- return
- }
- form.AdminID = c.GetInt("adminID")
- if err := supervisor.Edit(form, id); err != nil {
- app.ErrorMsg(c, err.Error(), nil)
- return
- }
- app.Success(c, nil)
- }
- func SupervisorAdd(c *gin.Context) {
- var form form.SupervisorAdd
- if app.Bind(c, &form) != nil {
- return
- }
- form.AdminID = c.GetInt("adminID")
- supervisorID, err := supervisor.Add(form)
- if err != nil {
- app.ErrorMsg(c, err.Error(), nil)
- return
- }
- app.Success(c, gin.H{"supervisor_id": supervisorID})
- }
|