12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * @description: 编号规则数据库操作相关
- * @Author: LanJianRong
- * @Date: 2020-11-27
- * @FilePath: \construction_management\dao\rule_dao.go
- */
- package dao
- import (
- "github.com/go-xorm/xorm"
- "go.mod/models"
- )
- //数据库操作引擎
- type RuleDao struct {
- engine *xorm.Engine
- }
- //获得一个DAO对象
- func NewRuleDao(engine *xorm.Engine) *RuleDao {
- return &RuleDao{
- engine: engine,
- }
- }
- // 通过项目id和标段id查找
- func (d *RuleDao) FindByPidWithBid(pid int, bid int) *models.CmRule {
- data := &models.CmRule{BidsectionId: bid, ProjectId: pid}
- ok, err := d.engine.Get(data)
- if ok && err == nil {
- return data
- } else {
- data.Id = 0
- return data
- }
- }
- // 根据pid和bid更新、不存在则创建
- func (d *RuleDao) UpdateOrCreate(pid int, bid int, key string, value string) error {
- data := &models.CmRule{BidsectionId: bid, ProjectId: pid}
- has, err := d.engine.Get(data)
- if key == "safe_rule" {
- data.SafeRule = value
- } else if key == "quality_rule" {
- data.QualityRule = value
- } else if key == "contract_return_rule" {
- data.ContractReturnRule = value
- } else {
- data.ContractPaidRule = value
- }
- if has && err == nil {
- _, err = d.engine.Cols(key).Id(data.Id).Update(data)
- } else if !has && err == nil {
- _, err = d.engine.Insert(data)
- }
- return err
- }
|