| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- // ==========================================================================
- // 生成日期:2020-09-17 10:13:16
- // 生成人:gfast
- // ==========================================================================
- package wf_news_service
- import (
- wfNewsModel "gfast/app/model/admin/wf_news"
- "gfast/app/model/admin/wf_run"
- "gfast/app/service/common/work_flow_service"
- "github.com/gogf/gf/errors/gerror"
- "github.com/gogf/gf/frame/g"
- )
- // 添加
- func AddSave(req *wfNewsModel.AddReq) error {
- return wfNewsModel.AddSave(req)
- }
- // 删除
- func DeleteByIds(Ids []int) error {
- tx, err := g.DB().Begin()
- if err != nil {
- g.Log().Error(err)
- return gerror.New("事务开启失败")
- }
- //删除业务
- err = wfNewsModel.DeleteByIds(Ids, tx)
- if err != nil {
- tx.Rollback()
- return err
- }
- //删除运行流程信息
- runList, err := wf_run.Model.Fields("id").Where("from_id in (?) and from_table=?", Ids, "wf_news").FindAll()
- if err != nil {
- g.Log().Error(err)
- tx.Rollback()
- return gerror.New("获取流程信息失败")
- }
- runIds := make([]uint, len(runList))
- for key, run := range runList {
- runIds[key] = run.Id
- }
- _, err = wf_run.Model.TX(tx).Delete("id in (?)", runIds)
- if err != nil {
- tx.Rollback()
- g.Log().Error(err)
- return gerror.New("删除流程运行信息失败")
- }
- tx.Commit()
- return nil
- }
- //修改
- func EditSave(editReq *wfNewsModel.EditReq) error {
- return wfNewsModel.EditSave(editReq)
- }
- // 根据ID查询
- func GetByID(id int64) (*wfNewsModel.Entity, error) {
- return wfNewsModel.GetByID(id)
- }
- // 分页查询
- func SelectListByPage(req *wfNewsModel.SelectPageReq, userId uint64, departmentId uint64) (total int,
- page int64, listBtn []*wfNewsModel.InfoBtn, err error) {
- var list []*wfNewsModel.Entity
- total, page, list, err = wfNewsModel.SelectListByPage(req)
- if err != nil {
- return
- }
- listBtn = make([]*wfNewsModel.InfoBtn, len(list))
- //获取处理按钮
- for k, v := range list {
- var btn g.MapStrAny
- btn, err = work_flow_service.SetBtn(v.Id, "wf_news", "title", "status", v.Status, userId, departmentId)
- if err != nil {
- btn = g.MapStrAny{
- "title": "提示:" + err.Error(),
- "type": "alert",
- }
- }
- listBtn[k] = &wfNewsModel.InfoBtn{
- Entity: v,
- ActionBtn: btn,
- }
- }
- return
- }
|