go-common/app/admin/main/up/model/signmodel/requestargs.go
2019-04-22 18:49:16 +08:00

539 lines
15 KiB
Go

package signmodel
import (
"fmt"
"net/url"
"strings"
"time"
"go-common/app/admin/main/up/conf"
"go-common/app/admin/main/up/dao"
xtime "go-common/library/time"
)
// const .
const (
SignUpList = 0
SignUpDetail = 1
)
// -------------------------------------------------
// CommonResponse result
type CommonResponse struct {
}
// CommonArg arg
type CommonArg struct {
}
// SignUpBaseInfo struct
type SignUpBaseInfo struct {
ID int64 `json:"id"`
Name string `json:"name"`
Sex int8 `json:"sex"`
Mid int64 `json:"mid"`
BeginDate xtime.Time `json:"begin_date"`
EndDate xtime.Time `json:"end_date"`
State int8 `json:"state"`
Country string `json:"country"`
Province string `json:"province"`
City string `json:"city"`
Note string `json:"note"`
TypeName string `json:"type_name"`
ActiveTid int16 `json:"active_tid"`
AdminID int `json:"admin_id"`
AdminName string `json:"admin_name"`
CreateTime xtime.Time `json:"create_time"`
Organization int8 `json:"organization"`
SignType int8 `json:"sign_type"`
Age int8 `json:"age"`
Residence string `json:"residence"`
IDCard string `json:"id_card"`
Phone string `json:"phone"`
QQ int64 `json:"qq"`
Wechat string `json:"wechat"`
IsEconomic int8 `json:"is_economic"`
EconomicCompany string `json:"economic_company"`
EconomicBegin xtime.Time `json:"economic_begin"`
EconomicEnd xtime.Time `json:"economic_end"`
ViolationTimes int `json:"violation_times"`
LeaveTimes int `json:"leave_times"`
}
// CopyTo copy
func (s *SignUpBaseInfo) CopyTo(dbstruct *SignUp) {
dbstruct.ID = s.ID
dbstruct.Mid = s.Mid
dbstruct.Sex = s.Sex
dbstruct.BeginDate = s.BeginDate
dbstruct.EndDate = s.EndDate
dbstruct.Country = s.Country
dbstruct.Province = s.Province
dbstruct.City = s.City
dbstruct.Note = s.Note
dbstruct.AdminID = s.AdminID
dbstruct.AdminName = s.AdminName
dbstruct.Organization = s.Organization
dbstruct.SignType = s.SignType
dbstruct.Age = s.Age
dbstruct.Residence = s.Residence
dbstruct.IDCard = s.IDCard
dbstruct.Phone = s.Phone
dbstruct.QQ = s.QQ
dbstruct.Wechat = s.Wechat
dbstruct.IsEconomic = s.IsEconomic
if s.IsEconomic == ContainEconomic {
dbstruct.EconomicCompany = s.EconomicCompany
dbstruct.EconomicBegin = s.EconomicBegin
dbstruct.EconomicEnd = s.EconomicEnd
}
}
// CopyFrom copy
func (s *SignUpBaseInfo) CopyFrom(dbstruct *SignUp) {
s.ID = dbstruct.ID
s.Mid = dbstruct.Mid
s.Sex = dbstruct.Sex
s.BeginDate = dbstruct.BeginDate
s.EndDate = dbstruct.EndDate
s.Country = dbstruct.Country
s.Province = dbstruct.Province
s.City = dbstruct.City
s.Note = dbstruct.Note
s.AdminID = dbstruct.AdminID
s.AdminName = dbstruct.AdminName
s.Organization = dbstruct.Organization
s.SignType = dbstruct.SignType
s.Age = dbstruct.Age
s.Residence = dbstruct.Residence
s.IDCard = dbstruct.IDCard
s.Phone = dbstruct.Phone
s.QQ = dbstruct.QQ
s.Wechat = dbstruct.Wechat
s.IsEconomic = dbstruct.IsEconomic
if dbstruct.IsEconomic == ContainEconomic {
s.EconomicCompany = dbstruct.EconomicCompany
s.EconomicBegin = dbstruct.EconomicBegin
s.EconomicEnd = dbstruct.EconomicEnd
}
s.State = dbstruct.State
s.ActiveTid = dbstruct.ActiveTid
s.LeaveTimes = dbstruct.LeaveTimes
s.ViolationTimes = dbstruct.ViolationTimes
s.CreateTime = dbstruct.Ctime
}
// CopyFrom .
func (t *SignTaskHistoryArg) CopyFrom(st *SignTaskHistory, absenceCounter int) {
var taskBegin, taskEnd time.Time
taskBegin, taskEnd = GetTaskDuration(st.GenerateDate.Time(), st.TaskType)
t.TaskBegin = xtime.Time(taskBegin.Unix())
t.TaskEnd = xtime.Time(taskEnd.Unix())
t.TaskType = st.TaskType
t.TaskState = int8(st.State)
t.TaskCounter = st.TaskCounter
t.TaskCondition = st.TaskCondition
t.AbsenceCounter = absenceCounter
t.IsBusinessArchive = st.AttrVal(AttrBitIsBusinessArchive)
}
// SignUpArg struct
type SignUpArg struct {
SignUpBaseInfo
PayInfo []*SignPayInfoArg `json:"pay_info"`
TaskInfo []*SignTaskInfoArg `json:"task_info"`
ContractInfo []*SignContractInfoArg `json:"contract_info"`
}
// SignUpsArg struct
type SignUpsArg struct {
SignUpBaseInfo
TaskHistoryInfo []*SignTaskHistoryArg `json:"task_history_info"`
PayInfo []*SignPayInfoArg `json:"pay_info"`
ContractInfo []*SignContractInfoArg `json:"contract_info"`
}
// SignQueryResult result
type SignQueryResult struct {
SignBaseInfo *SignUpBaseInfo `json:"sign_base_info"`
Result []*SignUpsArg `json:"result"`
TotalCount int `json:"total_count"`
Page int `json:"page"`
Size int `json:"size"`
}
// SignTaskHistoryArg struct
type SignTaskHistoryArg struct {
TaskBegin xtime.Time `json:"task_begin"`
TaskEnd xtime.Time `json:"task_end"`
TaskType int8 `json:"task_type"`
TaskState int8 `json:"task_state"`
TaskCounter int `json:"task_counter"`
TaskCondition int `json:"task_condition"`
AbsenceCounter int `json:"absence_counter"`
IsBusinessArchive int64 `json:"is_business_archive"`
}
// ViolationArg struct
type ViolationArg struct {
ID int64 `json:"id"`
SignID int64 `json:"sign_id"`
Mid int64 `json:"mid"`
ViolationReason string `json:"violation_reason"`
AdminID int64 `json:"admin_id"`
AdminName string `json:"admin_name"`
OpTime xtime.Time `json:"op_time"`
State int8 `json:"state"`
}
// ViolationResult result
type ViolationResult struct {
Result []*ViolationArg `json:"result"`
TotalCount int `json:"total_count"`
Page int `json:"page"`
Size int `json:"size"`
}
// CopyTo violationArg.
func (a *ViolationArg) CopyTo(v *SignViolationHistory) {
v.SignID = a.SignID
v.Mid = a.Mid
v.AdminID = a.AdminID
v.AdminName = a.AdminName
v.ViolationReason = a.ViolationReason
}
// CopyFrom violationArg.
func (a *ViolationArg) CopyFrom(v *SignViolationHistory) {
a.ID = v.ID
a.SignID = v.SignID
a.Mid = v.Mid
a.AdminID = v.AdminID
a.AdminName = v.AdminName
a.ViolationReason = v.ViolationReason
a.OpTime = v.Mtime
a.State = v.State
}
// AbsenceArg struct
type AbsenceArg struct {
ID int64 `json:"id"`
SignID int64 `json:"sign_id"`
Mid int64 `json:"mid"`
AbsenceCount int `json:"absence_count"`
Reason string `json:"reason"`
AdminID int64 `json:"admin_id"`
AdminName string `json:"admin_name"`
OpTime xtime.Time `json:"op_time"`
TaskBegin xtime.Time `json:"task_begin"`
TaskEnd xtime.Time `json:"task_end"`
State int8 `json:"state"`
}
// CopyTo AbsenceArg.
func (a *AbsenceArg) CopyTo(v *SignTaskAbsence) {
v.SignID = a.SignID
v.Mid = a.Mid
v.AdminID = a.AdminID
v.AdminName = a.AdminName
v.AbsenceCount = a.AbsenceCount
v.Reason = a.Reason
}
// CopyFrom AbsenceArg.
func (a *AbsenceArg) CopyFrom(v *SignTaskAbsence) {
a.ID = v.ID
a.SignID = v.SignID
a.Mid = v.Mid
a.AdminID = v.AdminID
a.AdminName = v.AdminName
a.AbsenceCount = v.AbsenceCount
a.Reason = v.Reason
a.State = v.State
a.OpTime = v.Mtime
}
// AbsenceResult result
type AbsenceResult struct {
Result []*AbsenceArg `json:"result"`
TotalCount int `json:"total_count"`
Page int `json:"page"`
Size int `json:"size"`
}
// PageArg .
type PageArg struct {
SignID int64 `form:"sign_id"`
Page int `form:"page"`
Size int `form:"size"`
}
// IDArg .
type IDArg struct {
ID int64 `json:"id"`
SignID int64 `json:"sign_id"`
AdminID int64
AdminName string
}
// PowerCheckArg .
type PowerCheckArg struct {
TIDs []int16 `form:"tids,split"`
Mid int64 `form:"mid"`
}
// PowerCheckReply .
type PowerCheckReply struct {
IsPower bool `json:"is_power"`
IsSign bool `json:"is_sign"`
}
// SignPayInfoArg =============
type SignPayInfoArg struct {
ID int64 `json:"id"`
SignID int64 `json:"sign_id"`
Mid int64 `json:"mid"`
DueDate xtime.Time `json:"due_date"`
PayValue int64 `json:"pay_value"`
Note string `json:"note"`
State int8 `json:"state"`
InTax int8 `json:"in_tax"`
}
// CopyTo copy
func (s *SignPayInfoArg) CopyTo(dbstruct *SignPay) {
dbstruct.ID = s.ID
dbstruct.SignID = s.SignID
dbstruct.Mid = s.Mid
dbstruct.DueDate = s.DueDate
dbstruct.PayValue = s.PayValue
dbstruct.Note = s.Note
dbstruct.InTax = s.InTax
}
// CopyFrom copy
func (s *SignPayInfoArg) CopyFrom(dbstruct *SignPay) {
s.ID = dbstruct.ID
s.SignID = dbstruct.SignID
s.Mid = dbstruct.Mid
s.DueDate = dbstruct.DueDate
s.PayValue = dbstruct.PayValue
s.Note = dbstruct.Note
s.State = dbstruct.State
s.InTax = dbstruct.InTax
}
// SignTaskInfoArg =============
type SignTaskInfoArg struct {
ID int64 `json:"id"`
SignID int64 `json:"sign_id"`
Mid int64 `json:"mid"`
TaskType int8 `json:"task_type"`
TaskCondition int `json:"task_condition"`
TaskCounter int `json:"task_counter"`
TaskState int8 `json:"task_state"`
IsBusinessArchive int64 `json:"is_business_archive"`
}
// CopyTo copy
func (s *SignTaskInfoArg) CopyTo(dbstruct *SignTask) {
dbstruct.ID = s.ID
dbstruct.SignID = s.SignID
dbstruct.Mid = s.Mid
dbstruct.TaskType = s.TaskType
dbstruct.TaskCondition = s.TaskCondition
dbstruct.AttrSet(s.IsBusinessArchive, AttrBitIsBusinessArchive)
dbstruct.TaskData = ""
}
// CopyFrom copy
func (s *SignTaskInfoArg) CopyFrom(dbstruct *SignTask) {
s.ID = dbstruct.ID
s.SignID = dbstruct.SignID
s.Mid = dbstruct.Mid
s.TaskType = dbstruct.TaskType
s.TaskCondition = dbstruct.TaskCondition
s.TaskCounter = dbstruct.TaskCounter
s.IsBusinessArchive = dbstruct.AttrVal(AttrBitIsBusinessArchive)
if s.TaskCounter >= s.TaskCondition {
s.TaskState = 1
}
}
// SignContractInfoArg =============
type SignContractInfoArg struct {
ID int64 `json:"id"`
SignID int64 `json:"sign_id"`
Mid int64 `json:"mid"`
Filename string `json:"filename"`
Filelink string `json:"filelink"`
}
// CopyTo copy
func (s *SignContractInfoArg) CopyTo(dbstruct *SignContract) {
dbstruct.ID = s.ID
dbstruct.SignID = s.SignID
dbstruct.Mid = s.Mid
dbstruct.Filelink = BuildOrcBfsURL(s.Filelink)
dbstruct.Filename = s.Filename
}
// CopyFrom copy
func (s *SignContractInfoArg) CopyFrom(dbstruct *SignContract) {
s.ID = dbstruct.ID
s.SignID = dbstruct.SignID
s.Mid = dbstruct.Mid
s.Filelink = BuildDownloadURL(dbstruct.Filename, dbstruct.Filelink)
s.Filename = dbstruct.Filename
}
// SignQueryArg =============
type SignQueryArg struct {
Tids []int64 `form:"tids,split"` // 权限tid
Mid int64 `form:"mid"`
DueSign int8 `form:"due_sign"` // 签约即将过期
DuePay int8 `form:"due_pay"` // 支付周期即将过期
ExpireSign int8 `form:"expire_sign"` // 签约已过期
Sex int8 `form:"sex" default:"-1"`
Country []string `form:"country,split"`
ActiveTID int16 `form:"active_tid"`
SignType int8 `form:"sign_type"`
TaskState int8 `form:"task_state"`
SignBegin xtime.Time `form:"sign_begin"`
SignEnd xtime.Time `form:"sign_end"`
IsDetail int8 `form:"is_detail"` // 是否详情
Page int `form:"page"`
Size int `form:"size"`
}
// SignIDArg .
type SignIDArg struct {
ID int64 `form:"id" validate:"required"`
}
// SignPayCompleteArg ==============
type SignPayCompleteArg struct {
IDs []int64 `json:"ids"`
}
// SignPayCompleteResult result
type SignPayCompleteResult struct {
}
// SignCheckTaskArg ==============
type SignCheckTaskArg struct {
Date string `form:"date"`
}
// SignCheckExsitArg ==============
type SignCheckExsitArg struct {
Mid int64 `form:"mid"`
}
// SignCheckExsitResult result
type SignCheckExsitResult struct {
Exist bool `json:"exist"`
}
// SignOpSearchArg .
type SignOpSearchArg struct {
Mid int64 `form:"mid"`
OpID int64 `form:"oper_id"` // 操作人
SignID int64 `form:"sign_id"`
Tp int8 `form:"type" default:"2"` // 操作类型 1:新增 2:修改
Order string `form:"order" default:"ctime"`
Sort string `form:"sort" default:"desc"`
PN int `form:"page" default:"1"`
PS int `form:"size" default:"50"`
}
// BaseAuditReply .
type BaseAuditReply struct {
CTime string `json:"ctime"`
IntOne int64 `json:"int_0"`
OID int64 `json:"oid"`
Tp int8 `json:"type"`
UID int64 `json:"uid"`
UName string `json:"uname"`
ExtraData string `json:"extra_data"`
}
// BaseAuditListReply .
type BaseAuditListReply struct {
Order string `json:"order"`
Sort string `json:"sort"`
Pager *pager `json:"page"`
Result []*BaseAuditReply `json:"result"`
}
type pager struct {
Page int `json:"num"`
Size int `json:"size"`
TotalCount int `json:"total"`
}
// SignAuditReply .
type SignAuditReply struct {
CTime xtime.Time `json:"ctime"`
SignID int64 `json:"sign_id"`
Mid int64 `json:"mid"`
Tp int8 `json:"type"`
OperID int64 `json:"oper_id"`
OperName string `json:"oper_name"`
Content *SignContentReply `json:"content"`
}
// SignAuditListReply .
type SignAuditListReply struct {
Order string `json:"order"`
Sort string `json:"sort"`
Page int `json:"page"`
Size int `json:"size"`
TotalCount int `json:"total_count"`
Result []*SignAuditReply `json:"result"`
}
// SignContentReply .
type SignContentReply struct {
New *SignUpArg `json:"new"`
Old *SignUpArg `json:"old"`
ChangeType []int8 `json:"change_type"`
}
// SignCountrysReply .
type SignCountrysReply struct {
List []string `json:"list"`
}
// SignTidsReply .
type SignTidsReply struct {
List map[int64]string `json:"list"`
}
// BuildOrcBfsURL orc bfs url.
func BuildOrcBfsURL(raw string) string {
if raw == "" {
return ""
}
ori, err := url.Parse(raw)
if err != nil {
return raw
}
values := ori.Query()
values.Del("token")
ori.RawQuery = values.Encode()
return ori.String()
}
// BuildDownloadURL .
func BuildDownloadURL(fileName string, bfsurl string) (finalurl string) {
var bfsConf = conf.Conf.BfsConf
var index = strings.LastIndex(bfsurl, "/")
if index >= 0 && index+1 < len(bfsurl) {
fileName = bfsurl[index+1:]
}
finalurl = fmt.Sprintf("%s?token=%s", bfsurl, url.QueryEscape(dao.Authorize(bfsConf.Key, bfsConf.Secret, "GET", bfsConf.Bucket, fileName, time.Now().Unix())))
return
}