package base import ( "context" "dashoo.cn/opms_libary/multipart" "dashoo.cn/opms_libary/myerrors" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/util/gconv" "github.com/gogf/gf/util/gvalid" "dashoo.cn/common_definition/comm_def" projModel "dashoo.cn/micro/app/model/proj" projSrv "dashoo.cn/micro/app/service/proj" ) type BusinessHandler struct{} // Swagger:Business 项目 项目列表 func (p *BusinessHandler) GetList(ctx context.Context, req *projModel.ProjBusinessSearchReq, rsp *comm_def.CommonMsg) error { businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } total, list, err := businessService.GetList(req) if err != nil { return err } rsp.Data = g.Map{"list": list, "total": total} return nil } // Swagger:Business 项目 项目详情 func (p *BusinessHandler) GetEntityById(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error { // 参数校验 if req.Id == 0 { return myerrors.ValidError("id参数有误!") } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } rsp.Data, err = businessService.GetEntityById(req.Id) if err != nil { return myerrors.QueryError(err, "项目") } return nil } // Swagger:Business 项目 获取项目产品 func (p *BusinessHandler) GetBusinessProduct(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error { // 参数校验 if req.Id == 0 { return myerrors.ValidError("项目参数有误!") } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } productList, err := businessService.GetBusinessProduct(req.Id) if err != nil { return err } rsp.Data = productList return nil } // Swagger:Business 项目 获取项目动态 func (p *BusinessHandler) GetBusinessDynamics(ctx context.Context, req *projModel.BusinessReq, rsp *comm_def.CommonMsg) error { if req.BusId == 0 { return myerrors.ValidError("项目参数有误!") } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } total, list, err := businessService.GetBusinessDynamics(req) if err != nil { return err } rsp.Data = g.Map{"list": list, "total": total} return nil } // Swagger:Business 项目 获取项目动态列表 func (p *BusinessHandler) GetBusinessDynamicsList(ctx context.Context, req *projModel.BusinessDynamicsReq, rsp *comm_def.CommonMsg) error { if req.BusId == 0 { return myerrors.ValidError("项目参数有误!") } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } total, list, err := businessService.GetBusinessDynamicsList(req) if err != nil { return err } rsp.Data = g.Map{"list": list, "total": total} return nil } // Swagger:Business 项目 创建项目 func (p *BusinessHandler) Create(ctx context.Context, req *projModel.AddProjBusinessReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } // 校验产品数据 for _, v := range req.Products { if err := gvalid.CheckStruct(ctx, v, nil); err != nil { return err } } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.Create(req) if err != nil { return myerrors.CreateError(err, "项目") } return nil } // Swagger:Business 项目 更新项目 func (p *BusinessHandler) UpdateById(ctx context.Context, req *projModel.UpdateProjBusinessReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.UpdateById(req) if err != nil { return myerrors.UpdateError(err, "项目") } return nil } // Swagger:Business 项目 删除项目 func (p *BusinessHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error { // 参数校验 if len(req.Ids) == 0 { return myerrors.ValidError("id参数有误!") } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.DeleteByIds(req.Ids) if err != nil { return myerrors.DeleteError(err, "项目") } return nil } // BusinessUpgrade 项目升级 // Swagger:Business 项目 项目升级 func (p *BusinessHandler) BusinessUpgrade(ctx context.Context, req *projModel.BusinessUpgradeReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } if req.NboType != projSrv.StatusC && req.NboBudget <= 0 { return myerrors.TipsError("项目预算不能小于0") } if (req.NboType == projSrv.StatusA || req.NboType == projSrv.StatusB) && req.QuotationFile == "" { return myerrors.TipsError("请上传报价单文件") } if req.NboType == projSrv.StatusA && req.IsAdoptDashoo == "10" && req.DashooParamFile == "" { return myerrors.TipsError("请上传大数技术参数文件") } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.BusinessUpgrade(req, nil) if err != nil { return err } return nil } // BusinessUpgradeAorB 项目升级A类或B类 // Swagger:Business 项目 项目升级 func (p *BusinessHandler) BusinessUpgradeAorB(ctx context.Context, formData *multipart.Form, rsp *comm_def.CommonMsg) error { req := new(projModel.BusinessUpgradeReq) if err := gconv.Struct(formData.Value, req); err != nil { return err } if req.NboType != projSrv.StatusC && req.NboBudget <= 0 { return myerrors.TipsError("项目预算不能小于0") } if req.NboType == projSrv.StatusA || req.NboType == projSrv.StatusB { if len(formData.File) == 0 { return myerrors.TipsError("请上传报价单文件") } if _, ok := formData.File["quotationFile"]; !ok { return myerrors.TipsError("请上传报价单文件") } } if req.NboType == projSrv.StatusA && req.IsAdoptDashoo == "10" && len(formData.File) > 0 { if _, ok := formData.File["dashooParamFile"]; !ok { return myerrors.TipsError("请上传大数技术参数文件") } } // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.BusinessUpgrade(req, formData.File) if err != nil { return err } rsp.Code = 200 rsp.Msg = "操作成功" return nil } // BusinessDowngrade 项目降级 // Swagger:Business 项目 项目降级 func (p *BusinessHandler) BusinessDowngrade(ctx context.Context, req *projModel.BusinessDowngradeReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.BusinessDowngrade(req) if err != nil { return err } return nil } // BusinessTransfer 项目转移 // Swagger:Business 项目 项目转移 func (p *BusinessHandler) BusinessTransfer(ctx context.Context, req *projModel.BusinessTransferReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.BusinessTransfer(req) if err != nil { return err } return nil } // ConvertToReserve 转为储备项目 // Swagger:Business 项目 转为储备项目 func (p *BusinessHandler) ConvertToReserve(ctx context.Context, req *projModel.BusinessToReserveReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.ConvertToReserve(req) if err != nil { return err } return nil } // SetPrimacyContact 设置首要联系人 // Swagger:Business 项目 设置首要联系人 func (p *BusinessHandler) SetPrimacyContact(ctx context.Context, req *projModel.BusinessPrimacyContactReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.SetPrimacyContact(req) if err != nil { return err } return nil } // UpdateBusinessStatus 更新项目状态 // Swagger:Business 项目 更新项目状态 func (p *BusinessHandler) UpdateBusinessStatus(ctx context.Context, req *projModel.UpdateBusinessStatusReq, rsp *comm_def.CommonMsg) error { // 参数校验 if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } businessService, err := projSrv.NewBusinessService(ctx) if err != nil { return err } err = businessService.UpdateBusinessStatus(req) if err != nil { return err } return nil }