zoukankan      html  css  js  c++  java
  • 云笔记代码流程分析 ---没用

    代码流程分析

    1. 笔记本操作

    1) 创建笔记本

    1、 前台输入笔记本名

    2、 前台向后台传入的参数

    笔记本的名字

    3、 后台封装

    a、 从session中获取用户名

    b、 创建时间戳

    c、 封装rowkey

    d、 保存到redis

    key:用户名

    value:list<rowkey|笔记本的名字|创建时间|状态>

    步骤:

    1、 获取jedis连接

    2、 jedis.rpush(用户名, rowkey|笔记本的名字|创建时间|状态)

    3、 close

    e、 保存到hbase

    rowkey:封装的rowkey

    列:笔记本名字,创建时间、状态

    步骤:

    1、 创建表链接

    2、 创建put(rowkey)

    3、 put.add(列)

    4、 table.put(put)

    5、 close

    f、 事务:

     当redis失败后,所有步骤停止

     当redis成功,hbase成功,即成功

     当redis成功,hbase失败,删除redis的内容(lrem)

    2) 删除笔记本

    1、 前台传过来的参数:笔记本的rowkey,笔记本的名字

    2、 后台:

    a、 action查询笔记本下是否有笔记,有笔记返回false

    3、 删除redis

    a、 拼串:rowkey|笔记本名|时间戳|状态

    b、 jedis.lrem(用户名,删除几次,rowkey|笔记本名|时间戳|状态)

    4、 删除hbase

    a、 获取rowkey

    b、 删除

    5、 事务:

    删除都成功

    redis不成功,都不成功

    redis成功,hbase不成功,增加redis

    3) 修改笔记本

    1、 前台输入:新的笔记本的名字

    2、 前台向后抬传入的参数:新的笔记本的名字,旧的笔记本的名,rowkey

    3、 后台的action处理

    a、分割rowkey,获取时间戳,用户名

    4、 redis

    a、 拼装旧的串:rowkey|旧的名字|时间戳|状态

    b、 拼新串:rowkey|新的名字|时间戳|状态

    c、 删除旧的串:jedis.lrem( 用户名,几次,旧串)

    d、 加新的串:jedis.rpush(用户名,新串)

    5、 hbase

    通过rowkey设置新的名字

    封装put(rowkey)

    put.add(新的名字)

    table.put(put);

    6、 事务:

    redis成功,hbase成功

    redis失败,都失败

    redis成功,hbase失败,删除redis的新的名字,添加旧的名字

    4) 查询用户的所有笔记本

    1、 前台传过来的参数:空

    2、 查询redis

    a、 从session中获取用户名

    b、 以用户名作为key,去redis查询

    c、 jedis.lrange(用户名,0,llen(用户名));

    d、 返回前台

    3、 如果redis失败,从hbase查

    1、 获取表链接htable

    2、 创建rowkey过滤器,前缀是”用户名_*”

    3、 循环处理结果

    2. 笔记操作

    5) 查询笔记本下的所有笔记列表

    1、 前台传过来的参数:笔记本的rowkey

    2、 后台处理hbase

    a、 创建nb表的表链接

    b、 创建get(笔记本的rowkey)

    c、 处理result结果集,json

    d、 将json转换为list

    e、 处理list中的值,用“|”分割每列,封装到n个note中

    f、 返回前台

    6) 增加笔记

    1、 前台输入的参数:笔记的名字

    2、 前台传到后台的参数:笔记本的rowkey,笔记的名字

    3、 action的处理

    a、 创建时间戳

    b、 用用户名和时间戳拼装笔记的rowkey

    4、 后台处理hbase的nb表

    将笔记添加到笔记本的笔记列表中

    a、 获取表链接

    b、 取出笔记本的历史笔记列表

    c、 将历史笔记列表中添加新的笔记信息

    d、 创建put(笔记本的rowkey)

    e、 put.add(新的笔记列表)

    f、 close

    5、 hbase的n表

    a、 将笔记的信息存到n表中

    7) 查询笔记详情

    1、 前台传到后台的参数:笔记的rowkey

    2、 后台处理:

    查询笔记表

    8) 修改笔记

    1、 前台输入的参数:笔记的名字,笔记的内容

    2、 前台向后台传的参数:笔记本的rowkey、笔记的rowkey、新笔记的名字、笔记的内容、旧的笔记的名字

    3、 修改nb表

    a、 获取nb表的表链接

    b、 查询历史的笔记信息

    c、 将笔记信息装成list

    d、 拼装旧的笔记信息的串

    e、 list.remove(旧的笔记信息的串)

    f、 拼装新的笔记信息的串

    g、 list.add(新的笔记信息的串)

    h、 添加操作htable.put().

    4、 修改n表

    重新添加笔记名字和笔记内容

    5、 事务:

    a、nb表失败,都失败

    b、都成功

    c、nb成功,n失败,还原nb表的笔记列表

    9) 迁移笔记

    1、 前台传过来的参数:旧的笔记本的rowkey,新的笔记本的rowkey,笔记的rowkey,笔记的名字

    2、 后台处理

    拼装笔记信息的串

    3、 修改旧的笔记本

    a、 将笔记本下的笔记列表查出来

    b、 删除笔记信息

    4、 修改新的笔记本

    a、将笔记本下的笔记列表查出来

    b、添加笔记信息

    5、 事务:

    a、 都成功

    b、 都失败

    c、 第一个操作成功,第二个操作失败,还原第一个操作

    10) 彻底删除笔记

    1、 前台传过来的参数:笔记的rowkey,笔记的名字,笔记本的rowkey

    2、 后台处理(nb表):

    a、 拼串

    b、 获取历史的笔记本的笔记列表list

    c、 将串从list中删除

    d、 保存list

    3、 后台处理(n表):

    a、通过rowkey删除笔记

    4、 事务:

    a、 都成功

    b、 都失败

    c、 笔记本成功,笔记失败,还原笔记本

  • 相关阅读:
    ASP.NET CORE 使用 EF CORE访问数据库
    asp.net core连接sqlserver
    angular2+typescript在asp.net MVC Web项目上的实现
    leaflet在地图上加载本地图片
    AngularJs调用NET MVC 控制器中的函数进行后台操作
    AngularJs 的ng-include指令的使用
    redis持久化和分布式实现
    sqlserver事务隔离
    ASP.NET MVC 实现伪静态
    .NET下集中实现AOP编程的框架
  • 原文地址:https://www.cnblogs.com/shan13936/p/13785030.html
Copyright © 2011-2022 走看看