Ver código fonte

Merge branch 'bzq/306_report_classify' of eta_gn_server/eta_report into debug

baoziqiang 4 meses atrás
pai
commit
88ebb986de
6 arquivos alterados com 69 adições e 104 exclusões
  1. 38 1
      controllers/report_open.go
  2. 0 3
      go.sum
  3. 23 0
      models/classify_visible.go
  4. 6 0
      models/sys_admin.go
  5. 2 54
      utils/common.go
  6. 0 46
      utils/constants.go

+ 38 - 1
controllers/report_open.go

@@ -20,6 +20,7 @@ type ReportOpenController struct {
 // @Title 报告分类
 // @Description 报告分类接口
 // @Param   ClassifyType   query   int   false   "分类类型:0-全部(不传默认为0);1-研报;2-PPT"
+// @Param   OutId   query   string   false   "用户工号Id"
 // @Success 200 {object} models.ClassifyTreeItem
 // @router /report/classify [get]
 func (this *ReportOpenController) ClassifyTree() {
@@ -32,6 +33,7 @@ func (this *ReportOpenController) ClassifyTree() {
 		this.ServeJSON()
 	}()
 	classifyType, _ := this.GetInt("ClassifyType", 0)
+	outId := this.GetString("OutId")
 	if classifyType < 0 || classifyType > 2 {
 		classifyType = 0
 	}
@@ -44,12 +46,47 @@ func (this *ReportOpenController) ClassifyTree() {
 		cond += ` AND classify_type = ?`
 		pars = append(pars, classifyType)
 	}
-	list, e := classifyOb.GetItemsByCondition(cond, pars, []string{}, "parent_id ASC, sort ASC, create_time ASC")
+	classifyList, e := classifyOb.GetItemsByCondition(cond, pars, []string{}, "parent_id ASC, sort ASC, create_time ASC")
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = fmt.Sprintf("获取分类列表失败,%v", e)
 		return
 	}
+
+	if outId == "" {
+		br.Msg = "工号不能为空"
+		return
+	}
+	list := make([]*models.Classify, 0)
+	classifyObj := new(models.ClassifyVisible)
+	visibleUsers, err := classifyObj.GetClassifyVisibleAll()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = fmt.Sprintf("获取可见用户失败,%v", err)
+		return
+	}
+	adminObj := new(models.Admin)
+	admin, e := adminObj.GetAdminByOutId(outId)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = fmt.Sprintf("获取管理员信息失败,%v", e)
+		return
+	}
+
+	visibleUsersMap := make(map[int][]int)
+	for _, v := range visibleUsers {
+		visibleUsersMap[v.ClassifyId] = append(visibleUsersMap[v.ClassifyId], v.AdminId)
+	}
+
+	for _, v := range classifyList {
+		if visibleUser, ok := visibleUsersMap[v.Id]; ok {
+			if !utils.InArrayByInt(visibleUser, admin.AdminId) {
+				continue
+			}
+		}
+		list = append(list, v)
+	}
+
 	resp := services.GetReportClassifyTreeRecursive(list, 0)
 
 	br.Data = resp

+ 0 - 3
go.sum

@@ -121,9 +121,6 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6/go.mod h1:n931TsDuKuq+uX4v1fulaMbA/7ZLLhjc85h7chZGBCQ=
 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/lib/pq v1.10.5 h1:J+gdV2cUmX7ZqL2B0lFcW0m+egaHC2V3lpO8nWxyYiQ=
-github.com/lib/pq v1.10.5/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
 github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=

+ 23 - 0
models/classify_visible.go

@@ -0,0 +1,23 @@
+package models
+
+import (
+	"eta_gn/eta_report/global"
+	"time"
+)
+
+type ClassifyVisible struct {
+	ClassifyVisibleId int       `gorm:"column:classify_visible_id;primary_key"`
+	ClassifyId        int       `gorm:"column:classify_id"`
+	AdminId           int       `gorm:"column:admin_id"`
+	CreateTime        time.Time `gorm:"column:create_time"`
+}
+
+func (ClassifyVisible) TableName() string {
+	return "classify_visible"
+}
+
+func (c *ClassifyVisible) GetClassifyVisibleAll() (items []*ClassifyVisible, err error) {
+	sql := "SELECT * FROM classify_visible"
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
+	return
+}

+ 6 - 0
models/sys_admin.go

@@ -52,6 +52,12 @@ func (m *Admin) TableName() string {
 	return "admin"
 }
 
+func (m *Admin) GetAdminByOutId(outId string) (item *Admin, err error) {
+	sql := fmt.Sprintf(`SELECT * FROM "admin" WHERE %s = ? LIMIT 1`, "out_id")
+	err = global.DmSQL["eta"].Raw(sql, outId).First(&item).Error
+	return
+}
+
 func (m *Admin) GetItemById(id int) (item *Admin, err error) {
 	sql := fmt.Sprintf(`SELECT * FROM "admin" WHERE %s = ? LIMIT 1`, "admin_id")
 	err = global.DmSQL["eta"].Raw(sql, id).First(&item).Error

+ 2 - 54
utils/common.go

@@ -17,7 +17,6 @@ import (
 	"math/rand"
 	"net"
 	"os"
-	"os/exec"
 	"regexp"
 	"sort"
 	"strconv"
@@ -25,13 +24,11 @@ import (
 	"time"
 )
 
-// 随机数种子
-var rnd = rand.New(rand.NewSource(time.Now().UnixNano()))
-
 func GetRandString(size int) string {
 	allLetterDigit := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "!", "@", "#", "$", "%", "^", "&", "*"}
 	randomSb := ""
 	digitSize := len(allLetterDigit)
+	rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
 	for i := 0; i < size; i++ {
 		randomSb += allLetterDigit[rnd.Intn(digitSize)]
 	}
@@ -42,6 +39,7 @@ func GetRandStringNoSpecialChar(size int) string {
 	allLetterDigit := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
 	randomSb := ""
 	digitSize := len(allLetterDigit)
+	rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
 	for i := 0; i < size; i++ {
 		randomSb += allLetterDigit[rnd.Intn(digitSize)]
 	}
@@ -74,23 +72,6 @@ func MD5(data string) string {
 	return hex.EncodeToString(m[:])
 }
 
-// 获取数字随机字符
-func GetRandDigit(n int) string {
-	return fmt.Sprintf("%0"+strconv.Itoa(n)+"d", rnd.Intn(int(math.Pow10(n))))
-}
-
-// 获取随机数
-func GetRandNumber(n int) int {
-	return rnd.Intn(n)
-}
-
-func GetRandInt(min, max int) int {
-	if min >= max || min == 0 || max == 0 {
-		return max
-	}
-	return rand.Intn(max-min) + min
-}
-
 func GetToday(format string) string {
 	today := time.Now().Format(format)
 	return today
@@ -505,39 +486,6 @@ func Sha1(data string) string {
 	return hex.EncodeToString(sha1.Sum([]byte("")))
 }
 
-func GetVideoPlaySeconds(videoPath string) (playSeconds float64, err error) {
-	cmd := `ffmpeg -i ` + videoPath + `  2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//`
-	out, err := exec.Command("bash", "-c", cmd).Output()
-	if err != nil {
-		return
-	}
-	outTimes := string(out)
-	fmt.Println("outTimes:", outTimes)
-	if outTimes != "" {
-		timeArr := strings.Split(outTimes, ":")
-		h := timeArr[0]
-		m := timeArr[1]
-		s := timeArr[2]
-		hInt, err := strconv.Atoi(h)
-		if err != nil {
-			return playSeconds, err
-		}
-
-		mInt, err := strconv.Atoi(m)
-		if err != nil {
-			return playSeconds, err
-		}
-		s = strings.Trim(s, " ")
-		s = strings.Trim(s, "\n")
-		sInt, err := strconv.ParseFloat(s, 64)
-		if err != nil {
-			return playSeconds, err
-		}
-		playSeconds = float64(hInt)*3600 + float64(mInt)*60 + float64(sInt)
-	}
-	return
-}
-
 func GetMaxTradeCode(tradeCode string) (maxTradeCode string, err error) {
 	tradeCode = strings.Replace(tradeCode, "W", "", -1)
 	tradeCode = strings.Trim(tradeCode, " ")

+ 0 - 46
utils/constants.go

@@ -1,9 +1,5 @@
 package utils
 
-const (
-	Md5Key = "Ks@h64WJ#tcVgG8$&WlNfqvLAtMgpxWN"
-)
-
 // 常量定义
 const (
 	FormatTime            = "15:04:05"                //时间格式
@@ -31,53 +27,11 @@ const (
 	RegularEmail  = `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*`                                             //匹配电子邮箱
 )
 
-// 验证码code
-const (
-	REGISTER_CODE = iota + 1 //注册
-	LOGIN_CODE               //登录
-)
-
-// 聚合短信
-var (
-	JhGnTplId = "65692" //聚合国内模板编码
-	JhGjTplId = "10054" //聚合国内模板编码
-
-	JhGnAppKey = "4c8504c49dd335e99cfd7b6a3a9e2415" //聚合国内AppKey
-	JhGjAppKey = "3326ad2c1047a4cd92ace153e6044ca3"
-)
-
-// 科大讯飞--语音合成
-const (
-	XfSTATUS_FIRST_FRAME    = 0 //第一帧标识
-	XfSTATUS_CONTINUE_FRAME = 1 //中间帧标识
-	XfSTATUS_LAST_FRAME     = 2 //最后一帧标识
-	XfAPPID                 = "5ed70e9d"
-	XfAPIKey                = "d580509ca262e9586fb65a7064d5ce77"
-	XfAPISecret             = "a085720dc55850c720fa5576335f847a"
-	XfHostUrl               = "wss://tts-api.xfyun.cn/v2/tts"
-	XfOrigin                = "http://tts-api.xfyun.cn/"
-	XfHost                  = "tts-api.xfyun.cn"
-)
-
-// 客户状态
-const (
-	COMPANY_STATUS_TRY_OUT   = "试用"
-	COMPANY_STATUS_FOREVER   = "永续"
-	COMPANY_STATUS_FREEZE    = "冻结"
-	COMPANY_STATUS_LOSE      = "流失"
-	COMPANY_STATUS_FORMAL    = "正式"
-	COMPANY_STATUS_POTENTIAL = "潜在"
-)
-
 // 缓存key
 const (
 	CACHE_KEY_USER_VIEW = "user_view_record" //用户阅读数据
 )
 
-const (
-	key = "KcSJaJoUBC2ZAA7HEWpaiH49" //全局加密KEY
-)
-
 const (
 	CACHE_CREATE_REPORT_IMGPDF_QUEUE = "eta_report:report_img_pdf_queue" // 生成报告长图PDF队列
 )