简单的WOW DKP系统
由于公会需要用到DKP,但会长说网上的比较难用,所以我干脆给公会写一个,现在他们用起来感觉还是挺方便的;数据服务端用asp.net +Smark组件,前台用AIR来做。
实体类代码:
[Table]
interface IWowUser
{
[ID]
[UID]
string UserID { get; set; }
[Column]
[NotNull("请输入会员名字!")]
[Unique("已经存在相同名字的会员!")]
string UserName { get; set; }
[Column("UserType")]
[EnumToString]
WowUserType Type { get; set; }
[Column]
string Remark { get; set; }
[Column]
int DKP { get; set; }
[Column]
[NowDate]
DateTime DKPModifyDate { get; set; }
}
[Table]
interface IWowGroup
{
[ID]
[UID]
string GroupID { get; set; }
[Column]
[NotNull("请输入团队名称!")]
[Unique("同一名称的团队已经存在!")]
string GroupName { get; set; }
[Column]
string Remark { get; set; }
}
[Table]
interface IDKPHistory
{
[ID]
[UID]
string DKPHistoryID { get; set; }
[Column]
string UserID { get; set; }
[Column]
int DKP { get; set; }
[Column]
string Remark { get; set; }
[Column]
[NowDate]
DateTime CreateDate { get; set; }
}
[Table]
interface IUserLinkGroup
{
[ID]
[UID]
string ULGID { get; set; }
[Column]
string UserID { get; set; }
[Column]
string GroupID { get; set; }
}
[Table("WowUser inner join DKPHistory on wowuser.userid=DKPHistory.userid")]
interface IDKPDetail
{
[Column]
string DKPHistoryID { get; set; }
[Column("WowUser.UserID")]
string UserID { get; set; }
[Column("DKPHistory.DKP")]
int DKP { get; set; }
[Column("DKPHistory.Remark")]
string Remark { get; set; }
[Column]
[NowDate]
DateTime CreateDate { get; set; }
[Column]
string UserName { get; set; }
[Column("UserType")]
[EnumToString]
WowUserType Type { get; set; }
}
逻辑方法代码:
[Smark.Service.Service]
public class LogicService
{
public void NewGroup(WowGroup item)
{
item.EntityState._Loaded = false;
DBContext.Save(item);
}
public void DeleteGroup(params string[] groupid)
{
(WowGroup.groupID == groupid).Delete<WowGroup>();
}
public IList<WowGroup> ListGroup()
{
Expression exp = new Expression();
return exp.List<WowGroup>();
}
public void NewUser(WowUser user)
{
user.EntityState._Loaded = false;
DBContext.Save(user);
}
public void DeleteUser(params string[] userid)
{
(WowUser.userID == userid).Delete<WowUser>();
}
public IList<WowUser> ListUser(string username)
{
Expression exp = new Expression();
if (!string.IsNullOrEmpty(username))
exp &= WowUser.userName.Match(username);
return exp.List<WowUser>(null,WowUser.dKP.Desc);
}
public IList<DKPDetail> ListDetail(string userid,string name,DateTime? from, DateTime? to, [Smark.Service.Binders.Output]NClay.DataPage datapage)
{
Expression exp = new Expression();
if (!string.IsNullOrEmpty(userid))
exp &= DKPHistory.userID.At("DKPHistory") == userid;
if (!string.IsNullOrEmpty(name))
exp &= WowUser.userName.Match(name);
if (from != null)
exp &= DKPHistory.createDate >= from;
if (to != null)
exp &= DKPHistory.createDate <= to;
datapage.RecordCount = exp.Count<DKPDetail>();
return exp.List<DKPDetail>(new Region(datapage.PageIndex, datapage.PageSize), DKPHistory.createDate.Desc);
}
public IList<WowUser> ListUserByGroup(string group)
{
Expression exp = new Expression();
exp &= WowUser.userID.In(UserLinkGroup.userID, UserLinkGroup.groupID == group);
return exp.List<WowUser>();
}
public void AddUserInGroup(string group, params string[] userid)
{
foreach (string item in userid)
{
Expression exp = UserLinkGroup.groupID == group & UserLinkGroup.userID == item;
if (exp.Count<UserLinkGroup>() == 0)
{
UserLinkGroup ulg = new UserLinkGroup();
ulg.UserID = item;
ulg.GroupID = group;
DBContext.Save(ulg);
}
}
}
public void RemoveUserInGroup(string group, params string[] userid)
{
Expression exp = UserLinkGroup.groupID == group & UserLinkGroup.userID == userid;
exp.Delete<UserLinkGroup>();
}
public void ChangeDKP(int dkp,string remark ,params string[] users)
{
foreach (string item in users)
{
WowUser user = DBContext.Load<WowUser>(item);
user.DKP += dkp;
user.DKPModifyDate = DateTime.Now;
DKPHistory history = new DKPHistory();
history.DKP = dkp;
history.UserID = item;
history.Remark = remark;
DBContext.Save(user,history);
}
}
}
下载源码可以到项目的google code
简单的WOW DKP系统相关推荐
- java简单springboot系统_Springboot系列 3 - 建立简单的用户登录系统
在开始编码前,先建立几个Package(可以按个人习惯命名),如图 1.Controllers 用于存放控制器类 2.Models 用于存放数据实体类 3.Repositories 用于存放数据库操作 ...
- django初探-创建简单的博客系统(一)
django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...
- C#实现最简单的收银系统
输入商品单价,数目 按enter累加总价 如果还有商品就继续输入商品单价.数目 在原来的总价基础上累加 如果要退出就按下键盘的Esc按键,计算最终总价 按下任意键结束,否则继续累加商品总价 using ...
- 一个简单的PHP购物车系统
1.需求分析 我们需要找到一种将数据库连接到用户的浏览器的方法.用户能够按目录浏览商品. 用户应该能够从商品目录中选取商品以便此后的购买.我们也要能够记录他们选中的物品. 当用户完成购买,要合计他们的 ...
- 于掌控板实现简单的抢答器系统
基于掌控板实现简单的抢答器系统/手动判断正误,随机发送题目 一.实验目的及要求 实现掌控板抢答器功能. 二.实验原理与内容 基于TinywebDB实现云数据库出题 基于掌控板实现按键抢答和判题 基于M ...
- 【非常有用=小白也可以简单操作】越狱系统中可以让多个Kindle应用程序同时使用的办法--自己......
2019独角兽企业重金招聘Python工程师标准>>> 这个也是以前写的,转过来 [非常有用=小白也可以简单操作]越狱系统中可以让多个Kindle应用程序同时使用的办法--自己给程序 ...
- python简单的人脸识别系统(PCA+逻辑回归)
python简单的人脸识别系统(PCA+逻辑回归) 数据集:ORL人脸库 特征提取:PCA降维,将112*92降成30 分类器:逻辑回归 ** 代码: from tkinter import * fr ...
- JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)
JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...
- 简单文件加密解密系统(c++)
简单文件加密解密系统(c++) 一.原理 二.实现思路 三.c++代码 四.运行结果 一.原理 为了实现加解密,首先需要一个码本文件.一个基本的码本文件包含26个字母,即a~z打乱顺序的结果,比如 ...
- java 抽奖_简单实现java抽奖系统
导读热词 本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public cla ...
最新文章
- Linux之用户组相关操作 groupadd groupdel
- matlab 双边沿滤波,图片漫画效果(DoG算子和双边滤波)
- php获取上传多个文件缺失
- java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...
- python 科学计算设计_用Python做科学计算 高清晰PDF
- python字符串转float出错_值错误:无法将字符串转换为float,NumPy
- 谭民机器人_机器人视觉伺服研究进展-中科院自动化所-谭民.
- Oracle wm_concat() 函数
- smashing the stack for fun and profit 译文
- 北京西格玛大厦微软社区精英 Visual Studio 2010 技术交流会记录
- Pagerank-2
- 很高兴,自己申请到了一个.net的blog
- ORACLE的程序包1-程序包的基
- lamp mysql登录_LAMP 3.2 mysql登陆
- 信息管理系统项目前端界面设计
- 偏微分方程数值解的matlab 实现,偏微分方程数值解的Matlab 实现
- Windows Mac 光盘刻录软件
- typora的安装和使用
- 人工智能AI系列 - 元宇宙 - 2D虚拟人
- 10mbps 局域网组播_80211 组播速率及组播转单播