package base import ( "context" "fmt" "strconv" "github.com/gogf/gf/errors/gerror" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/os/gtime" "github.com/gogf/gf/text/gstr" "github.com/gogf/gf/util/gconv" "dashoo.cn/micro/app/dao/base" model "dashoo.cn/micro/app/model/base" "dashoo.cn/micro/app/service" ) type productService struct { *service.ContextService Dao *base.BaseProductDao } func NewProductService(ctx context.Context) (svc *productService, err error) { svc = new(productService) if svc.ContextService, err = svc.Init(ctx); err != nil { return nil, err } svc.Dao = base.NewBaseProductDao(svc.Tenant) return svc, nil } //产品信息列表 func (p *productService) GetList(req *model.BaseProductSearchReq) (total int, productList []*model.BaseProduct, err error) { productModel := p.Dao.M if req.KeyWords != "" { productModel = productModel.Where("prod_code", req.KeyWords) } total, err = productModel.Count() if err != nil { g.Log().Error(err) err = gerror.New("获取总行数失败") return } if req.PageNum == 0 { req.PageNum = 1 } err = productModel.Page(req.PageNum, req.PageSize).Order("id asc").Scan(&productList) return } //编辑查询单条查询 func (p *productService) GetEntityById(id int64) (product *model.BaseProduct, err error) { err = p.Dao.Where(base.BaseProduct.Columns.Id, id).Scan(&product) if err != nil { g.Log().Error(err) return nil, gerror.New("获取用户数据失败") } return } //添加信息 func (p *productService) Create(req *model.AddBaseProductReq) (err error) { productData := new(model.BaseProduct) if err = gconv.Struct(req, productData); err != nil { return } service.SetCreatedInfo(productData, p.GetCxtUserId(), p.GetCxtUserName()) Model := p.Dao.M productData.ProdCode = gstr.SubStr(strconv.Itoa(int(gtime.Now().UnixNano()/1e6)), 0, -5) res, err := Model.Insert(productData) if err != nil { return } InsertId, _ := res.LastInsertId() fmt.Println(InsertId) return } //修改数据 func (p *productService) UpdateById(req *model.UpdateBaseProductReq) (err error) { //uptime := gtime.New(time.Now()) db := p.Dao.M record, err := db.FindOne("Id", req.Id) if err != nil || record.IsEmpty() { err = gerror.New("该数据不存在") return err } proInfo := record.Map() fmt.Println(proInfo["created_time"]) productData := new(model.BaseProduct) if err = gconv.Struct(req, productData); err != nil { return } service.SetUpdatedInfo(productData, p.GetCxtUserId(), p.GetCxtUserName()) _, err = db.FieldsEx(base.BaseProduct.Columns.CreatedTime, base.BaseProduct.Columns.CreatedBy, base.BaseProduct.Columns.CreatedName). WherePri(base.BaseProduct.Columns.Id, req.Id).Update(productData) if err != nil { g.Log().Error(err) err = gerror.New("修改用户信息失败") return } return } //删掉数据 func (p *productService) DeleteByIds(dicIds []int64) (err error) { _, err = base.BaseProduct.Fields(base.BaseProduct.Columns.CreatedTime). Where(base.BaseProduct.Columns.Id+" in (?) ", dicIds).All() if err != nil { g.Log().Error(err) err = gerror.New("没有要删除的数据") return } _, err = p.Dao.Delete(base.BaseProduct.Columns.Id+" in (?) ", dicIds) if err != nil { g.Log().Error(err) err = gerror.New("删除数据失败") return err } return }