123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- package bparamapi
- import (
- "errors"
- "ipsomc/core/dao/mysql/mysqlapi"
- "ipsomc/core/dao/mysql/mysqlmodel"
- "ipsomc/module/bparam/bparammodel"
- "ipsomc/module/project/projectmodel"
- "ipsomc/public"
- "github.com/jinzhu/gorm"
- )
- type BparamApi struct {
- MySqlApi mysqlapi.MySqlApi
- }
- func (obj *BparamApi) AddBtsBaseParam(dataModel *bparammodel.BtsBaseParam) error {
- btsBaseModel := new(bparammodel.BtsBaseParam)
- projectModel := new(projectmodel.Project)
-
- if dataModel.SourceID == 3 {
- companyId, err := obj.GuiGetCompanyIdByProjectId(dataModel)
- if err != nil {
- return err
- } else {
- dataModel.CompanyID = companyId
- }
- }
-
- if err := obj.MySqlApi.GetDb().Model(btsBaseModel).Where("company_id=? and project_id=? and bts_id=?", dataModel.CompanyID, dataModel.ProjectID, dataModel.BtsID).First(btsBaseModel).Error; err != nil {
- if err != gorm.ErrRecordNotFound {
- return err
- }
- }
-
- if btsBaseModel.ID > 0 {
- dataModel.ID = btsBaseModel.ID
- if err := obj.MySqlApi.GetDb().Model(btsBaseModel).Updates(map[string]interface{}{"carrier_id": dataModel.CarrierID, "timeslot": dataModel.Timeslot}).Where("id=?", dataModel.ID).Error; err != nil {
- return err
- }
- } else {
-
-
- if err := obj.MySqlApi.GetDb().Model(projectModel).Where("project_id=?", dataModel.ProjectID).First(projectModel).Error; err != nil {
- if err != gorm.ErrRecordNotFound {
- return err
- }
- }
-
- if projectModel.ID <= 0 {
- return errors.New("该项目编号不存在,请与系统管理员联系")
- } else {
-
- if err := obj.MySqlApi.AddItem(dataModel); err != nil {
- return err
- }
- }
- }
- return nil
- }
- func (obj *BparamApi) UpdateBtsBaseParam(dataModel *bparammodel.BtsBaseParam, dataMap map[string]interface{}) error {
- var count int = 0
-
- if err := obj.MySqlApi.GetDb().Model(dataModel).Where("id<>? and company_id=? and project_id=? and bts_id=?", dataModel.ID, dataModel.CompanyID, dataModel.ProjectID, dataModel.BtsID).Count(&count).Error; err != nil {
- return err
- }
- if count > 0 {
- return errors.New("该基站记录已经存在")
- }
-
- delete(dataMap, "project_id")
-
- if err := obj.MySqlApi.UpdateItem(dataModel, dataMap); err != nil {
- return errors.New("数据库操作失败")
- }
- return nil
- }
- func (obj *BparamApi) UpdateBtsStatus(mapHeart map[string]public.HeartMapValue) error {
- modeBaseParam := new(bparammodel.BtsBaseParam)
-
- tx := obj.MySqlApi.GetDb().Begin()
-
- if err := tx.Model(modeBaseParam).Update("status", 1).Error; err != nil {
- tx.Rollback()
- return err
- }
-
- if len(mapHeart) > 0 {
-
- for _, v := range mapHeart {
- if err := tx.Model(modeBaseParam).Where("project_id=? and bts_id=?", v.ProjectID, v.BtsID).Update("status", 2).Error; err != nil {
- tx.Rollback()
- return err
- }
- }
- }
-
- if err := tx.Commit().Error; err != nil {
- tx.Rollback()
- return err
- }
-
- public.PublicDeleteAllItem()
- return nil
- }
- func (obj *BparamApi) DeleteBtsBaseParam(dataModel *bparammodel.BtsBaseParam) error {
- if err := obj.MySqlApi.DeleteItem(dataModel); err != nil {
- return errors.New("删除记录失败")
- }
- return nil
- }
- func (obj *BparamApi) GetBtsBaseParamById(dataModel *bparammodel.BtsBaseParam) error {
- if err := obj.MySqlApi.GetItemByID(dataModel); err != nil {
- return errors.New("查询记录失败")
- }
- return nil
- }
- func (obj *BparamApi) GetBtsBaseParamList(dataModel *bparammodel.BtsBaseParam, listParam *mysqlmodel.ListParam, dataList interface{}) error {
- if err := obj.MySqlApi.GetItemList(dataModel, listParam, dataList); err != nil {
- return err
- }
- return nil
- }
- func (obj *BparamApi) GetBtsBaseParamPageList(dataModel *bparammodel.BtsBaseParam, pageListParam *mysqlmodel.PageListParam, dataList interface{}) (mysqlmodel.PageListData, error) {
- pageListData, err := obj.MySqlApi.GetPageItemList(dataModel, pageListParam, dataList)
- if err != nil {
- return pageListData, err
- }
- return pageListData, nil
- }
- func (obj *BparamApi) GuiGetCompanyIdByProjectId(dataModel *bparammodel.BtsBaseParam) (int, error) {
- modelProject := new(projectmodel.Project)
- var companyId int = 0
-
- if err := obj.MySqlApi.GetDb().Model(modelProject).Where("project_id=?", dataModel.ProjectID).First(modelProject).Error; err != nil {
- return companyId, err
- }
- if modelProject.CompanyID <= 0 {
- return companyId, errors.New("未找到与项目匹配的公司资料")
- }
- return modelProject.CompanyID, nil
- }
- func (obj *BparamApi) GetRecordIdByProjectIdAndBtsId(dataModel *bparammodel.BtsBaseParam) error {
- modelBtsBaseParam := new(bparammodel.BtsBaseParam)
-
- if err := obj.MySqlApi.GetDb().Model(modelBtsBaseParam).Where("project_id=? and bts_id=?", dataModel.ProjectID, dataModel.BtsID).First(modelBtsBaseParam).Error; err != nil {
- return err
- }
- dataModel.ID = modelBtsBaseParam.ID
- return nil
- }
- func (obj *BparamApi) GuiCheckBparamRecordIsExist(dataModel *bparammodel.BtsBaseParam) (int, error) {
- modelTmp := new(bparammodel.BtsBaseParam)
-
- if err := obj.MySqlApi.GetDb().Model(modelTmp).Where("company_id=? and project_id=?", dataModel.CompanyID, dataModel.ProjectID).First(modelTmp).Error; err != nil {
- return modelTmp.ID, err
- }
- if modelTmp.ID <= 0 {
- return modelTmp.ID, nil
- }
- dataModel.ID = modelTmp.ID
- return modelTmp.ID, nil
- }
- func (obj *BparamApi) GuiUpdateBaseParam(dataModel *bparammodel.BtsBaseParam, dataMap map[string]interface{}) error {
- if err := obj.MySqlApi.UpdateItem(dataModel, dataMap); err != nil {
- return errors.New("数据库操作失败")
- }
- return nil
- }
- func (obj *BparamApi) GetMobileBtsParamList(dataModel *bparammodel.BtsBaseParam) ([]bparammodel.MobileBtsParam, error) {
- tempModel := new(bparammodel.BtsBaseParam)
- dataList := []bparammodel.MobileBtsParam{}
- db := obj.MySqlApi.GetDb()
- if err := db.Model(tempModel).Where("project_id=? and enable_flag=1", dataModel.ProjectID).Scan(&dataList).Error; err != nil {
- return dataList, err
- }
- return dataList, nil
- }
|