| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package settle_account_main
- import (
- "dashoo.cn/micro_libary/request"
- "errors"
- "fmt"
- "github.com/gogf/gf/os/gtime"
- "github.com/gogf/gf/util/gconv"
- "lims_adapter/dao/account"
- "lims_adapter/model"
- accountModel "lims_adapter/model/account"
- )
- // Service 会议室服务
- type Service struct {
- Dao *account.SettleAccountMainDao
- Tenant string
- }
- // NewSrv 服务初始化
- func NewService(tenant string) Service {
- return Service{Dao: account.NewSettleAccountMainDao(tenant), Tenant: tenant}
- }
- // List 会议室列表
- func (s Service) List(req model.ListReq) ([]accountModel.SettleAccountMain, int, error) {
- entityModel := s.Dao.M
- where := "1=1"
- if req.Entity != nil {
- entity := new(accountModel.SettleAccountMainReq)
- err := gconv.Struct(req.Entity, entity)
- if err != nil {
- return nil, 0, err
- }
- if entity.MainUserId != 0 {
- where += fmt.Sprintf(" AND MainUserId='%v'", entity.MainUserId)
- }
- if entity.AttachUserId != 0 {
- where += fmt.Sprintf(" AND AttachUserId='%v'", entity.AttachUserId)
- }
- if entity.InstrumentId != 0 {
- where += fmt.Sprintf(" AND InstrumentId='%v'", entity.InstrumentId)
- }
- if entity.Status != "" {
- where += fmt.Sprintf(" AND Status='%v'", entity.Status)
- }
- if entity.SettleStatus != "" {
- where += fmt.Sprintf(" AND SettleStatus='%v'", entity.SettleStatus)
- }
- if entity.FeeType != "" {
- where += fmt.Sprintf(" AND FeeType='%v'", entity.FeeType)
- }
- }
- entityModel = entityModel.Where(where)
- total, err := entityModel.Count()
- if err != nil {
- return nil, 0, err
- }
- if total == 0 {
- return nil, 0, nil
- }
- res, err := entityModel.Page(req.Current, req.Size).Order("settle_account_main.CreateOn DESC").Fields("settle_account_main.*").FindAll()
- if err != nil {
- return nil, 0, err
- }
- if res.IsEmpty() {
- return nil, 0, nil
- }
- list := make([]accountModel.SettleAccountMain, 0)
- err = res.Structs(&list)
- if err != nil {
- return nil, 0, err
- }
- return list, total, nil
- }
- // 新增
- func (s Service) Add(req accountModel.AccountMainAddReq, user request.UserInfo) error {
- now := gtime.Now() // 获取当前时间
- // 更新必要信息
- req.Main.CreateUserId = int(user.Id)
- req.Main.CreateBy = user.RealName
- req.Main.CreateOn = now
- req.Main.UpdateUserId = int(user.Id)
- req.Main.UpdateBy = user.RealName
- req.Main.UpdateOn = now
- tx, err := s.Dao.DB.Begin()
- if err != nil {
- return err
- }
- result, err := tx.Insert("settle_account_main", req.Main)
- if err != nil {
- tx.Rollback()
- return err
- }
- id , _ := result.LastInsertId()
- for index := range req.Details { // 更新必要信息
- req.Details[index].CreateUserId = int(user.Id)
- req.Details[index].CreateBy = user.RealName
- req.Details[index].CreateOn = now
- req.Details[index].UpdateUserId = int(user.Id)
- req.Details[index].UpdateBy = user.RealName
- req.Details[index].UpdateOn = now
- req.Details[index].Pid = int(id)
- }
- _, err = tx.Insert("settle_account_detail", req.Details)
- if err != nil {
- tx.Rollback()
- return err
- }
- return tx.Commit()
- }
- // 确认
- func (s Service) Confirm(req accountModel.AccountMainConfirmReq, user request.UserInfo) error {
- if req.MainId == 0 {
- return errors.New("参数缺失")
- }
- _, err := s.Dao.M.Update(fmt.Sprintf("SettleStatus='1',SettleUserId='%v',SettleUser='%v',SettleDate='%v'", user.Id, user.RealName, gtime.Now()), fmt.Sprintf("Id='%v'", req.MainId))
- return err
- }
|