使用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,原因填写"我要兼职文章系统源码"

时间: 2024-08-02 00:47:30

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

ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

首页 头条 文章 频道                         设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. Razor在减少代码冗余.增强代码可读性和Visual Studio智能感知方面,都有着突出的优势.Razor一经推出就深受广大ASP.Net开发者的喜爱. 1.2 Razor的语法 (1)Razor文件类型:Razor支持两种文件类型,分

ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归.所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然. 但是,如果手写Html标签效率又比较低,可重用度比较低.这时,我们该怎样来提高效率呢?首先,经过上篇我们知道可以通过ViewData传递数据,于是我们可以写出以下的Html代码: <input name="UserName&quo

Maven+Hibernate+Spring+Spring MVC开发新闻发布系统

使用Maven+Hibernate+Spring+Spring MVC开发新闻发布系统 课程学习地址:http://www.xuetuwuyou.com/course/163 课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍 一.课程用到的软件: 1.jdk 1.8 2.eclipse neon 3.tomcat 8 4.jetty 5.MySQL  6.navicat 9+ 二.课程涉及到的技术点 1.Maven基础 2.Maven高级 3.Hibernate

ASP.NET MVC开发:Web项目开发必备知识点

最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行Asp.net MVC开发应该提前掌握多少程度的知识点才能畅通无阻进行开发? 下面是这次开发结束后做的一些知识点梳理总结,掌握如下知识点开发大型Asp.net MVC项目将不会有太大问题. 知识点总纲 代码规范 前段View 后端 1. 代码规范 好的规范可以让团队更加有效率! C#代码规范 使用St

使用 WPF+ ASP.NET MVC 开发 在线客服系统 (一)

近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有有兴趣的小伙伴一起加入开发当中来,毕竟一个人的力量是有限的 :) 有兴趣的小伙伴请加Q:279060597 系列文章将分为几个部分 零.概述(本篇) 一.需求分析及技术方案初步选型 二.技术方案选型,验证 三.底层框架设计,开发 四.服务器设计开发 五.客户端设计开发 六.Web端设计开发 在这个系

ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步

一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新的区域,可以让我们的项目不至于太复杂而导致管理混乱.有了区域后,每个模块的页面都放入相应的区域内进行管理很方便.例如:上图中有两个模块,一个是Admin模块,另一个是Product模块,所有关于这两个模块的控制器.Model以及视图都放入各自的模块内.可以从上图中看出,区域的功能类似一个小的MVC项

ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新的区域,可以让我们的项目不至于太复杂而导致管理混乱.有了区域后,每个模块的页面都放入相应的区域内进行管理很方便.例如:上图中有两个模块,一个是Admin模块,另一个是Product模块,所有关于这两个模块的控制器.Model以及视图都放入各自的模块内.可以从上图中看出,区域的功能类似一个小的MVC项

ASP.Net MVC开发基础学习笔记(2):HtmlHelper与扩展方法

一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归.所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然. 但是,如果手写Html标签效率又比较低,可重用度比较低.这时,我们该怎样来提高效率呢?首先,经过上篇我们知道可以通过ViewData传递数据,于是我们可以写出以下的Html代码: 1 <input name="UserName&q