Пример #1
0
        public void Get(ActionRequest req, ActionResponse res)
        {
            string msg = "";

            try
            {
                //权限判断,是否有登录(根据业务确定是否需要此判断)

                /*
                 * if (!Session.IsLogin) // (!Session.IsAdmin)
                 * {
                 *  res.Error(VERIFY_ERROR);
                 *  return;
                 * }
                 */

                ActReqParam param;
                if (!req.TryGetParam(ENTITY_REQ, out param))
                {
                    res.Error("参数" + ENTITY_REQ + "错误");
                    return;
                }
                long obId = 0;
                if (!param.TryGetFirstLong("obId", out obId))
                {
                    res.Error("参数" + ENTITY_REQ + "属性obId错误");
                    return;
                }

                //用户相关

                /*
                 * long userId = 0;
                 * if (!param.TryGetFirstLong("userId", out userId))
                 * {
                 *  res.Error("参数" + ENTITY_REQ + "的属性userId错误");
                 * }
                 */

                ObModelInfo ei = null;
                ei = GetEntity(obId, out msg);
                //ei = GetEntity(obId, userId, out msg); //用户相关

                if (ei == null)
                {
                    res.Error(msg);
                    return;
                }
                ActionResult ar = res.AddResult(ENTITY_RES, ENTITY_FIELDS);
                ar.AddModel(ei);
            }
            catch (Exception ex)
            {
                msg = "ext.ObModel.get 接口调用异常";
                Logger.Error(ex, msg);
                res.Error(msg);
            }
        }
Пример #2
0
        public void Update(ActionRequest req, ActionResponse res)
        {
            string msg = "";

            try
            {
                //权限判断一,需要登录(用户或管理员)
                if (!Session.IsLogin)
                {
                    res.Error(VERIFY_ERROR);
                    return;
                }
                YsMemberInfo user = Session.User;   //获取登录用户信息
                //权限判断二,必须是管理员

                /*
                 * if (!Session.IsAdmin)
                 * {
                 *  res.Error(VERIFY_ERROR);
                 *  return;
                 * }
                 */

                ObModelInfo ei = null;
                //解析请求参数,转换为实体类
                ei = req.GetModelByNameOrFirst <ObModelInfo>(ENTITY_REQ);

                //解析请求参数(针对有规律的实体结构(同前缀的同构表))
                //参照 : public void Add(ActionRequest req, ActionResponse res) 方法

                //调用业务处理方法一(用户无关)
                ei = UpdateEntity(ei, out msg);

                /*
                 * //调用业务处理方法二(用户相关,操作权限判断)
                 * ei = UpdateEntity(ei, user, out msg);
                 */

                if (ei == null)
                {
                    res.Error(msg);
                    return;
                }
                //返回结果集
                ActionResult ar = res.AddResult(ENTITY_RES, ENTITY_FIELDS); //定义返回结果集名称和字段名
                ar.AddModel(ei);                                            //添加结果集到ActionResult
            }
            catch (Exception ex)
            {
                msg = "ys.ObModel.update 接口调用异常";
                Logger.Error(ex, msg);
                res.Error(msg);
            }
        }
Пример #3
0
        /**
         * 1.接口命名方式 [程序集别名.接口类别名.接口方法别名]
         *  除首字母外,接口命名是区分大小写的!
         *  程序集别名:bin目录下,配置文件AppConfig.xml中的apiAssemblies节点下的assembly节点的name属性
         *  接口类别名:业务逻辑类名称去掉BL后缀(ObModelBL => obModel)
         *  接口方法别名:如 add,update,get,list,delete等
         *  示例:ys.obModel.add; ys.obModel.get
         * 2.接口调用权限:配置文件AppConfig.xml中的apiServes节点下的serv节点
         * 3.接口执行权限:通过继承基类,使用YsSession进行用户角色判断
         */

        #region [新增单实体]
        public void Add(ActionRequest req, ActionResponse res)
        {
            string msg = "";

            try
            {
                //权限判断一,需要登录(用户或管理员)
                if (!Session.IsLogin)
                {
                    res.Error(VERIFY_ERROR);
                    return;
                }
                //权限判断二,必须是管理员

                /*
                 * if (!Session.IsAdmin)
                 * {
                 *  res.Error(VERIFY_ERROR);
                 *  return;
                 * }
                 */

                ObModelInfo ei = null;
                //解析请求参数,转换为实体类(针对单一实体结构)
                ei = req.GetModelByNameOrFirst <ObModelInfo>(ENTITY_REQ);

                //解析请求参数(针对有规律的实体结构(同前缀的同构表))

                /****
                *  ActReqParam param = req.GetParamByNameOrFirst(ENTITY_REQ);
                *  if (param == null)
                *  {
                *   res.Error("参数" + ENTITY_REQ + "错误");
                *   return;
                *  }
                *  //定义参数(对于DateTime类型,以"yyyy-MM-dd HH:mm:ss"格式的字符串处理)
                *  long obId = 0;
                *  int obLevel = 0;
                *  string obName = "";
                *  string obDescri = "";
                *  bool obEnabled = false;
                *  decimal obMoney = 0.0m;
                *  double obScore = 0.0d;
                *  long userId = 0;
                *  //验证参数(参数名必须和ObModel实体ObModelInfo的属性别名一致)
                *  if (!param.TryGetFirstLong("obId", out obId))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性obId错误");
                *   return;
                *  }
                *  if (!param.TryGetFirstInt("obLevel", out obLevel))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性obLevel错误");
                *   return;
                *  }
                *  if (!param.TryGetFirstString("obName", out obName))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性obName错误");
                *   return;
                *  }
                *  if (!param.TryGetFirstString("obDescri", out obDescri))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性obDescri错误");
                *   return;
                *  }
                *  if (!param.TryGetFirstBool("obEnabled", out obEnabled))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性obEnabled错误");
                *   return;
                *  }
                *  if (!param.TryGetFirstDecimal("obMoney", out obMoney))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性obMoney错误");
                *   return;
                *  }
                *  if (!param.TryGetFirstDouble("obScore", out obScore))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性obScore错误");
                *   return;
                *  }
                *  if (!param.TryGetFirstLong("userId", out userId))
                *  {
                *   res.Error("参数" + ENTITY_REQ + "的属性userId错误");
                *   return;
                *  }
                *  //设置实体参数值
                *  long uid = userId % 1024;
                *  string tableNameFormat = @"TbObModel_{0}"; //同前缀的同构表名格式定义
                *  string tableName = String.Format(tableNameFormat, uid);
                *  ei = new ObModelInfo(tableName);
                *  ei.ObLevel.Set(obLevel);
                *  ei.ObName.Set(obName);
                *  ei.ObDescri.Set(obDescri);
                *  ei.ObEnabled.Set(obEnabled);
                *  ei.ObMoney.Set(obMoney);
                *  ei.ObScore.Set(obScore);
                *  ei.UserId.Set(userId);
                ****/

                //调用业务处理方法
                ei = AddEntity(ei, out msg);
                if (ei == null)
                {
                    res.Error(msg);
                    return;
                }
                //返回结果集
                ActionResult ar = res.AddResult(ENTITY_RES, ENTITY_FIELDS); //定义返回结果集名称和字段名
                ar.AddModel(ei);                                            //添加结果集到ActionResult
            }
            catch (Exception ex)
            {
                msg = "ys.ObModel.add 接口调用异常";
                Logger.Error(ex, msg);
                res.Error(msg);
            }
        }
Пример #4
0
        public void List(ActionRequest req, ActionResponse res)
        {
            string       msg = "";
            ListAttrInfo la;

            try
            {
                if (!Session.IsAdmin)   //权限判断,是管理员
                {
                    res.Error(VERIFY_ERROR);
                    return;
                }

                ObModelQuery       qry  = req.GetModelByNameOrFirst <ObModelQuery>(QUERY);
                List <ObModelInfo> list = GetList(qry, out la, out msg);
                if (list == null)
                {
                    res.Error(msg);
                    return;
                }

                ActionResult ar = res.AddResult(ENTITY_RES, ENTITY_FIELDS);
                ar.AddModels <ObModelInfo>(list);

                ActionResult arAttr = res.AddResult(LISTATTR, LISTATTR_FIELDS);
                arAttr.AddModel(la);

                //获取关联结果集
                if (qry.GetRelation.IsTrue())
                {
                    ActionResult arRe = res.AddResult(RELATION_RES, RELATION_FIELDS);
                    if (list.Count > 0)
                    {
                        //获取ObModel的obId串
                        List <long> obIds = new List <long>();
                        for (int i = 0, j = list.Count; i < j; i++)
                        {
                            obIds.Add(list[i].ObId.Value);
                        }
                        //调用ObRelation实体对应的BL类中的获取列表方法
                        //  ObRelationInfo 中属性 ObId 对应 ObModelInfo 的 ObId
                        //  RelationQuery 中属性 ObIds 对应 ObModelInfo 的 ObId (多个)

                        /*
                         * RelationBL rbl = new RelationBL();
                         * RelationQuery rqry = new RelationQuery();
                         * ListAttrInfo rla = new ListAttrInfo();
                         * rqry.PageNo = 1;
                         * rqry.PageSize = list.Count; //
                         * rqry.ObIds.Set(obIds);
                         * List<ObRelationInfo> rList = rbl.GetList(rqry, out rla, out msg);
                         * arRe.AddModels<ObRelationInfo>(rList);
                         */
                    }
                    else
                    {
                        arRe.AddModels <ObRelationInfo>(new List <ObRelationInfo>());
                    }
                }
            }
            catch (Exception ex)
            {
                msg = "ys.obModel.list 接口调用异常";
                Logger.Error(ex, msg);
                res.Error(msg);
            }
        }