1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package learn
- import (
- "errors"
- "strconv"
- "strings"
- "zhiyuan/models"
- "zhiyuan/pkg/app"
- "zhiyuan/pkg/db"
- "zhiyuan/pkg/utils"
- "zhiyuan/services/train/courses"
- )
- var Learn models.Learn
- func LearnCourses(courses_id int, adminID int) error {
- coursesInfo, err := courses.GetInfoByID(courses_id, nil, nil)
- if coursesInfo == nil {
- return errors.New("invalid id")
- }
- info, err := GetOne(map[string]interface{}{"course_id": coursesInfo.CourseId, "admin_id": adminID}, nil, nil)
- if info == nil {
- learnMap := map[string]interface{}{
- "`course_id`": coursesInfo.CourseId,
- "`admin_id`": adminID,
- "`courses_ids`": strconv.Itoa(courses_id),
- }
- _, err = db.InsertOne(Learn.TableName(), learnMap)
- return err
- }
- coursesSlice := strings.Split(info.CoursesIds, ",")
- for _, v := range coursesSlice {
- if v == strconv.Itoa(courses_id) {
- return nil
- }
- }
- learnMap := map[string]interface{}{
- "`courses_ids`": info.CoursesIds + "," + strconv.Itoa(courses_id),
- }
- _, err = db.Update(Learn.TableName(), map[string]interface{}{"id": info.ID}, learnMap)
- return err
- }
- func Count(where map[string]interface{}) (int64, error) {
- return db.Count(Learn.TableName(), where)
- }
- func CountRaw(where string, param map[string]interface{}) (int64, error) {
- query := "`zy_learn` WHERE " + where
- return db.CountRaw(query, param)
- }
- func GetList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.Learn, error) {
- if page.PageNum > 0 && page.PageSize > 0 {
- where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize))
- }
- return Learn.GetMulti(where, fields, retVal)
- }
- func GetLearnsRaw(where map[string]string, param map[string]interface{}, retVal interface{}) error {
- field := "SELECT `zy_learn`.* FROM `zy_learn` "
- return db.GetMultiRaw(field, where, param, retVal)
- }
- func GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*models.Learn, error) {
- return Learn.GetOne(where, fields, retVal)
- }
- func GetLearnOne(where map[string]string, param map[string]interface{}, retVal interface{}) error {
- field := "SELECT `zy_learn`.* FROM `zy_learn` "
- where["_page_size"] = utils.ToStr(1)
- where["_page_num"] = utils.ToStr(1)
- return db.GetMultiRaw(field, where, param, retVal)
- }
- func GetLearnByID(id int, retVal interface{}) error {
- where := map[string]string{
- "where": "`zy_learn`.`id` = {{id}}",
- }
- param := map[string]interface{}{"id": id}
- return GetLearnOne(where, param, retVal)
- }
- func GetInfoByID(id int, fields []string, retVal interface{}) (*models.Learn, error) {
- return GetOne(map[string]interface{}{"id": id}, fields, retVal)
- }
|