1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package db
- import (
- "context"
- "time"
- "youngee_m_api/model/gorm_model"
- "youngee_m_api/util"
- "github.com/sirupsen/logrus"
- )
- // Terminate 批量提交解约申请
- func Terminate(ctx context.Context, TaskIDs, projectIds []int) error {
- db := GetReadDB(ctx)
- err := db.Model(gorm_model.YoungeeContractInfo{}).Where("task_id in ? and default_status = 1", TaskIDs).
- Updates(map[string]interface{}{"default_status": 3, "terminate_at": time.Now()}).Error
- if err != nil {
- logrus.WithContext(ctx).Errorf("[Data db] Update YoungeeContractInfo error,err:%+v", err)
- return err
- }
- err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{CurDefaultType: 9}).Error
- if err != nil {
- logrus.WithContext(ctx).Errorf("[Data db] Update YoungeeTaskInfo error,err:%+v", err)
- return err
- }
- util.RemoveIntRepByMap(projectIds)
- var unfinishedNum int64
- for _, projectId := range projectIds {
- err1 := db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? AND task_status = 2 AND task_stage < 15", projectId).Count(&unfinishedNum).Error
- if err1 != nil {
- logrus.WithContext(ctx).Errorf("[Data db] Count YoungeeTaskInfo error,err:%+v", err)
- return err1
- }
- if unfinishedNum == 0 {
- // 1. 更新项目状态为结束
- err2 := db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectId).Updates("project_status = 10").Error
- if err2 != nil {
- logrus.WithContext(ctx).Errorf("[Data db] Count YoungeeTaskInfo error,err:%+v", err)
- return err2
- }
- // 2. 释放企业账户因项目冻结的资金
- // 1) 计算剩余资金
- // 2) 释放剩余资金
- }
- }
- return nil
- }
|