539 lines
15 KiB
Go
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
|
||
|
}
|