package sys import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/pb" ) func (this *apiComp) FuncActivateCheck(session comm.IUserSession, req *pb.SysFuncActivateReq) (errdata *pb.ErrorData) { return } // cond 值 为0 表示功能未开启 1 功能开启 需要手动激活 2 功能开启并激活 func (this *apiComp) FuncActivate(session comm.IUserSession, req *pb.SysFuncActivateReq) (errdata *pb.ErrorData) { var ( list *pb.DBOpenCond err error ) rsp := &pb.SysFuncActivateResp{} opencfg, err := this.module.configure.GetOpenCondCfgById(req.Cid) if err == nil { if list, err = this.module.modelSys.GetOpenCondList(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } if v, ok := list.Cond[req.Cid]; !ok || v != 1 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_OpenCondActivate, Title: pb.ErrorCode_OpenCondActivate.ToString(), } return } if id := this.module.modelSys.CheckValidCond(session.GetUserId(), opencfg, list); id == "" { // 条件不满足 errdata = &pb.ErrorData{ Code: pb.ErrorCode_OpenCondErr, Title: pb.ErrorCode_OpenCondErr.ToString(), Message: req.Cid, } return } } else { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: req.Cid, } return } list.Cond[req.Cid] = 2 this.module.modelSys.ChangeOpenCondData(session.GetUserId(), map[string]interface{}{ "cond": list.Cond, }) rsp.Cid = req.Cid if err := session.SendMsg(string(this.module.GetType()), "funcactivate", rsp); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_SystemError, Title: pb.ErrorCode_SystemError.ToString(), } return } go this.module.wtask.OpenCmdNotice(session.GetUserId(), req.Cid) //手动激活通知模块 for _, m := range opencfg.Notify { i, err := this.service.GetModule(core.M_Modules(m)) if err != nil { this.module.Errorln(err) continue } if ic, ok := i.(comm.IOpenCmdNotice); ok { go ic.OpenCmdNotice(session.GetUserId(), req.Cid) } } return }