123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- package http
- import (
- "bytes"
- "encoding/csv"
- "fmt"
- "strconv"
- "go-common/app/admin/main/member/model"
- "go-common/library/ecode"
- bm "go-common/library/net/http/blademaster"
- )
- func officials(ctx *bm.Context) {
- arg := &model.ArgOfficial{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- if arg.Pn <= 0 {
- arg.Pn = 1
- }
- if arg.Ps <= 0 {
- arg.Ps = 10
- }
- os, total, err := svc.Officials(ctx, arg)
- if err != nil {
- ctx.JSON(nil, err)
- return
- }
- res := map[string]interface{}{
- "officials": os,
- "page": map[string]int{
- "num": arg.Pn,
- "size": arg.Ps,
- "total": total,
- },
- }
- ctx.JSON(res, nil)
- }
- func officialsExcel(ctx *bm.Context) {
- arg := &model.ArgOfficial{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- if arg.Pn <= 0 {
- arg.Pn = 1
- }
- if arg.Ps <= 0 {
- arg.Ps = 10
- }
- os, _, err := svc.Officials(ctx, arg)
- if err != nil {
- ctx.JSON(nil, err)
- return
- }
- data := make([][]string, 0, len(os))
- data = append(data, []string{"完成认证时间", "用户ID", "昵称", "认证类型", "认证称号", "称号后缀"})
- for _, of := range os {
- fields := []string{
- of.CTime.Time().Format("2006-01-02 15:04:05"),
- strconv.FormatInt(of.Mid, 10),
- of.Name,
- model.OfficialRoleName(of.Role),
- of.Title,
- of.Desc,
- }
- data = append(data, fields)
- }
- buf := bytes.NewBuffer(nil)
- w := csv.NewWriter(buf)
- for _, record := range data {
- if err := w.Write(record); err != nil {
- ctx.JSON(nil, err)
- return
- }
- }
- w.Flush()
- res := buf.Bytes()
- ctx.Writer.Header().Set("Content-Type", "application/csv")
- ctx.Writer.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s.csv", "官方认证名单"))
- ctx.Writer.Write([]byte("\xEF\xBB\xBF")) // 写 UTF-8 的 BOM 头,别删,删了客服就找上门了
- ctx.Writer.Write(res)
- }
- func officialDocs(ctx *bm.Context) {
- arg := &model.ArgOfficialDoc{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- if arg.Pn <= 0 {
- arg.Pn = 1
- }
- if arg.Ps <= 0 {
- arg.Ps = 10
- }
- ods, total, err := svc.OfficialDocs(ctx, arg)
- if err != nil {
- ctx.JSON(nil, err)
- return
- }
- res := map[string]interface{}{
- "officials": ods,
- "page": map[string]int{
- "num": arg.Pn,
- "size": arg.Ps,
- "total": total,
- },
- }
- ctx.JSON(res, nil)
- }
- func officialDocsExcel(ctx *bm.Context) {
- arg := &model.ArgOfficialDoc{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- if arg.Pn <= 0 {
- arg.Pn = 1
- }
- if arg.Ps <= 0 {
- arg.Ps = 10
- }
- ods, _, err := svc.OfficialDocs(ctx, arg)
- if err != nil {
- ctx.JSON(nil, err)
- return
- }
- data := make([][]string, 0, len(ods))
- data = append(data, []string{"申请时间", "认证类型", "用户ID", "用户昵称", "审核状态", "认证称号", "称号后缀", "操作人"})
- for _, od := range ods {
- fields := []string{
- od.CTime.Time().Format("2006-01-02 15:04:05"),
- model.OfficialRoleName(od.Role),
- strconv.FormatInt(od.Mid, 10),
- od.Name,
- model.OfficialStateName(od.State),
- od.Title,
- od.Desc,
- od.Uname,
- }
- data = append(data, fields)
- }
- buf := bytes.NewBuffer(nil)
- w := csv.NewWriter(buf)
- for _, record := range data {
- if err := w.Write(record); err != nil {
- ctx.JSON(nil, err)
- return
- }
- }
- w.Flush()
- res := buf.Bytes()
- ctx.Writer.Header().Set("Content-Type", "application/csv")
- ctx.Writer.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s.csv", "官方认证审核记录"))
- ctx.Writer.Write([]byte("\xEF\xBB\xBF")) // 写 UTF-8 的 BOM 头,别删,删了客服就找上门了
- ctx.Writer.Write(res)
- }
- func officialDoc(ctx *bm.Context) {
- arg := &model.ArgMid{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- od, logs, block, spys, rn, sameCreditCodeMids, err := svc.OfficialDoc(ctx, arg.Mid)
- if err != nil {
- ctx.JSON(nil, err)
- return
- }
- res := map[string]interface{}{
- "official": od,
- "logs": logs.Result,
- "block": block,
- "spys": spys,
- "realname": rn,
- "same_credit_code_mids": sameCreditCodeMids,
- }
- ctx.JSON(res, nil)
- }
- func officialDocAudit(ctx *bm.Context) {
- arg := &model.ArgOfficialAudit{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- if arg.State == model.OfficialStateNoPass && arg.Reason == "" {
- ctx.JSON(nil, ecode.RequestErr)
- return
- }
- if arg.Source != "" {
- arg.Reason = fmt.Sprintf("%s(来源:%s)", arg.Reason, arg.Source)
- }
- ctx.JSON(nil, svc.OfficialDocAudit(ctx, arg))
- }
- func officialDocEdit(ctx *bm.Context) {
- arg := &model.ArgOfficialEdit{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- ctx.JSON(nil, svc.OfficialDocEdit(ctx, arg))
- }
- func officialDocSubmit(ctx *bm.Context) {
- arg := &model.ArgOfficialSubmit{}
- if err := ctx.Bind(arg); err != nil {
- return
- }
- ctx.JSON(nil, svc.OfficialDocSubmit(ctx, arg))
- }
|