123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * @description: 合同相关数据库操作
- * @Author: CP
- * @Date: 2020-11-17 10:41:05
- * @FilePath: \construction_management\dao\contract_dao.go
- */
- package dao
- import (
- "errors"
- "log"
- "github.com/go-xorm/xorm"
- "go.mod/models"
- )
- //数据库操作引擎
- type ContractDao struct {
- engine *xorm.Engine
- }
- //获得一个DAO对象
- func NewContractDao(engine *xorm.Engine) *ContractDao {
- return &ContractDao{
- engine: engine,
- }
- }
- // 获得本项目的合同项目节
- func (d *ContractDao) Get(id int) *models.CmContracts {
- data := &models.CmContracts{}
- _, err := d.engine.
- Where("id=? ", id).
- Get(data)
- if err != nil {
- data.Id = 0
- return data
- }
- return data
- }
- // 新增合同
- func (d *ContractDao) Add(contractData *models.CmContracts) error {
- session := d.engine.NewSession()
- defer session.Close()
- err := session.Begin()
- if err != nil {
- return errors.New("新增合同出错-db")
- }
- // 1.写入合同表
- _, err = session.Insert(contractData)
- if err != nil {
- log.Println(err)
- session.Rollback()
- return errors.New("新增合同出错")
- }
- // 2.更新项目节表
- _, err = session.Exec("UPDATE cm_tree_contracts SET `contract_id` = ?,`contract_name` = ?,`contract_code` = ?,`contract_price` = ? "+
- "where tree_id = ? and project_id = ? and bidsection_id = ? ",
- contractData.Id, contractData.Name, contractData.Code, contractData.Price,
- contractData.TreeId, contractData.ProjectId, contractData.BidsectionId)
- if err != nil {
- session.Rollback()
- return errors.New("新增合同出错-项目节更新失败")
- }
- // 3.更新标段目录金额合计
- // 3-1 获得项目-标段下合同总数
- // 3-2 获得项目标段下合同收入中金额
- _, err = session.Exec("UPDATE cm_tree SET `contracts` = ?,`contracts_income` = ? "+
- "where project_id = ? and bidsection_id = ? ",
- contractData.Id, contractData.Name, contractData.Code, contractData.Price,
- contractData.ProjectId, contractData.BidsectionId)
- if err != nil {
- session.Rollback()
- return errors.New("新增合同出错-标段目录更新失败")
- }
- err = session.Commit()
- if err != nil {
- session.Rollback()
- return errors.New("新增合同出错-db")
- }
- return nil
- }
|