简单的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

欢迎使用睿博!魔兽世界公会系统(RB!DKP),本系统为网络游戏魔兽世界玩家公会用网站平台,您可以使用本系统快速建立属于您自己的公会网站。系统主体部分为DKP系统DKP系统拥有完善的功能,支持市面上主流的记分/查分插件,方便、快捷、准确的DKP记录及处理使您在公会管理中事半功倍,辅助性公会公告/制度/语音等自由方便的在线编辑设计,使您不需要懂得网站设计也能完善自己的公会网站,免费稳定的系统升级,保证了系统的持久稳定发展,系统完美支持魔兽世界国服/台服,祝您使用愉快。 睿博!魔兽世界发展历史:   2005年,魔兽世界国服公测,我们发布了SP.WoWSystem ,为全球首套ASP平台的DKP系统(当时全球范围内只有PHP平台的EQDKP系统),也是国内第一套自主DKP系统;   2008年,魔兽世界国服发布燃烧的远征,我们发布了LS!DKP ,更进一步完善系统以配合新的游戏格局需求;   2009年,魔兽世界全球发布巫妖王之怒,我们发布了RB!DKP系统(定名,订立系统所属睿博软件),并制定了本系统的发展规划,定制了系统的发展方向,确保了系统的更新及技术支持,完全重写所有代码,建立了更加完善的DKP系统模式,完美支持更多的插件,并完美支持国服/台服;   我们会再接再厉,使系统更加完善、功能更贴近公会网站的发展需求,并持续对相关插件进行同步更新,再次感谢您对睿博!魔兽世界公会系统(RB!DKP)的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值