123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- package blocked
- import (
- "encoding/json"
- "fmt"
- "strconv"
- "go-common/app/admin/main/credit/model"
- "go-common/library/log"
- xtime "go-common/library/time"
- )
- // const info
- const (
- // info publish_status
- StatusClose = int8(0) // 案件关闭状态
- StatusOpen = int8(1) // 案件公开状态
- // info block_type
- PunishBlock = 0 // 系统封禁
- PunishJury = 1 // 风纪仲裁
- // punish type.
- PunishTypeMoral = int8(1) // 节操
- PunishTypeBlockTime = int8(2) // 封禁
- PunishTypeBlockForever = int8(3) // 永久封禁
- // info status.
- BlockStateOpen = int8(0) // 未解禁
- BlockStateClose = int8(1) // 已解禁
- )
- // var info
- var (
- PStatusDesc = map[int8]string{
- StatusClose: "不公开",
- StatusOpen: "公开",
- }
- BTypeDesc = map[int8]string{
- PunishBlock: "系统封禁",
- PunishJury: "风纪仲裁",
- }
- )
- // Info is blocked_info model.
- type Info struct {
- ID int64 `gorm:"column:id" json:"id"`
- UID int64 `gorm:"column:uid" json:"uid"`
- UName string `gorm:"column:uname" json:"uname"`
- Status int8 `gorm:"column:status" json:"status"`
- OriginTitle string `gorm:"column:origin_title" json:"origin_title"`
- OriginURL string `gorm:"column:origin_url" json:"origin_url"`
- OriginContent string `gorm:"column:origin_content" json:"origin_content"`
- OriginContentModify string `gorm:"column:origin_content_modify" json:"origin_content_modify"`
- OriginType int8 `gorm:"column:origin_type" json:"origin_type"`
- BlockedDays int `gorm:"column:blocked_days" json:"blocked_days"`
- BlockedForever int8 `gorm:"column:blocked_forever" json:"blocked_forever"`
- BlockedType int8 `gorm:"column:blocked_type" json:"blocked_type"`
- BlockedRemark string `gorm:"column:blocked_remark" json:"blocked_remark"`
- CaseID int64 `gorm:"column:case_id" json:"case_id"`
- MoralNum int `gorm:"column:moral_num" json:"moral_num"`
- ReasonType int8 `gorm:"column:reason_type" json:"reason_type"`
- PublishStatus int8 `gorm:"column:publish_status" json:"publish_status"`
- PunishType int8 `gorm:"column:punish_type" json:"punish_type"`
- PunishTime xtime.Time `gorm:"column:punish_time" json:"punish_time"`
- PublishTime xtime.Time `gorm:"column:publish_time" json:"publish_time"`
- OperID int64 `gorm:"column:oper_id" json:"oper_id"`
- CTime xtime.Time `gorm:"column:ctime" json:"ctime"`
- MTime xtime.Time `gorm:"column:mtime" json:"mtime"`
- PublishStatusDesc string `gorm:"-" json:"publish_status_desc"`
- OriginTypeDesc string `gorm:"-" json:"origin_type_desc"`
- BlockedTypeDesc string `gorm:"-" json:"blocked_type_desc"`
- BlockedDaysDesc string `gorm:"-" json:"blocked_days_desc"`
- ReasonTypeDesc string `gorm:"-" json:"reason_type_desc"`
- OPName string `gorm:"-" json:"oname"`
- OOPName string `gorm:"column:operator_name" json:"-"`
- }
- // InfoList is info list.
- type InfoList struct {
- IDs []int64
- List []*Info
- }
- // InfoDesc is Info_desc model.
- type InfoDesc struct {
- ID string `json:"id"`
- PunishTime string `json:"punish_time"`
- OriginTypeDesc string `json:"origin_type_desc"`
- ReasonTypeDesc string `json:"reason_type_desc"`
- PublishStatusDesc string `json:"publish_status_desc"`
- BlockedTypeDesc string `json:"blocked_type_desc"`
- OriginContent string `json:"origin_content"`
- BlockedDaysDesc string `json:"blocked_days_desc"`
- UName string `json:"uname"`
- UID string `json:"uid"`
- OPName string `json:"oname"`
- }
- // TableName Info tablename
- func (*Info) TableName() string {
- return "blocked_info"
- }
- // DealInfo deal with info data.
- func DealInfo(infos []*Info) (data [][]string, err error) {
- var infoDescs []*InfoDesc
- for _, v := range infos {
- infoDesc := &InfoDesc{
- ID: strconv.FormatInt(v.ID, 10),
- PunishTime: v.PunishTime.Time().Format(model.TimeFormatSec),
- OriginTypeDesc: v.OriginTypeDesc,
- PublishStatusDesc: v.PublishStatusDesc,
- BlockedTypeDesc: v.BlockedTypeDesc,
- ReasonTypeDesc: v.ReasonTypeDesc,
- OriginContent: v.OriginContent,
- BlockedDaysDesc: v.BlockedDaysDesc,
- UName: v.UName,
- UID: strconv.FormatInt(v.UID, 10),
- OPName: v.OPName,
- }
- infoDescs = append(infoDescs, infoDesc)
- }
- infoMap, _ := json.Marshal(infoDescs)
- var objmap []map[string]string
- if err = json.Unmarshal(infoMap, &objmap); err != nil {
- log.Error("Unmarshal(%s) error(%v)", string(infoMap), err)
- return
- }
- data = append(data, []string{"ID", "惩罚时间", "类型", "状态", "封禁类型", "理由类型", "原文概要", "处罚结果", "用户", "用户ID", "操作者"})
- for _, v := range objmap {
- var fields []string
- fields = append(fields, v["id"])
- fields = append(fields, v["punish_time"])
- fields = append(fields, v["origin_type_desc"])
- fields = append(fields, v["publish_status_desc"])
- fields = append(fields, v["blocked_type_desc"])
- fields = append(fields, v["reason_type_desc"])
- fields = append(fields, v["origin_content"])
- fields = append(fields, v["blocked_days_desc"])
- fields = append(fields, v["uname"])
- fields = append(fields, v["uid"])
- fields = append(fields, v["oname"])
- data = append(data, fields)
- }
- return
- }
- // BDaysDesc is blocked_days_desc.
- func BDaysDesc(bDays, moralNum int, pType, bForever int8) string {
- switch {
- case pType == PunishTypeMoral:
- return fmt.Sprintf(blockedDesc[BlockMoralNum], moralNum)
- case bDays == BlockForever && bForever == OnBlockedForever:
- return blockedDesc[BlockForever]
- case pType == PunishTypeBlockTime:
- if bDays == BlockThree || bDays == BlockSeven || bDays == BlockFifteen {
- return blockedDesc[bDays]
- }
- return strconv.Itoa(bDays) + blockedDesc[BlockCustom]
- }
- return ""
- }
|