123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package pkg
- import (
- "errors"
- "zhiyuan/models"
- "zhiyuan/pkg/app"
- "zhiyuan/pkg/db"
- "zhiyuan/pkg/param/material"
- "zhiyuan/pkg/utils"
- "zhiyuan/services/form"
- "zhiyuan/services/material/pick"
- "zhiyuan/services/structs/calc"
- )
- var MatPkg models.MatPkg
- func Count(where map[string]interface{}) (int64, error) {
- return db.Count(MatPkg.TableName(), where)
- }
- func GetPkgs(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.MatPkg, error) {
- if page.PageNum > 0 && page.PageSize > 0 {
- where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize))
- }
- return MatPkg.GetMulti(where, fields, retVal)
- }
- func GetPkg(where map[string]interface{}, fields []string, dest interface{}) (*models.MatPkg, error) {
- return MatPkg.GetOne(where, fields, dest)
- }
- func pkgMap(form form.MaterialPkgAdd) (map[string]interface{}, error) {
- pkgMap := map[string]interface{}{
- "pkg_name": form.PkgName,
- }
- return pkgMap, nil
- }
- func Copy(f form.MaterialPkgCopy) (int64, error) {
- // 判断来源 id 是否存在
- pkgInfo, err := GetPkg(map[string]interface{}{"id": f.FromID}, nil, nil)
- if pkgInfo == nil {
- return 0, err
- }
- // 判断目的 id 报价是否为空
- if bidCheck, _ := pick.MatPick.GetOne(map[string]interface{}{"pkg_id": f.ToID}, nil, nil); bidCheck != nil {
- return 0, errors.New("该套餐已设置,不能重复设置")
- }
- sql := "INSERT INTO zy_mat_pick(room_type, pkg_id, pick_name, `standard`, cycle, confirm_type) SELECT room_type, {{to_id}}, pick_name, standard, `cycle`, confirm_type FROM zy_mat_pick WHERE pkg_id={{from_id}}"
- return db.InsertRaw(sql, map[string]interface{}{"from_id": f.FromID, "to_id": f.ToID})
- }
- func Add(form form.MaterialPkgAdd) (int64, error) {
- pkgMap, err := pkgMap(form)
- if err != nil {
- return 0, err
- }
- return db.InsertOne(MatPkg.TableName(), pkgMap)
- }
- func Edit(form form.MaterialPkgAdd, id int) (int64, error) {
- pkgMap, err := pkgMap(form)
- if err != nil {
- return 0, err
- }
- return db.Update(MatPkg.TableName(), map[string]interface{}{"id": id}, pkgMap)
- }
- func ShowHome(form form.MaterialPkgShowHome, id int) (int64, error) {
- if !utils.IsContain([]int{0, 1}, form.Type) {
- return 0, errors.New("参数有误")
- }
- pkgMap := map[string]interface{}{
- "show_home": form.Type,
- }
- return db.Update(MatPkg.TableName(), map[string]interface{}{"id": id}, pkgMap)
- }
- func EditRoomPic(form form.MaterialPkgRoomPic, id int) (int64, error) {
- pkgInfo, _ := GetPkg(map[string]interface{}{"id": id}, nil, nil)
- roomPic := make(map[int]string)
- if pkgInfo.RoomPics == "" {
- for _, v := range material.Params.RoomType {
- if v.ID > 0 {
- roomPic[v.ID] = ""
- }
- }
- } else {
- utils.JsonDecode(pkgInfo.RoomPics).To(&roomPic)
- }
- roomPic[form.RoomType] = form.Pic
- return db.Update(MatPkg.TableName(), map[string]interface{}{"id": id}, map[string]interface{}{"room_pics": utils.JsonEncode(roomPic)})
- }
- func EditOutline(form calc.Outline, id int) (int64, error) {
- return db.Update(MatPkg.TableName(), map[string]interface{}{"id": id}, map[string]interface{}{"outline": utils.JsonEncode(form)})
- }
|