软件开发案例参考

前言:基于平台现有需求进行新功能模块开发与实现,以下内容为部分源码解析,仅提供一些思路参考,不予以客观指导,毕竟条条大路通罗马嘛;

语言:C#

工具:visual studio 2017/visual studio code

框架:.NET formwork 4.5

应用:外部API

准备工作:

        新建文件-visual C#-.net fromwork 选择4.5版本

1.继承服务插件几类:AbstractOperationServicePlugIn

2.引用,创建事件事务执行后重写方法;

public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
        {
            base.AfterExecuteOperationTransaction(e);
}

3.API准备,

4.创建字符串列表,使用StreamReader方法,从指定文件中读取数据

List<string> objects = new List<string>();
using (StreamReader reader = new StreamReader(@"your_path"))
            {
                while (!reader.EndOfStream)
                {
                    string line = reader.ReadLine();
                    
                    objects.Add(line);
                }
            }

 5.根据自定义文本中的内容进行遍历后打印,结合需求;

 Console.WriteLine(objects.First().ToString());
 Console.WriteLine(objects.Last().ToString());

6.建立客户端连接,登录

your_client client = new your_client(objects.First().ToString());
//此处登录信息方法ValidateLogin中参数以及参数类型结合个人所设
var loginResult = client.ValidateLogin("id", "user", objects.Last().ToString(), language);
var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();

7.获取登录结果之后,如果需要API数据库进行操作可参考一下内容同,如不需要则自行跳过;

 if (resultType == 1)
            {
//验证是否登录成功,登录成功以逗号进行分割
                var ids = string.Join(",",e.DataEntitys.Select(o => o[0]));

                string viewsql = string.Format("/dialect/--dialect为注释,数据库使用的事SQLserver,此处书写sql语句且将获取登录类型信息作为sql语句的最后条件进行查询",ids);
//调用此方法执行sql语句,获取结果存储在MAUCOL集合中,this.context连接上下文
//也可自定义方法是使用context,(public void 方法名(Context ctx){}),将this.context变更ctx即可
                DynamicObjectCollection MAUCOL = DbUtils.ExecuteDynamicObject(this.Context, viewsql);

8.在此假设对数据库中查询出来的数据为A\B\C\D\E,对此进行操作,思路为拆分信息后进行物理自动重组形成新的逻辑内容;

 if(MAUCOL != null && MAUCOL.Count > 0)
                {
//判断是否有数据进行操作,遍历,取出所需要的数据进行下一步操作;
                    for(int x = 0; x < MAUCOL.Count; x++)
                    {
//获取各个字段;
                        string a = Convert.ToString(MAUCOL[x]["A"]);
                        string b= Convert.ToString(MAUCOL[x]["B"]);
                        string c= Convert.ToString(MAUCOL[x]["C"]);
                        string d= Convert.ToString(MAUCOL[x]["D"]);
                        string e= Convert.ToString(MAUCOL[x]["E"]);

9.因为是需要将原有字段拆分后重组,所以需要查询在数据库对应表中是否存在,不存在写进去;

string aa = string.Format("/dialect/sql语句, 根据查询字段作为选定条件进行查询);
                        DynamicObjectCollection aasql = DbUtils.ExecuteDynamicObject(this.Context,aa);

10.使用正则进行拆分

 if(aasql.Count == 0)
                        {
                            string[] vs = Regex.Split(需要拆分的字段,"/",RegexOptions.IgnoreCase);
//分割以“\”
                            if(vs.Length >= 3)
                            {
//如果分割的长度大于4,那么分别取出
                                string aaa = vs[0];
                                string bbb = vs[1];
                                string ccc = vs[2];
                                string ddd = vs[3];
                                string eee = vs[4];

11.根据拆分出来的字段条件进行构建sql查询语气分别在数据库对应的表中查询出所需要的信息,因为查询拆分出五个信息 所以此处需要构建出五个语句在这里我只书写一个作为参考;

 string bb = string.Format("/dialect/以vs[0]第一个拆分字段为查询条件的sql语句'", vs[0]);
                                DynamicObjectCollection bbsql = DbUtils.ExecuteDynamicObject(this.Context,bb);
//此处需要对应书写其五个 分别为bbccddee,自定义变量名称即可

12.重组

        使用json进行

if (vs[0] == "拆分字段")
 {
    JObject jObject = new JObject();
    JObject modelobject = new JObject();

    modelobject.Add("数据库表A对应字段", aa);

    modelobject.Add("数据库表B对应字段", bb);

    modelobject.Add("数据库表C对应字段", cc);

    modelobject.Add("数据库表D对应字段", dd);

    modelobject.Add("数据库表E对应字段", ee);

//创建json数据,根据前边拆分的字段条件进行查询,维护在数据表中
    
    JArray entryarray = new JArray(); 

//
string AAA= string.Format("/dialect/以aabbccddee,作为查询条件的sql语句", aa,bb,cc,dd,ee);
                                                        DynamicObjectCollection AAAsql = DbUtils.ExecuteDynamicObject(this.Context,AA);

13.如果上边没有问题执行后会将数据写入进去,开始遍历写入具体信息数据;

for (int i = 0; i < AAsql.Count; i++)
     {
            JObject entryobject = new JObject();

             如需类型转换 F = Convert.如需类型转换(AAsql[i]["数据库字段"]);

             如需类型转换G = Convert.如需类型转换(AAsql[i]["数据库字段"]);

             如需类型转换H = Convert.如需类型转换(AAsql[i]["数据库字段"]);

             entryobject.Add("数据库字段1", F);

             entryobject.Add("数据库字段2 ", G);

             entryobject.Add("数据库字段2 ", H);

             JObject wjobject = new JObject();

             wjobject.Add("对应数据表结构字段与添加的字段一直的字段", 需要添加的字段);

             entryobject.Add("条件字段 ", wjobject);

             JObject yObject = new JObject();
             yObject.Add("对应数据表结构字段与添加的字段一直的字段2", 需要条件的第二个字段);

             JObject cjobject = new JObject();

             cjobject.Add("对应数据表结构字段与添加的字段一直的字段3", "");

			 //以此类推

              JObject fzjobject = new JObject();

              fzjobject.Add("对应数据表结构字段与添加的字段一直的字段4", yjObject);

              fzjobject.Add("对应数据表结构字段与添加的字段一直的字段5", cjobject);

              entryobject.Add("对应数据表结构字段与添加的字段一直的字段6", fzjobject);

                                                                entryarray.Add(entryobject);
                                                            }

14.创建保存方法向客户端

modelobject.Add("对应需要添加的类型字段 ", entryarray);
    jObject.Add("类型字段", modelobject);

	//构建SAVE提交方法客户端
	string SSAVE = jObject.ToString();
    var resultJsons = client.Save("数据表中头字段标识", jObject.ToString());

15.提交

string submitSW = string.Format("/*dialect*/sql语句以提交字段进行条件查询的", 字段);
   DynamicObjectCollection fidsql1 = DbUtils.ExecuteDynamicObject(this.Context, submitSW);
   if (fidsql1 != null && fidsql1.Count > 0)
    {
        for (int i = 0; i < fidsql1.Count; i++)
        {
            Int32 fid = Convert.ToInt32(fidsql1[i]["fid"]);
            JObject submitjobject = new JObject();
            submitjobject.Add("Ids", fid);
            var resultJsonss = client.Submit("数据表中头字段标识", submitjobject.ToString());

猜你喜欢

转载自blog.csdn.net/m0_74940474/article/details/140104855