package service import ( "fmt" "gin-vue-admin/global" "gin-vue-admin/model" "gin-vue-admin/utils" ) func GetVcode(userId, mocId int) string { code := "" sqlStr := "SELECT code FROM vcode WHERE user_id = ? and moc_id = ? " global.GVA_DB.Raw(sqlStr, userId, mocId).Find(&code) if global.GVA_DB.Error != nil { fmt.Println(global.GVA_DB.Error) return code } if code != "" { return code } code = createCode() IpaddrData := model.Vcode{ UserId: userId, MocId: mocId, Code: code, } global.GVA_DB.Table("vcode").Create(&IpaddrData) return code } func createCode() string { code := utils.GetRandStr2() cid := 0 sqlStr := "SELECT count(code) as cid FROM vcode WHERE code = ? " global.GVA_DB.Raw(sqlStr, code).Find(&cid) if global.GVA_DB.Error != nil { fmt.Println(global.GVA_DB.Error) return code } if cid == 0 { return code } return createCode() } func GetIdByCode(code string) model.Vcode { data := new(model.Vcode) sqlStr := "SELECT user_id, moc_id, code FROM vcode WHERE code = ? " global.GVA_DB.Raw(sqlStr, code).Find(&data) if global.GVA_DB.Error != nil { fmt.Println(global.GVA_DB.Error) return model.Vcode{} } return *data } func GetVcodeList(mocId int) map[int]string { data := make([]model.Vcode, 0) sqlStr := "SELECT code, user_id FROM vcode WHERE moc_id = ? " global.GVA_DB.Raw(sqlStr, mocId).Find(&data) if global.GVA_DB.Error != nil { fmt.Println(global.GVA_DB.Error) return map[int]string{} } reply := make(map[int]string, 0) for _, v := range data { reply[v.UserId] = v.Code } return reply }