由于公会需要用到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系统相关推荐

  1. java简单springboot系统_Springboot系列 3 - 建立简单的用户登录系统

    在开始编码前,先建立几个Package(可以按个人习惯命名),如图 1.Controllers 用于存放控制器类 2.Models 用于存放数据实体类 3.Repositories 用于存放数据库操作 ...

  2. django初探-创建简单的博客系统(一)

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  3. C#实现最简单的收银系统

    输入商品单价,数目 按enter累加总价 如果还有商品就继续输入商品单价.数目 在原来的总价基础上累加 如果要退出就按下键盘的Esc按键,计算最终总价 按下任意键结束,否则继续累加商品总价 using ...

  4. 一个简单的PHP购物车系统

    1.需求分析 我们需要找到一种将数据库连接到用户的浏览器的方法.用户能够按目录浏览商品. 用户应该能够从商品目录中选取商品以便此后的购买.我们也要能够记录他们选中的物品. 当用户完成购买,要合计他们的 ...

  5. 于掌控板实现简单的抢答器系统

    基于掌控板实现简单的抢答器系统/手动判断正误,随机发送题目 一.实验目的及要求 实现掌控板抢答器功能. 二.实验原理与内容 基于TinywebDB实现云数据库出题 基于掌控板实现按键抢答和判题 基于M ...

  6. 【非常有用=小白也可以简单操作】越狱系统中可以让多个Kindle应用程序同时使用的办法--自己......

    2019独角兽企业重金招聘Python工程师标准>>> 这个也是以前写的,转过来 [非常有用=小白也可以简单操作]越狱系统中可以让多个Kindle应用程序同时使用的办法--自己给程序 ...

  7. python简单的人脸识别系统(PCA+逻辑回归)

    python简单的人脸识别系统(PCA+逻辑回归) 数据集:ORL人脸库 特征提取:PCA降维,将112*92降成30 分类器:逻辑回归 ** 代码: from tkinter import * fr ...

  8. JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)

    JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...

  9. 简单文件加密解密系统(c++)

    简单文件加密解密系统(c++) 一.原理 二.实现思路 三.c++代码 四.运行结果 一.原理   为了实现加解密,首先需要一个码本文件.一个基本的码本文件包含26个字母,即a~z打乱顺序的结果,比如 ...

  10. java 抽奖_简单实现java抽奖系统

    导读热词 本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public cla ...

最新文章

  1. Linux之用户组相关操作 groupadd groupdel
  2. matlab 双边沿滤波,图片漫画效果(DoG算子和双边滤波)
  3. php获取上传多个文件缺失
  4. java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...
  5. python 科学计算设计_用Python做科学计算 高清晰PDF
  6. python字符串转float出错_值错误:无法将字符串转换为float,NumPy
  7. 谭民机器人_机器人视觉伺服研究进展-中科院自动化所-谭民.
  8. Oracle wm_concat() 函数
  9. smashing the stack for fun and profit 译文
  10. 北京西格玛大厦微软社区精英 Visual Studio 2010 技术交流会记录
  11. Pagerank-2
  12. 很高兴,自己申请到了一个.net的blog
  13. ORACLE的程序包1-程序包的基
  14. lamp mysql登录_LAMP 3.2 mysql登陆
  15. 信息管理系统项目前端界面设计
  16. 偏微分方程数值解的matlab 实现,偏微分方程数值解的Matlab 实现
  17. Windows Mac 光盘刻录软件
  18. typora的安装和使用
  19. 人工智能AI系列 - 元宇宙 - 2D虚拟人
  20. 10mbps 局域网组播_80211 组播速率及组播转单播

热门文章

  1. 一个小把戏算法,获取大乐透,并且计算出最佳的结果(Qt C++ 和Android共用)
  2. 关于nifty counters
  3. 1039:判断数正负(测试已通过)
  4. github在线简历
  5. flutter入坑指南
  6. uniapp中使用网页录音并上传声音文件(发语音)——js-audio-recorder的使用【伸手党福利】
  7. 短视频SDK用于旅游行业
  8. 商用计算机品牌,请问什么牌子的笔记本比较好啊?要商用的
  9. workman 日志_Workman手册笔记一
  10. Spring注入Bean的几种方法