使用Asp.Net MVC开发兼职文章系统

我已经开发好了,你拿去用就是了。

 

以下是README的内容,包含功能要求和开发过程的一些思考:

一、功能
1、学生兼职人员文章(任务、自由编写),审核(通过,退回修改,无效),并按每15天结算一次费用,满1000元以后才能提现。
2、公司内部人员发文章,审核(通过,退回修改,无效),可选有无金额
3、医院医生发文章,审核(通过,退回修改,无效),可选有无金额
4、特殊账户,无需审核,直接发布,可选有无金额
5、文章分类,可沿用现在小刘那开发的程序里面的分类
6、设置文章金额,通过统计通过文章(普通、任务、精华、高度原创等)数量,生成总金额报表
7、添加账户,添加账户属性,添加文章属性,设置每种属性文章价格
8、登陆账户提示通过多少文章,总计金额多少,已经提现多少,未提现多少等提示信息
9、审核账户,审核文章是否通过,财务账户再审核金额再告知发布者。
10、和小刘程序对接下,加入项目下面文章,或者设置接口。
11、文章发布模块参考织梦的。
12、所有文章入数据库,后期做接口调用,或者输出。
13、财务账号审核后付款,付款后财务设置账号状态(已付,未付)
二、任务
按功能流程设计表、权限功能设计。
三、流程

发文【待审核】-》审核【已审核、待结算(待付款)】-》结算(审核账目总额大于1000、月中和月底各结算一次)【已结算(已付款)】

四、表
【文章】Article
 标题、摘要、关键词、内容(Html)、作者、时间、核准级别ID、
当时价格、审核状态(枚举)、结算状态(枚举)、封面图片ID、审核备注、项目ID
    
【文章图片】1-*ArticleImage
 文章ID
 图片地址
 
【用户】User
 姓名、角色(枚举)、密码、是否启用

【用户-银行账户】1-*UserBankAccount
 用户ID
 姓名
 开户行、
 银行账号、
 是否启用

【角色】枚举 写入代码
 审核员(审核文章、设置文章级别、发布任务)、
 投稿人(发文需审核、已审核的不可修改)、
 作者(发文无需审核)、
 管理员(所有权限)
 财务(结算)

【用户资产】UserProperty
 全部文章数
 已审核文章数(通过数量\总计金额多少)

 已结算文章数(已经提现多少)
 待结算文章数
 已结算资金
 待结算资金(多少还未结算)
 普通文章数
 任务文章数
 精华文章数
 原创文章数
 
【交易结算】Transaction
 作者ID
 金额
 文章ID列表
 时间
 结算人
 结算方式

【文章需求】ArticleDemand
 项目ID
 关键词
 需求数量
 任务要求
 开始时间
 截止时间
 是否终止(需求数量或截止时间中任意一个满足则终止任务,需求数量等于0表示不限数量)
 发布人

【文章级别】AuditLevel
 级别ID
 级别名称
 级别价格
 更新日期
 更新人

【文章级别价格历史记录】AuditLevelModify 修改文章价格时生成一份历史记录
 级别ID
 级别价格
 生效时间
 失效时间
 操作人 

五、页面
1、【用户】兼职文章编辑页面(具体参考120ask文章系统,多个文章关键词项),通用于所有账号编辑。【添加文章、领文章任务、我发布的待审核文章、我发布的所有文章】
2、【管理】发布任务【设置文章关键词、可选设置文章标题(即为选择设或不设标题均可)、归属栏目(选择可设或不设)、设置任务金额】,可审核账户发布。
3、【管理】审核,阅读文章,设置属性【通过(普通、任务[自动]、精华、原创)、退回修改、无效等】。
4、【管理】财务,设置文章属性(普通、任务[自动]、精华、原创)价格,审核账户金额,文章数量,设置每个账户已提现多少,还剩余多少未提现。
5、【管理】报表:分账户和总数统计每个账户通过多少篇,未通过多少篇;普通、任务[自动]、精华、原创个多少篇;分账户和总数,每个账户多少钱,已结算多少,未结算多少。
6、【用户】登陆后,显示通过数量,总计金额,多少还未结算,还有多久可结算(达到1000元以上后计算时间)
7、【管理】Admin账户:开设账户,设置账户属性(兼职、医生、内部账户、财务、审核账户等),添加修改账户属性、文章属性;

六、其他
交易表冗余评定等级中的字段以实现价格保留(避免因等级变更导致已有交易的金额变更)
同时增加变更记录表记录变更情况

开发:
权限检查不使用if else结构。通过继承Authorize特性设计权限组件(并通过Permission表的featureName关联到控制器和Action)


===========================================否定的==============================================================================
当前权限设计和实际想法不兼容。需要重新设计权限功能。
##想法概述
通过数据库或者文件配置【某个用户】在【指定方法】上的【多个操作】的权限级别。
USER.ACTION.PERMISSION_IN_DATA

如果对于数据列表的鉴权路径为
AREA.CONTROLLER.ACTION.USER_PERMISSION_IN_DATA
那么,需要的参数有如下这些,方括号表示来源
====================Feature==================
M)[CONTEXT] AREA                (区域)
M)[CONTEXT] CONTROLLER            (控制器)
M)[CONTEXT] ACTION                (动作)
=============================================
N)[CONTEXT] CURRENT_USER ->    
        [DATABASE] USER_ROLE -> 
            [CONFIGURATION] USER_PERMISSION_IN_FEATURE (从用户的角色中读取用户的可用标准权限)


在如上的参数中,分组为M的表示粗粒度的控制,由Filter实现。分组为N的表示数据上严格的权限控制,在Action内实现。

我们将在认证AREA.CONTROLLER.ACTION完成时通过辅助方法将一个ROLE_PERMISSION_IN_FEATURE对象注入到当前请求中。
该对象可以在编码Action时从辅助方法取出作为鉴权的参数。
在单个Action中通过判断情况来执行不同的逻辑。

##对象结构
SYSTEM_FEATURE
{
    NAME,
    DESCRIPTION,
    AREA,
    CONTROLLER,
    ACTION,
}

ROLE_PERMISSION_IN_FEATURE
{
    ROLE_ID                        [INT32],        //角色
    FEATURE_ID                    [INT32],        //功能
    STANDARD_PERMISSION_LEVEL    [ENUM_FLAG]        //所拥有的标准权限级别
}

ROLE_PERMISSION_IN_USERDEFINED_FEATURE
{
    ROLE_ID                        [INT32],        //角色
    USERDEFINED_FEATURE            [ENUM_FLAG],    //用户定义的功能
    STANDARD_PERMISSION_LEVEL    [ENUM_FLAG]        //所拥有的标准权限级别
}

##菜单设计
MENU
{
    MENU_ID,
    ROLE_ID, //用于鉴权
    FeatureID, //用于提取URI
    Params [STRING],
    HrefHash [], //浏览器定位
    TEXT, //显示文字
    TITLE, //提示文字
    GroupName [STRING], //分类名称
    Enabled, //启用
    SequenceID, //排序
    Cagetory [ENUM_FLAG] //侧边栏菜单、顶部导航菜单
}
====================================================否定的结束=============================================


把简单的想复杂了。压根都不需要什么灵活权限管理,仅仅if-else就能搞定。。草!。



===========================================================================================================
http://localhost/Account/LogOn?ReturnUrl=%2f

管理 admin admin
作者 author author 发文需要人审核
高级作者 advauthor advauthor 发文自动审核
审核员 auditor auditor 审核文章
财务 caiwu caiwu 结算当期账务

测试设置 最低体现额度10元 每一期(一个月)结算一次
发布设置 最低体现额度N元 每一期(一个月)结算一次

现在使用测试设置 
为测试方便 在财务没有执行结算操作前 可以重置当期结算的账务
使用链接 http://localhost/Home/CreateTransaction 重置

留言索取源码,请提供邮件地址;也可以加群下载283590657,原因填写"我要兼职文章系统源码"

posted @ 2016-04-19 11:49  道木先生  阅读(440)  评论(0编辑  收藏  举报