Documentation
¶
Index ¶
- Constants
- Variables
- func EnableDebug()
- func GetIPFromRequest(r *http.Request) string
- func WriteBytes(w http.ResponseWriter, code int, v []byte)
- func WriteJSON(w http.ResponseWriter, code int, v interface{}) error
- type BookDetail
- type CatalogDetail
- type CourseCatalogDetailList
- type CourseCatalogList
- type CourseDetail
- type CourseError
- type CourseShare
- type CourseShareInfo
- type CustomMsg
- type GraduationInfo
- type GraduationManager
- type HandlerRequest
- type HomeworkRemindTplMsg
- type JssdkInfo
- type Logic
- type MonthCourseDetail
- type MsgInfo
- type NowCourseList
- type ReadingEnrollUserInfo
- type ReadingHandler
- type RegisterInfo
- type RemindInfo
- type RemindWorker
- type ShareTpl
- type TplMsg
- type UserCourseAttendance
- type UserCourseAttendanceDetail
- type UserCourseDetail
- type UserInfo
- type WechatController
- type WechatMsg
- type WechatTplWorker
- type WxJsApiParams
Constants ¶
View Source
const ( READING_COURSE_TYPE_GD = 1 ENGLISH_COURSE_TYPE_GD = 2 )
View Source
const ( READING_COURSE_STATUS_START = iota READING_COURSE_STATUS_PAIED READING_COURSE_STATUS_REFUND READING_COURSE_STATUS_REFUND_NOT_AUTO READING_COURSE_STATUS_REFUND_MANUAL )
View Source
const ( COUPON_URI_PREFIX = "coupon" COUPON_URI_CREATE = "create" COUPON_URI_EXCHANGE = "exchange" COUPON_URI_GO_EXCHANGE = "go-exchange" COUPON_URI_LIST = "list" )
View Source
const ( READING_COURSE_URI_PREFIX = "course" READING_COURSE_URI_CATA_AUDIOS = "catalogaudios" READING_COURSE_URI_CATA_SIGNIN = "catalogsignin" READING_COURSE_URI_CREATE_COMMENT = "createcomment" READING_COURSE_URI_GET_COMMENT = "getcommentlist" READING_COURSE_URI_UPDATE_COMMENT = "updatecomment" READING_COURSE_URI_GET_ALL_COMMENT = "getallcomment" READING_COURSE_URI_REPLY_COMMENT = "replycomment" READING_COURSE_URI_GET_GRADUATION = "getgraduation" // tmp html READING_NOW_COURSE_URI_LIST = "nowcourselist" READING_COURSE_URI_LIST = "usercourselist" READING_COURSE_URI_INDEX = "index" READING_COURSE_URI_BOOK_CATALOG = "bookcatalog" READING_COURSE_URI_BOOK_DETAIL = "bookdetail" READING_COURSE_URI_MYSELF = "myself" READING_COURSE_URI_ATTENDANCE = "attendance" READING_COURSE_URI_ATTENDANCE_DETAIL = "attendancedetail" READING_COURSE_URI_REMIND = "remind" READING_COURSE_URI_SHARE = "share" READING_COURSE_URI_SHARE_TO = "shareto" )
View Source
const ( READING_COURSE_MANAGER_URI_PREFIX = "coursemanager" READING_COURSE_MANAGER_URI_GET_BOOKS = "getbooklist" READING_COURSE_MANAGER_URI_CREATE_BOOK = "createbook" READING_COURSE_MANAGER_URI_DELETE_BOOK = "deletebook" READING_COURSE_MANAGER_URI_UPDATE_BOOK = "updatebook" READING_COURSE_MANAGER_URI_GET_CHAPTER = "getchapter" READING_COURSE_MANAGER_URI_GET_CHAPTERS = "getchapterlist" READING_COURSE_MANAGER_URI_CREATE_CHAPTER = "createchapter" READING_COURSE_MANAGER_URI_DELETE_CHAPTER = "deletechapter" READING_COURSE_MANAGER_URI_UPDATE_CHAPTER = "updatechapter" READING_COURSE_MANAGER_URI_UPDATE_CHAPTER_RE = "updatechapterre" READING_COURSE_MANAGER_URI_GET_BCATALOGS = "getbookcatalogs" READING_COURSE_MANAGER_URI_CREATE_BCATALOG = "createbookcatalog" READING_COURSE_MANAGER_URI_DELETE_BCATALOG = "deletebookcatalog" READING_COURSE_MANAGER_URI_UPDATE_BCATALOG = "updatebookcatalog" READING_COURSE_MANAGER_URI_GET_BCCHAPTERS = "getbcchapters" READING_COURSE_MANAGER_URI_CREATE_BCCHAPTERS = "createbcchapters" READING_COURSE_MANAGER_URI_DELETE_BCCHAPTER = "deletebcchapter" READING_COURSE_MANAGER_URI_GET_COURSES = "getcourselist" READING_COURSE_MANAGER_URI_CREATE_COURSE = "createcourse" READING_COURSE_MANAGER_URI_DELETE_COURSE = "deletecourse" READING_COURSE_MANAGER_URI_UPDATE_COURSE = "updatecourse" READING_COURSE_MANAGER_URI_GET_MCOURSES = "getmcourselist" READING_COURSE_MANAGER_URI_CREATE_MCOURSE = "createmcourse" READING_COURSE_MANAGER_URI_DELETE_MCOURSE = "deletemcourse" READING_COURSE_MANAGER_URI_UPDATE_MCOURSE = "updatemcourse" READING_COURSE_MANAGER_URI_GET_MCBOOKS = "getmcbooklist" READING_COURSE_MANAGER_URI_CREATE_MCBOOK = "createmcbook" READING_COURSE_MANAGER_URI_DELETE_MCBOOK = "deletemcbook" READING_COURSE_MANAGER_URI_UPDATE_MCBOOK = "updatemcbook" READING_COURSE_MANAGER_URI_GET_MCBCATALOGS = "getmcbcataloglist" READING_COURSE_MANAGER_URI_CREATE_MCBCATALOG = "createmcbcatalog" READING_COURSE_MANAGER_URI_DELETE_MCBCATALOG = "deletemcbcatalog" READING_COURSE_MANAGER_URI_UPDATE_MCBCATALOG = "updatemcbcatalog" READING_COURSE_MANAGER_URI_CREATE_MCBCAUDIO = "createmcbcaudio" READING_COURSE_MANAGER_URI_GET_MCBCCHAPTERS = "getmcbcchapterlist" READING_COURSE_MANAGER_URI_CREATE_MCBCCHAPTER = "createmcbcchapter" READING_COURSE_MANAGER_URI_DELETE_MCBCCHAPTER = "deletemcbcchapter" )
View Source
const ( COURSE_BOOK_LOCK = iota COURSE_BOOK_UNLOCK )
View Source
const ( COURSE_BOOK_CATALOG_LOCK = iota COURSE_BOOK_CATALOG_UNLOCK )
View Source
const ( REFUND_WAY_AUTO = 1 REFUND_WAY_FROM_TRANSACTION = 2 )
View Source
const ( DATA_STATISTICS_CREATE_COURSE_TYPE = "createcoursetype" DATA_STATISTICS_GET_COURSE_TYPE_LIST = "getcoursetypelist" DATA_STATISTICS_CREATE_COURSE_CHANNEL = "createcoursechannel" DATA_STATISTICS_DELETE_COURSE_CHANNEL = "deletecoursechannel" DATA_STATISTICS_GET_COURSE_CHANNEL_LIST = "getcoursechannellist" DATA_STATISTICS_SET_USER_COURSE_REFUND = "setusercourserefund" DATA_STATISTICS_USER_COURSE_MANUAL_REFUND = "usercoursemanualrefund" DATA_STATISTICS_USER_COURSE_REFUND_FROM_TRANSACTION = "usercourserefundfromtransaction" DATA_STATISTICS_GET_COURSE_STATISTICS = "getcoursedatastatistics" )
View Source
const ( MSG_ERROR_SYSTEM = "system error." MSG_ERROR_COURSE_NOT_FOUND = "course not found." MSG_ERROR_USER_NOT_FOUND = "user not found, please relogin." MSG_ERROR_USER_COURSE_NOT_JOIN = "您暂未报名该课程" )
ERROR MSG
View Source
const ( READING_URI_SIGN_UP = "signup" READING_URI_ENROLL = "enroll" READING_URI_GO_ENROLL = "goenroll" READING_URI_PAY = "pay" READING_URI_PAY_NOTIFY = "paynotify" READING_URI_SUCCESS = "success" READING_URI_PROTO = "proto" READING_URI_CHECK_COURSE = "check_course" )
View Source
const ( DEFAULT_ENROLL_NAME = "请输入姓名" DEFAULT_ENROLL_MOBILE = "请输入手机号" DEFAULT_ENROLL_WECHAT = "微信号(选填)" )
View Source
const ( WECHAT_MSG_TPL = "tpl" WECHAT_MSG_CUSTOM = "custom" )
View Source
const (
DATA_STATISTICS_URI_PREFIX = "statistics"
)
View Source
const (
DEFAULT_REMIND_WORKER_NUM = 100
)
View Source
const (
DEFAULT_TPL_WORKER_NUM = 1024
)
View Source
const (
READING_COURSE_GD_MONEY = 19900
)
View Source
const (
READING_URI_TODAY_ORDER = "today_order"
)
manager uri
View Source
const (
REGISTER_URI_PREFIX = "register"
)
View Source
const (
ReadingPrefix = "/reading"
)
View Source
const (
TEST_OPEN_ID = "oaKrZwsAF6pRX6z3Qn_EhIZ3DG90"
)
View Source
const (
TPL_ID_HOMEWORK_REMIND = "5s9bGDoC2bEcUbfJI5KoU9xxXHohay8MMdRG54blDKs"
)
Variables ¶
View Source
var (
MonthConst map[int64]string = map[int64]string{
1: "Jan.",
2: "Feb.",
3: "Mar.",
4: "Apr.",
5: "May",
6: "Jun.",
7: "Jul.",
8: "Aug.",
9: "Sep.",
10: "Oct.",
11: "Nov.",
12: "Dec.",
}
)
Functions ¶
func EnableDebug ¶
func EnableDebug()
func GetIPFromRequest ¶
func WriteBytes ¶
func WriteBytes(w http.ResponseWriter, code int, v []byte)
Types ¶
type CatalogDetail ¶
type CatalogDetail struct {
models.MonthCourseCatalog
Status int
TaskTime string
}
catalog
type CourseCatalogDetailList ¶
type CourseCatalogDetailList struct {
models.Book
models.MonthCourseCatalog
models.MonthCourseCatalogAudio
AudioTime string
PrevCatalogId int64
NextCatalogId int64
IfChecked int64
TaskTime string
ChapterDetailList []models.CourseBookCatalogDetail
OpenId string
UserId int64
CourseId int64
BookId int64
CatalogId int64
}
book detail
type CourseCatalogList ¶
type CourseDetail ¶
type CourseDetail struct {
TodayCatalogs []models.CourseBookCatalogTime
MonthCourses []MonthCourseDetail
UserId int64
CourseId int64
}
type CourseError ¶
type CourseError struct {
RedirectUrl string
}
type CourseShare ¶
type CourseShare struct {
}
type CourseShareInfo ¶
type CourseShareInfo struct {
}
type GraduationInfo ¶
type GraduationManager ¶
type GraduationManager struct {
// contains filtered or unexported fields
}
func NewGraduationManager ¶
func NewGraduationManager(cfg *config.Config) (*GraduationManager, error)
func (*GraduationManager) CheckUserImage ¶
func (gm *GraduationManager) CheckUserImage(graduationNum string) (string, bool)
func (*GraduationManager) HandleUserImage ¶
func (gm *GraduationManager) HandleUserImage(info *GraduationInfo) (string, error)
type HandlerRequest ¶
type HomeworkRemindTplMsg ¶
type Logic ¶
func (*Logic) HandleReceiveMsg ¶
func (self *Logic) HandleReceiveMsg(msg *robot_proto.ReceiveMsgInfo)
func (*Logic) RobotReceiveMsg ¶
func (self *Logic) RobotReceiveMsg(w http.ResponseWriter, r *http.Request)
type MonthCourseDetail ¶
type MonthCourseDetail struct {
models.MonthCourse
Books []BookDetail
}
type ReadingEnrollUserInfo ¶
type ReadingEnrollUserInfo struct {
NickName string
AvatarUrl string
OpenId string
EnrollName string
EnrollMobile string
EnrollWechat string
CourseType int64
CourseNum int64
IfCourseStart int64
StartTime string
EndTime string
IndexStartTime string
WxJsApiParams
}
about html tml struct
type ReadingHandler ¶
type ReadingHandler struct {
// contains filtered or unexported fields
}
func NewReadingHandler ¶
func NewReadingHandler(l *Logic) *ReadingHandler
func (*ReadingHandler) ServeHTTP ¶
func (self *ReadingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type RegisterInfo ¶
type RegisterInfo struct {
NickName string
AvatarUrl string
OpenId string
EnrollName string
EnrollMobile string
EnrollWechat string
Source int
UserId int64
Course models.Course
Coupon models.Coupon
RealPay string
IfCourseStart int64
StartTime string
EndTime string
IndexStartTime string
WxJsApiParams
}
type RemindInfo ¶
type RemindInfo struct {
Course models.Course
Catalog models.CourseBookCatalogTime
}
type RemindWorker ¶
type RemindWorker struct {
WorkerNum int
// contains filtered or unexported fields
}
func NewRemindWorker ¶
func NewRemindWorker(cfg *config.Config, wc *WechatController) *RemindWorker
func (*RemindWorker) Stop ¶
func (self *RemindWorker) Stop()
type UserCourseAttendance ¶
type UserCourseAttendance struct {
AttendanceList []models.UserCourseList
UserId int64
}
course attendance
type UserCourseDetail ¶
type UserCourseDetail struct {
TodayCatalogs []models.CourseBookCatalogTime
UserCourseList []models.UserCourseDetail
UserId int64
Now int64
UserName string
}
user course
type WechatController ¶
type WechatController struct {
// contains filtered or unexported fields
}
func NewWechatController ¶
func NewWechatController(cfg *config.Config) *WechatController
func (*WechatController) JssdkSign ¶
func (self *WechatController) JssdkSign(info *JssdkInfo)
func (*WechatController) SendCustomMsg ¶
func (self *WechatController) SendCustomMsg(msg *CustomMsg) error
func (*WechatController) SendTplMsg ¶
func (self *WechatController) SendTplMsg(msg *TplMsg) error
type WechatTplWorker ¶
type WechatTplWorker struct {
WorkerNum int
// contains filtered or unexported fields
}
func NewWechatTplWorker ¶
func NewWechatTplWorker(cfg *config.Config, wc *WechatController) *WechatTplWorker
func (*WechatTplWorker) Send ¶
func (self *WechatTplWorker) Send(msg *WechatMsg)
func (*WechatTplWorker) Stop ¶
func (self *WechatTplWorker) Stop()
Source Files
¶
- book_manager.go
- const.go
- coupon_handler.go
- course_handler.go
- course_manager.go
- course_struct.go
- data_statistics_manager.go
- error.go
- graduation_manager.go
- logic.go
- reading_handler.go
- reading_manager.go
- reading_struct.go
- register_handler.go
- register_struct.go
- remind_worker.go
- robot_endpoint.go
- robot_logic.go
- wechat.go
- wechat_struct.go
- wechat_tpl_worker.go
Click to show internal directories.
Click to hide internal directories.