12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /*
- * @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
- }
- // 新增合同
- // contractData *models.CmContracts
- // contractTotal 合同总数
- // priceTotal 收入总金额
- func (d *ContractDao) Add(contractData *models.CmContracts, contractTotal int, priceTotal float64) 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 = ? ",
- contractTotal, priceTotal,
- 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
- }
|