コード例 #1
0
        public ActionResult PluginLottery(Guid Id)
        {
            try
            {
                if (Id == Guid.Empty)
                {
                    throw new OceanException("参数有误,请检查!");
                }
                //if (MpUserID == Guid.Empty)
                //{
                //    string rawUrl = "http://wx.ssrcb.com/ScoreSys/PluginLottery?id=" + TempData["Id"];
                //    if (string.IsNullOrEmpty(RQuery["openid"]))
                //    {
                //        return Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) });
                //    }
                //}
                ViewBag.Score_Plugin_Title        = TempData["Score_Plugin_Title"];
                ViewBag.Score_Plugin_StartDate    = TempData["Score_Plugin_StartDate"];
                ViewBag.Score_Plugin_EndDate      = TempData["Score_Plugin_EndDate"];
                ViewBag.Score_Plugin_Summary      = TempData["Score_Plugin_Summary"];
                ViewBag.Score_Plugin_ZeroPrize    = TempData["Score_Plugin_ZeroPrize"];
                ViewBag.Score_Plugin_UsePoint     = TempData["Score_Plugin_UsePoint"];
                ViewBag.Score_Plugin_FailsTimes   = TempData["Score_Plugin_FailsTimes"];
                ViewBag.Score_Plugin_FailsAddOdds = TempData["Score_Plugin_FailsAddOdds"];

                IList <ScorePluginResult> scorePluginResultList = _scorePluginResultService.GetList("from ScorePluginResult where PluginId='" + Id.ToString() + "'");
                ViewBag.ScorePluginResultList = scorePluginResultList;
                if (scorePluginResultList != null)
                {
                    IEnumerable <ScorePluginResult> myplugin_SubmitList = _scorePluginResultService.GetList("from ScorePluginResult where PluginId='" + Id.ToString() + "' and MpUserId='" + this.MpUserID + "' order by CreateDate desc");
                    ViewBag.MyPlugin_SubmitList = myplugin_SubmitList;
                }
            }
            catch (System.Exception ex)
            {
                Log4NetImpl.Write("ScoreSys_PluginLottery:" + ex.Message);
                return(View("Index"));
            }

            return(View("Lottery"));
        }
コード例 #2
0
        public ActionResult GongzhiBaoApply()
        {
            //当前登录用户
            MpUser mpUser = _mpUserService.GetById(MpUserID);

            ViewBag.IsAuth = mpUser.IsAuth > 0;
            ViewBag.Name   = mpUser.Name;

            if (mpUser.Sex == 1)
            {
                ViewBag.Sex = "先生";
            }
            else if (mpUser.Sex == 2)
            {
                ViewBag.Sex = "女士";
            }
            else
            {
                ViewBag.Sex = "";
            }
            try
            {
                //用户最近的一笔贷款申请[未撤销]
                Loan loan = _loanService.GetNewestLoanApplyByMpUserId(MpUserID);
                //有未过期的贷款申请
                if (loan != null && DateTime.Now < loan.CreateDate.AddMonths(1) && loan.LoanCategoryId == 4)
                {
                    return(RedirectToAction("GongzhiBaoMessage", new { }));
                }
                else if (loan != null && DateTime.Now < loan.CreateDate.AddMonths(1))
                {
                    return(RedirectToAction("LoanMessage", new { }));
                }
            }
            catch (System.Exception ex)
            {
                Log4NetImpl.Write(ex.Message);
            }
            return(View());
        }
コード例 #3
0
        public ActionResult VerifyUserSubmit(Guid pluginId, string CardNo, string TradeSeqNo, string OpenID)
        {
            //string OpenID = TempData["OpenID"].ToString();
            if (OpenID == "")
            {
                return(Json(new { isOK = false, error_code = "ERR_NotLogin" })); //JsonMessage(false, "你还未关注本行微信或者未登陆!");
            }
            else
            {
                if (pluginId == Guid.Empty)
                {
                    return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" })); //JsonMessage(false, "参数有误,请检查!");
                }
                else
                {
                    try
                    {
                        XYPluginUser xyPluginUser = _xyPluginUserService.GetUnique("from XYPluginUser where OpenId='" + OpenID + "'");
                        if (xyPluginUser != null)
                        {
                            return(Json(new { isOK = false, error_code = "ERR_AlreadyVerify" }));
                        }
                        xyPluginUser            = new XYPluginUser();
                        xyPluginUser.OpenId     = OpenID;
                        xyPluginUser.CardNo     = CardNo;
                        xyPluginUser.TradeSeqNo = TradeSeqNo;
                        xyPluginUser.GuaGuaKa   = 0;
                        xyPluginUser.LeftCount  = 1;

                        _xyPluginUserService.Insert(xyPluginUser);
                    }
                    catch (Exception ex)
                    {
                        Log4NetImpl.Write("VerifyUserSubmit" + ex.Message);
                        return(Json(new { isOK = false, error_code = "ERR_UnKnown" })); //JsonMessage(false, "对不起,出现异常,请联系我行工作人员!");
                    }
                }
                return(Json(new { isOK = true, error_code = "ERR_OK" })); //JsonMessage(true, "恭喜您,可以摇奖了!");
            }
        }
コード例 #4
0
 /// <summary>
 /// 实现自己的任务逻辑
 /// </summary>
 public void Execute()
 {
     ////测试
     //FunongbaoApply apply = _funongbaoApplyService.GetUnique(f => f.Id == new Guid("9A904BD7-5556-4EB2-A493-6C3DC85CB4BD") && f.NoticeStatus == 0);
     //if (apply != null)
     //{
     //    _mpUserService.SendMessage(apply.RFunongbao.OpenId, "尊敬的" + apply.RFunongbao.Name + ",您本季度有新的额度可供调整。\r\n" + "<a href=\"" + BaseConfigs.GetConfig().WebUrl + "/funongbao/apply\">点击这里,立即申请</a>");//"点击菜单->福农宝->调额申请");
     //    apply.NoticeStatus = 1;
     //    _funongbaoApplyService.Update(apply);
     //}
     //尊敬的**,您本季度有新的额度可供调整。
     //点击这里,立即申请
     if (DateRuleList.DateRules.Where(d => d.ApplyMonth == DateTime.Now.Month).Count() > 0 && DateTime.Now.Day == DateRule.ApplyStartDay)
     {
         Log4NetImpl.Write("执行任务!" + DateTime.Now);
         //PagedList<FunongbaoApply> applys = _funongbaoApplyService.GetForTaskUserList(1, 100);
         //if (applys != null)
         //{
         //    foreach (FunongbaoApply apply in applys)
         //    {
         //        apply.NoticeStatus = 1;
         //        _mpUserService.SendMessage(apply.RFunongbao.OpenId, "尊敬的" + apply.RFunongbao.Name + ",您本季度有新的额度可供调整。\r\n" + "点击菜单->福农宝->调额申请");//"<a href=\"" + BaseConfigs.GetConfig().WebUrl + "/funongbao/apply\">点击这里,立即申请</a>");
         //        _funongbaoApplyService.Update(apply);
         //    }
         //}
         //for (int i = 1; i < applys.TotalPageCount; i++)
         //{
         //    applys = _funongbaoApplyService.GetForTaskUserList((i + 1), 100);
         //    if (applys != null)
         //    {
         //        foreach (FunongbaoApply apply1 in applys)
         //        {
         //            apply1.NoticeStatus = 1;
         //            _mpUserService.SendMessage(apply1.RFunongbao.OpenId, "尊敬的" + apply1.RFunongbao.Name + ",您本季度有新的额度可供调整。\r\n" + "点击菜单->福农宝->调额申请");//"<a href=\"" + BaseConfigs.GetConfig().WebUrl + "/funongbao/apply\">点击这里,立即申请</a>");
         //            _funongbaoApplyService.Update(apply1);
         //        }
         //    }
         //}
     }
 }
コード例 #5
0
        public ActionResult UpdateUserInfo(string ids)
        {
            string[] idsArr = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            if (idsArr != null && idsArr.Length > 0)
            {
                Guid[]         gids    = TypeConverter.StrsToGuids(idsArr);
                IList <MpUser> mpusers = MpUserService.GetALL(p => gids.Contains(p.Id));
                string         token   = GetAccessToken();

                if (mpusers != null && mpusers.Count > 0 && !string.IsNullOrEmpty(token))
                {
                    foreach (MpUser currUser in mpusers)
                    {
                        try
                        {
                            UserInfoJson info = Senparc.Weixin.MP.AdvancedAPIs.User.Info(token, currUser.OpenID);
                            if (info != null)
                            {
                                currUser.City          = info.city;
                                currUser.Country       = info.country;
                                currUser.HeadImgUrl    = info.headimgurl;
                                currUser.Language      = info.language;
                                currUser.NickName      = info.nickname;
                                currUser.Province      = info.province;
                                currUser.Sex           = info.sex;
                                currUser.SubscribeDate = DateTimeHelper.GetDateTimeFromXml(info.subscribe_time);
                                MpUserService.Update(currUser);
                            }
                        }
                        catch (Exception e)
                        {
                            Log4NetImpl.Write("AysnUser失败:" + e.Message);
                        }
                    }
                }
            }
            return(JsonMessage(true, "同步资料成功"));
        }
コード例 #6
0
ファイル: OceanException.cs プロジェクト: CocacolaSh/temp
 /// <summary>
 /// Initializes a new instance of the Exception class with a specified error message.
 /// </summary>
 /// <param name="message">The message that describes the error.</param>
 public OceanException(string message)
     : base(message)
 {
     Log4NetImpl.Write(message + "=========end");
 }
コード例 #7
0
        //<?xml version="1.0" encoding="utf-8"?>
        //<xml>
        //  <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName>
        //  <FromUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></FromUserName>
        //  <CreateTime>1357986928</CreateTime>
        //  <MsgType><![CDATA[text]]></MsgType>
        //  <Content><![CDATA[中文]]></Content>
        //  <MsgId>5832509444155992350</MsgId>
        //</xml>

        /// <summary>
        /// 获取XDocument转换后的IRequestMessageBase实例。
        /// 如果MsgType不存在,抛出UnknownRequestMsgTypeException异常
        /// </summary>
        /// <returns></returns>
        public static IRequestMessageBase GetRequestEntity(XDocument doc)
        {
            RequestMessageBase requestMessage = null;
            RequestMsgType     msgType;

            try
            {
                msgType = MsgTypeHelper.GetRequestMsgType(doc);
                switch (msgType)
                {
                case RequestMsgType.Text:
                    requestMessage = new RequestMessageText();
                    break;

                case RequestMsgType.Location:
                    requestMessage = new RequestMessageLocation();
                    break;

                case RequestMsgType.Image:
                    requestMessage = new RequestMessageImage();
                    break;

                case RequestMsgType.Voice:
                    requestMessage = new RequestMessageVoice();
                    break;

                case RequestMsgType.Video:
                    requestMessage = new RequestMessageVideo();
                    break;

                case RequestMsgType.Link:
                    requestMessage = new RequestMessageLink();
                    break;

                case RequestMsgType.Event:
                    //判断Event类型
                    switch (doc.Root.Element("Event").Value.ToUpper())
                    {
                    case "ENTER":        //进入会话
                        requestMessage = new RequestMessageEvent_Enter();
                        break;

                    case "LOCATION":        //地理位置
                        requestMessage = new RequestMessageEvent_Location();
                        break;

                    case "SUBSCRIBE":        //订阅(关注)
                        requestMessage = new RequestMessageEvent_Subscribe();
                        break;

                    case "UNSUBSCRIBE":        //取消订阅(关注)
                        requestMessage = new RequestMessageEvent_Unsubscribe();
                        break;

                    case "CLICK":        //菜单点击
                        requestMessage = new RequestMessageEvent_Click();
                        break;

                    case "SCAN":        //二维码扫描
                        requestMessage = new RequestMessageEvent_Scan();
                        break;

                    case "VIEW":        //URL跳转
                        requestMessage = new RequestMessageEvent_View();
                        break;

                    default:        //其他意外类型(也可以选择抛出异常)
                        requestMessage = new RequestMessageEventBase();
                        break;
                    }
                    break;

                default:
                    throw new UnknownRequestMsgTypeException(string.Format("MsgType:{0} 在RequestMessageFactory中没有对应的处理程序!", msgType), new ArgumentOutOfRangeException());    //为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常
                }
                EntityHelper.FillEntityWithXml(requestMessage, doc);
                RequestMessageEvent_Subscribe rq = requestMessage as RequestMessageEvent_Subscribe;
                if (rq != null)
                {
                    Log4NetImpl.Write("rq.EventKey:" + rq.EventKey);
                }
                else
                {
                    RequestMessageEvent_Scan rq1 = requestMessage as RequestMessageEvent_Scan;
                    if (rq1 != null)
                    {
                        Log4NetImpl.Write("rq1.EventKey:" + rq1.EventKey);
                    }
                }
            }
            catch (ArgumentException ex)
            {
                throw new WeixinException(string.Format("RequestMessage转换出错!可能是MsgType不存在!,XML:{0}", doc.ToString()), ex);
            }
            return(requestMessage);
        }
コード例 #8
0
        public ActionResult PluginsLottery(Guid Id, string t, string OpenID)
        {
            try
            {
                if (Id == Guid.Empty)
                {
                    Log4NetImpl.Write("PluginsLottery:ajax-ERR_ArgNotExist");
                    return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" }));
                }

                Plugin plugin = _pluginService.GetById(Id);
                if (plugin == null)
                {
                    return(Json(new { isOK = false, error_code = "ERR_PluginNotExits" }));
                }

                //设置布局页
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(plugin.Value);
                XmlNode pluginNode = xmlDoc.SelectSingleNode("plugin");
                GetDataToViewData(pluginNode);
                if (ViewBag.Cst_Plugin_Title == null)
                {
                    return(Json(new { isOK = false, error_code = "ERR_PluginNotExits" }));// message = "对不起,您还未配置或配置错误,请到插件中心进行配置下!" });
                }
                if (!string.IsNullOrEmpty(ViewBag.Cst_Plugin_StartDate))
                {
                    DateTime startDate = TypeConverter.StrToDateTime(ViewBag.Cst_Plugin_StartDate.ToString());
                    if (startDate > DateTime.Now)
                    {
                        return(Json(new { isOK = false, error_code = "ERR_PluginNotStart" }));// message = "对不起,抽奖还未开始!" });
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(ViewBag.Cst_Plugin_EndDate))
                        {
                            DateTime endDate = TypeConverter.StrToDateTime(ViewBag.Cst_Plugin_EndDate.ToString());
                            if (endDate < DateTime.Now)
                            {
                                return(Json(new { isOK = false, error_code = "ERR_PluginIsEnd" }));// message = "对不起,抽奖已经结束!" });
                            }
                        }
                    }
                }

                XYPluginUser xyPluginUser = _xyPluginUserService.GetUnique("from XYPluginUser where OpenId='" + OpenID + "'");
                if (xyPluginUser == null)
                {
                    Log4NetImpl.Write("PluginsLottery:ajax-ERR_UserNotVerify");
                    return(Json(new { isOK = false, isVertfy = true, error_code = "ERR_UserNotVerify" }));
                }

                if (xyPluginUser.LeftCount <= 0)
                {
                    Log4NetImpl.Write("PluginsLottery:ajax-ERR_UserUseOutChance");
                    return(Json(new { isOK = false, error_code = "ERR_UserUseOutChance" }));
                }


                int prizeCount     = TypeConverter.StrToInt(ViewBag.Cst_Plugin_PrizeCount, 12);
                int prizeItemCount = TypeConverter.StrToInt(ViewBag.Cst_Plugin_Items_Count, 1);
                if (prizeCount != prizeItemCount)
                {
                    Log4NetImpl.Write("PluginsLottery:ajax-奖项设置不正确");
                    return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" }));
                }
                IList <PrizeGift> prizeGift      = new List <PrizeGift>(prizeItemCount);
                IList <Double>    prizeItems     = new List <Double>(prizeItemCount);
                IList <string>    prizeItemsName = new List <string>(prizeCount);
                IList <int>       prizeAngle     = new List <int>(12);
                prizeItemsName.Add("一");
                prizeItemsName.Add("二");
                prizeItemsName.Add("三");
                prizeItemsName.Add("四");
                prizeItemsName.Add("五");
                prizeItemsName.Add("六");
                prizeItemsName.Add("七");
                prizeItemsName.Add("八");
                prizeItemsName.Add("九");
                prizeItemsName.Add("十");
                prizeItemsName.Add("十一");
                prizeItemsName.Add("十二");
                for (int i = 0; i < prizeItemCount; i++)
                {
                    PrizeGift gift = new PrizeGift();
                    gift.ID         = i;
                    gift.Name       = ViewData.GetString("Cst_Plugin_Items_PrizeName" + i.ToString());
                    gift.Alias_Name = ViewData.GetString("Cst_Plugin_Items_PrizeAliasName" + i.ToString());
                    gift.Odds       = ViewData.GetDouble("Cst_Plugin_Items_PrizePercent" + i.ToString(), 0.00) / 100.00;
                    gift.Pic        = ViewData.GetString("Cst_Plugin_Items_PrizePic" + i.ToString());
                    gift.Quantity   = ViewData.GetInt("Cst_Plugin_Items_PrizeNum" + i.ToString());
                    if (ViewData["Cst_Plugin_Items_PrizeUsedNum" + i.ToString()] != null)
                    {
                        gift.Leavings_Quantity = ViewData.GetInt("Cst_Plugin_Items_PrizeUsedNum" + i.ToString());
                    }
                    else
                    {
                        gift.Leavings_Quantity = gift.Quantity;
                    }
                    gift.Angle = ViewData.GetInt("Cst_Plugin_Items_PrizeAngle" + i.ToString());
                    prizeAngle.Add(gift.Angle);
                    gift.Prize_Name = prizeItemsName[i] + "等奖";
                    if (!string.IsNullOrEmpty(gift.Alias_Name))
                    {
                        gift.Prize_Name = gift.Alias_Name;
                    }
                    gift.Has_Gift  = ViewData.GetInt("Cst_Plugin_Items_Has_Gift" + i.ToString());//>1为奖品,2为刮刮卡
                    gift.Users     = ViewData.GetString("Cst_Plugin_Items_SiteUsers" + i.ToString());
                    gift.UsersName = ViewData.GetString("Cst_Plugin_Items_SiteUsersName" + i.ToString());
                    prizeItems.Add(gift.Odds);
                    prizeGift.Add(gift);
                }
                int averageAngle = 360 / prizeCount;

                prizeItems.OrderBy(d => d);

                int result = -1;

                xyPluginUser.LeftCount = xyPluginUser.LeftCount - 1;
                _xyPluginUserService.Update(xyPluginUser);

                int count = _pluginSceneResultService.GetCount("from SceneResult where pluginId='" + Id.ToString() + "' and MpUserId='" + xyPluginUser.Id + "'");
                if (ViewData.GetInt("Cst_Plugin_ZeroPrize") == 1 && count > 0)
                {
                    Log4NetImpl.Write("PluginsLottery:ajax-ERR_RunOutOfGift");
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));
                }
                if (prizeGift.Where(g => g.Has_Gift > 1 && g.Leavings_Quantity > 0).Count() == 0)
                {
                    Log4NetImpl.Write("PluginsLottery:ajax-ERR_RunOutOfGift");
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));
                }

                result = LotteryUtils.Lottery(prizeItems, prizeGift, prizeCount, xyPluginUser.Id, Id);


                if (result == -1)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));
                }
                else if (result == -2)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" });
                }
                else if (result == -3)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" });
                }
                else
                {
                    PrizeGift hasPrizeGift = prizeGift[result];

                    hasPrizeGift.Alias_Name = hasPrizeGift.Alias_Name ?? "";
                    if (hasPrizeGift.Has_Gift > 0 && hasPrizeGift.Leavings_Quantity > 0)
                    {
                        //中奖业务处理
                        PluginSceneResult pluginSceneResult = new PluginSceneResult();
                        pluginSceneResult.Address     = "";
                        pluginSceneResult.CreateDate  = DateTime.Now;
                        pluginSceneResult.Email       = "";
                        pluginSceneResult.IsUse       = 0;
                        pluginSceneResult.MobilePhone = "";
                        pluginSceneResult.Name        = "";
                        pluginSceneResult.Phone       = "";
                        pluginSceneResult.PluginId    = Id;
                        pluginSceneResult.MpUserId    = xyPluginUser.Id;
                        pluginSceneResult.SN          = "";
                        pluginSceneResult.UserName    = (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name);

                        if (hasPrizeGift.Has_Gift == 2)//刮刮卡
                        {
                            xyPluginUser.GuaGuaKa = 1;
                            _xyPluginUserService.Update(xyPluginUser);
                        }

                        if (this.MpUserArr != null)
                        {
                            pluginSceneResult.Summary = "恭喜用户[" + (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name) + "]获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]";
                        }
                        else
                        {
                            pluginSceneResult.Summary = "恭喜匿名用户获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]";
                        }
                        pluginSceneResult.Value = "<?xml version=\"1.0\" encoding=\"utf-8\"?><PluginSubmit><Cst_Plugin_ItemIndex>" + result.ToString() + "</Cst_Plugin_ItemIndex><Cst_Plugin_PrizeLevel>" + hasPrizeGift.Prize_Name + "</Cst_Plugin_PrizeLevel><Cst_Plugin_PrizeName>" + hasPrizeGift.Name + "</Cst_Plugin_PrizeName></PluginSubmit>";

                        #region 更新中奖数量
                        XmlNode itemsNode = pluginNode.SelectSingleNode("Cst_Plugin_Items");
                        XmlNode node      = itemsNode.SelectSingleNode("Cst_Plugin_Items_PrizeUsedNum" + result.ToString());
                        if (node == null)
                        {
                            node           = xmlDoc.CreateElement("Cst_Plugin_Items_PrizeUsedNum" + result.ToString());
                            node.InnerText = (hasPrizeGift.Quantity - 1).ToString();
                            itemsNode.AppendChild(node);
                        }
                        else
                        {
                            node.InnerText = (hasPrizeGift.Leavings_Quantity - 1).ToString();
                        }
                        StringWriter  sw = new StringWriter();
                        XmlTextWriter tx = new XmlTextWriter(sw);
                        xmlDoc.WriteTo(tx);
                        string strXmlText = sw.ToString();
                        plugin.Value = strXmlText;
                        _pluginService.Update(plugin);
                        #endregion

                        _pluginSceneResultService.Insert(pluginSceneResult);
                        hasPrizeGift.ResultID = pluginSceneResult.Id;
                    }

                    return(Content(JsonConvert.SerializeObject(hasPrizeGift), "text/javascript"));
                }
            }
            catch (Exception ex)
            {
                throw new OceanException(ex.Message, ex);
            }
        }
コード例 #9
0
        public ActionResult PluginsLottery(Guid Id)
        {
            try
            {
                if (Id == Guid.Empty)
                {
                    Log4NetImpl.Write("PluginsLottery:参数有误");
                    throw new OceanException("参数有误,请检查!");
                }
                TempData["OpenID"] = "";
                if (TempData["OpenID"].ToString() == "")
                {
                    string code   = RQuery["code"];
                    string state  = RQuery["state"];
                    string refUrl = RQuery["refUrl"];
                    string openid = RQuery["openid"];
                    if (code == "")
                    {
                        string redirectUrl = "http://wx.ssrcb.com/xyplugins/PluginsLottery?id=" + Id.ToString();
                        string reUrl       = (OAuth.GetAuthorizeUrl(MpCenterCache.AppID, redirectUrl, "STATE", OAuthScope.snsapi_base));
                        Response.Redirect(reUrl);
                        return(View("Lottery"));
                    }
                    if (string.IsNullOrEmpty(openid) || openid == "")
                    {
                        OAuthAccessTokenResult authResult = OAuth.GetAccessToken(MpCenterCache.AppID, MpCenterCache.AppSecret, code);
                        openid = authResult.openid;
                    }
                    TempData["OpenID"] = openid;
                }
                //页面上的Plugins
                IList <Plugin> plugins = _pluginService.GetALL();
                ViewBag.ContentPlugins = plugins;
                Plugin curPlugin = plugins.Where(p => p.Name.Contains("仙游")).FirstOrDefault();
                ViewBag.CurPlugin = curPlugin;
                ViewBag.OpenID    = TempData["OpenID"].ToString();
                if (curPlugin == null)
                {
                    throw new OceanException("对不起,不存在该插件或未开通,请检查!");
                }
                ViewBag.Title = curPlugin.RPluginBase.Name;
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(curPlugin.Value);
                XmlNode pluginNode = xmlDoc.SelectSingleNode("plugin");
                GetDataToViewData(pluginNode);

                ViewBag.LeaveCount = 0;
                XYPluginUser xyPluginUser = _xyPluginUserService.GetUnique("from XYPluginUser where OpenId='" + OpenID + "'");
                Guid         mpID         = Guid.Empty;
                if (xyPluginUser != null)
                {
                    ViewBag.LeaveCount = xyPluginUser.LeftCount;
                    mpID = xyPluginUser.Id;
                }

                IList <PluginSceneResult> pluginSceneResultList = _pluginSceneResultService.GetList("from SceneResult where PluginId='" + Id.ToString() + "' and MpUserId='" + mpID.ToString() + "'");
                ViewBag.PluginResultList = pluginSceneResultList;

                ViewBag.MpUserArr = this.MpUserArr;
                ViewBag.MpUserID  = mpID;

                return(View("Lottery"));
            }
            catch (Exception ex)
            {
                Log4NetImpl.Write("PluginsLottery:" + ex.Message);
                throw new OceanException(ex.Message, ex);
            }
        }
コード例 #10
0
        public ActionResult Bind(Guid id, string Name, string Phone, string RecomendName, string RecomendPhone)
        {
            try
            {
                if (MpUserID == Guid.Empty)
                {
                    string rawUrl = "http://wx.ssrcb.com/ScoreSys/Index";
                    if (string.IsNullOrEmpty(RQuery["openid"]))
                    {
                        return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) }));
                    }
                }
                ScoreUser scoreUser = _scoreUserService.GetUnique("from ScoreUser where (ClientPhone='" + Phone.Trim() + "' and ClientName = '" + Name + "') or (MpUserId ='" + this.MpUserID.ToString() + "')");

                if (scoreUser != null)
                {
                    return(Json(new { isOK = false, isVertfy = true, error_code = "ERR_UserHadBind" }));
                }
                scoreUser                = new ScoreUser();
                scoreUser.ClientName     = Name.Trim();
                scoreUser.ClientPhone    = Phone.Trim();
                scoreUser.RecommendName  = RecomendName.Trim();
                scoreUser.RecommendPhone = RecomendPhone.Trim();
                scoreUser.MpUserId       = MpUserID;
                scoreUser.RecommendScore = 0;
                scoreUser.CurrentScore   = bindScore;
                scoreUser.DealScore      = 0;
                _scoreUserService.Insert(scoreUser);

                //首次绑定获得积分
                ScoreConsumeInfo scoreConsumeDetail = new ScoreConsumeInfo();
                scoreConsumeDetail.MpUserId        = this.MpUserID;
                scoreConsumeDetail.ConsumeType     = (int)ScoreConsume.Bind;
                scoreConsumeDetail.ConsumePoints   = bindScore;
                scoreConsumeDetail.CreateDate      = DateTime.Now;
                scoreConsumeDetail.ConsumeDateTime = DateTime.Now;
                scoreConsumeDetail.Summary         = "首次绑定获得" + bindScore + "积分";
                _scoreConsumeInfoService.Insert(scoreConsumeDetail);

                ScoreUser recommendScoreUser = _scoreUserService.GetUnique("from ScoreUser where ClientPhone='" + RecomendPhone.Trim() + "'");

                if (recommendScoreUser != null)
                {
                    ScoreConsumeInfo recommendScoreConsumeDetail = new ScoreConsumeInfo();
                    recommendScoreConsumeDetail.MpUserId        = recommendScoreUser.MpUserId;
                    recommendScoreConsumeDetail.ConsumeType     = (int)ScoreConsume.Recommend;
                    recommendScoreConsumeDetail.ConsumePoints   = recommendScore;
                    recommendScoreConsumeDetail.CreateDate      = DateTime.Now;
                    recommendScoreConsumeDetail.ConsumeDateTime = DateTime.Now;
                    recommendScoreConsumeDetail.Summary         = "推荐用户[" + Phone + "]获得" + recommendScore + "积分";
                    _scoreConsumeInfoService.Insert(recommendScoreConsumeDetail);

                    recommendScoreUser.RecommendScore += recommendScore;
                    recommendScoreUser.CurrentScore   += recommendScore;
                    _scoreUserService.Update(recommendScoreUser);
                }
                return(Json(new { isOK = true, error_code = "ERR_OK", currentScore = scoreUser.CurrentScore, scoreDetail = scoreConsumeDetail.ConsumeDateTime + scoreConsumeDetail.Summary }));
            }
            catch (System.Exception ex)
            {
                Log4NetImpl.Write("ScoreSys_Bind:" + ex.Message);
            }
            return(View());
        }
コード例 #11
0
        public ActionResult Vote(Guid baseId, Guid itemId, string t)
        {
            try
            {
                if (MpUserID == Guid.Empty)
                {
                    string rawUrl = "http://wx.ssrcb.com/vote/VoteSummary?id=" + WebHelper.GetGuid("baseId", Guid.Empty);
                    if (string.IsNullOrEmpty(RQuery["openid"]))
                    {
                        Log4NetImpl.Write("open.weixin.qq.com");
                        return(Json(new { isLogin = true, message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) }));
                    }
                }
                if (baseId == Guid.Empty || itemId == Guid.Empty)
                {
                    return(Json(new { message = "参数有误,请检查!" }));
                }

                VoteBase VoteBase = _voteBaseService.GetById(baseId);
                if (VoteBase == null)
                {
                    throw new OceanException("对不起,未存在本投票,请检查!");
                }
                if (VoteBase.VoteStartDate > DateTime.Now)
                {
                    return(Json(new { message = "对不起,投票还未开始!" }));
                }
                else if (VoteBase.VoteEndDate < DateTime.Now)
                {
                    return(Json(new { message = "对不起,投票已经结束!" }));
                }

                VoteItem voteItem = _voteItemService.GetUnique("from VoteItem where VoteParentId='" + baseId.ToString() + "' and Id='" + itemId.ToString() + "'");
                if (voteItem == null)
                {
                    throw new OceanException("对不起,未存在本投票,请检查!");
                }

                int voteCount = _voteInfoService.GetCount("from VoteInfo where MpUserID='" + MpUserID.ToString() + "' and VoteItemID in (select id from VoteItem where VoteParentId = '" + baseId.ToString() + "')");
                if (voteCount >= VoteBase.VoteCount)
                {
                    return(Json(new { message = "对不起,您已经投了 " + voteCount + " 票!" }));
                }
                voteCount = _voteInfoService.GetCount("from VoteInfo where MpUserID='" + MpUserID.ToString() + "' and VoteItemID='" + itemId.ToString() + "'");
                if (voteCount > 0)
                {
                    return(Json(new { message = "对不起,您已经投了该选项!" }));
                }
                VoteInfo newVoteInfo = new VoteInfo();
                newVoteInfo.MpUserId   = MpUserID;
                newVoteInfo.VoteDate   = DateTime.Now;
                newVoteInfo.VoteItemID = itemId;
                _voteInfoService.Insert(newVoteInfo);

                voteItem.VoteCount = voteItem.VoteCount + 1;
                _voteItemService.Update(voteItem);
                return(Json(new { message = "感谢您的参与!", isSuccess = true, voteCount = voteItem.VoteCount }));
            }
            catch (System.Exception ex)
            {
                throw new OceanException(ex.Message, ex);
            }
        }
コード例 #12
0
        public ActionResult GetMobileCode(string mobile, int operateType)
        {
            if (_mobileCodeService.GetMobileCodeCount(this.MpUserID, operateType) > 5)
            {
                return(JsonMessage(false, "短信获取失败[您当天获取验证码的次数不能超过5次]"));
            }
            else
            {
                UserLogin.Instance.WriteCookie("mobilecode" + operateType, mobile + "," + operateType.ToString(), 10, "/", "");
                //验证参数格式
                long   lSMID = 0;
                string smID  = GlobalConfig.GetConfig()["SMID"];

                if (!long.TryParse(smID, out lSMID))
                {
                    _log.Debug("SMID格式错误");
                    return(JsonMessage(false, "验证码获取失败,请稍后重试"));
                }
#if DEBUG
                //创建验证码
                MobileCode mobileCode = new MobileCode
                {
                    MpUserId      = MpUserID,
                    Mobile        = mobile,
                    Code          = StringHelper.GetRandomInt(6),
                    Time          = 0,
                    OperationType = operateType,
                    Status        = 0
                };

                _mobileCodeService.Insert(mobileCode);
                return(JsonMessage(true, string.Format("{0}", mobileCode.Code)));
#else
                string message = string.Empty;
                try
                {
                    //短信猫发送短信
                    IList <string> mobiles = new List <string>();
                    mobiles.Add(mobile);
                    string code  = StringHelper.GetRandomInt(6);
                    string yzMsg = string.Empty;

                    if (operateType == 1)
                    {
                        yzMsg = string.Format("您本次申请福农宝额度调整的验证码为{0},验证码10分钟内有效,详询4000896336。", code);
                    }
                    else if (operateType == 2)
                    {
                        yzMsg = string.Format("您本次申请贷款的验证码为{0},验证码10分钟内有效,详询4000896336。", code);
                    }
                    else if (operateType == 3)
                    {
                        yzMsg = string.Format("您本次申请POS的验证码为{0},验证码10分钟内有效,详询4000896336。", code);
                    }
                    else if (operateType == 4)
                    {
                        yzMsg = string.Format("您本次申请摇奖的验证码为{0},验证码10分钟内有效,详询4000896336。", code);
                    }
                    else
                    {
                        yzMsg = string.Format("您本次查询POS的验证码为{0},验证码10分钟内有效,详询4000896336。", code);
                    }
                    SendSmsRequest sendSmsRequest = new SendSmsRequest(mobiles, yzMsg, lSMID);

                    //if(true)
                    if (new SmsClient().Execute(sendSmsRequest, ref message))
                    {
                        //创建验证码
                        MobileCode mobileCode = new MobileCode
                        {
                            MpUserId      = MpUserID,
                            Mobile        = mobile,
                            Code          = code,
                            Time          = 0,
                            OperationType = operateType,
                            Status        = 0
                        };
                        _mobileCodeService.Insert(mobileCode);
                        //return JsonMessage(true, "验证码获取成功");
                        return(JsonMessage(true, string.Format("{0}", string.Empty)));
                    }
                    else
                    {
                        Log4NetImpl.Write("验证码获取失败:" + message);
                        SmsClient.ReleaseAPIClient();//释放资源
                        return(JsonMessage(false, "验证码获取失败"));
                    }
                }
                catch (Exception ex)
                {
                    string errMsg = "";

                    if (string.IsNullOrWhiteSpace(message))
                    {
                        errMsg = string.Format("验证码获取失败[{0}]", ex.Message);
                    }
                    else
                    {
                        errMsg = string.Format("验证码获取失败[{0}]{1}", message, ex.Message);
                    }

                    Log4NetImpl.Write(errMsg);
                    SmsClient.ReleaseAPIClient();//释放资源
                    return(JsonMessage(false, "验证码获取失败"));
                }
#endif
            }
        }
コード例 #13
0
 private static ILogger GetCachedLogger(Type type)
 {
     Cache cache = HttpRuntime.Cache;
     string cacheKey = "ILogger::" + type.ToString();
     object loggerObj = cache.Get(cacheKey);
     ILog logger;
     if (loggerObj != null)
     {
         logger = (ILog)loggerObj;
     }
     else
     {
         logger = LogManager.GetLogger(type);
         cache.Insert(cacheKey, logger);
     }
     Log4NetImpl wrapper = new Log4NetImpl(logger);
     return wrapper;
 }
コード例 #14
0
        public void Application_Error(object sender, EventArgs e)
        {
            //在出现未处理的错误时运行的代码
            //错误日志
            Exception exception = Server.GetLastError();

            if (exception == null)
            {
                return;
            }
            if (exception.InnerException != null)
            {
                exception = exception.InnerException;
            }
            if (exception.Message.Contains("禁止路径"))
            {
                return;
            }
            if (exception.Message.Contains("服务器") || exception.Message.Contains("超时") || exception.Message.Contains("登录失败"))
            {
                Log4NetImpl.Write(exception.Message, Log4NetImpl.ErrorLevel.Error);
            }
            else if (exception.Message.Contains("最大池大小"))
            {
                Log4NetImpl.Write("超出最大池大小:重启进程", Log4NetImpl.ErrorLevel.Error);
                HttpRuntime.UnloadAppDomain();
            }
            else
            {
                Log4NetImpl.Write(exception.Message, Log4NetImpl.ErrorLevel.Error);
            }
            if (exception is HttpException)
            {
                try
                {
                    int errorCode = (exception as HttpException).GetHttpCode();
                    if (errorCode == 404)
                    {
                        Server.ClearError();
                        //avoid IIS7 getting in the middle
                        Response.TrySkipIisCustomErrors = true;
                        IController messageController = new ErrorController();
                        var         http404Route      = new RouteData();
                        http404Route.Values.Add("controller", "Error");
                        http404Route.Values.Add("action", "Http404");
                        http404Route.Values.Add("message", "错误提示:");
                        http404Route.Values.Add("url", this.Request.Url.OriginalString);
                        messageController.Execute(new RequestContext(new HttpContextWrapper(this.Context), http404Route));
                    }
                    else
                    {
                        string message = exception.Message;
                        Server.ClearError();
                        Response.TrySkipIisCustomErrors = true;
                        IController messageController = new ErrorController();
                        var         httpErrRoute      = new RouteData();
                        httpErrRoute.Values.Add("controller", "Message");
                        httpErrRoute.Values.Add("action", "ErrorMessage");
                        httpErrRoute.Values.Add("message", "对不起,系统异常,请联系客服!" + message);
                        httpErrRoute.Values.Add("url", this.Request.Url.OriginalString);
                        messageController.Execute(new RequestContext(new HttpContextWrapper(this.Context), httpErrRoute));
                    }
                }
                catch (Exception ex) { throw ex; }
            }
        }
コード例 #15
0
        public ActionResult Index()
        {
            if (!string.IsNullOrEmpty(this.OpenID))
            {
                Funongbao fnb = _funongbaoService.GetFunongbaoByOpenid(this.OpenID);
                if (fnb != null)
                {
                    return(new RedirectResult("/funongbao/apply"));
                }
            }

            Funongbao funongbao = new Funongbao();

            if (WebHelper.IsPost())
            {
                ViewBag.AuthStatus = 0;
                TryUpdateModel <Funongbao>(funongbao);
                int useCount = _mobileCodeService.GetMobileCodeCount(this.MpUserID, 1);//当天使用次数
                if (useCount <= 5)
                {
                    MobileCode lastCode = _mobileCodeService.GetMobileCode(this.MpUserID, 1);//是否存在未使用的证码
                    if (lastCode != null)
                    {
                        MobileCode checkCode = _mobileCodeService.GetMobileCode(funongbao.MobilePhone, WebHelper.GetString("Code"), this.MpUserID, 1);//检查验证码
                        if (checkCode != null)
                        {
                            TimeSpan ts = DateTime.Now.Subtract(checkCode.CreateDate).Duration();
                            if (ts.Minutes > 10)
                            {
                                checkCode.Time  += 1;
                                checkCode.Status = 1;
                                _mobileCodeService.Update(lastCode);
                                ViewBag.CodeError = "验证码已经失效,请重新获取!";
                            }
                            else
                            {
                                Funongbao authFnb    = null;
                                int       authStatus = _funongbaoService.IdentAuth2(funongbao, out authFnb);
                                if (authStatus == -1)
                                {
                                    ViewBag.CodeError = "对不起,该客户已经被绑定了,您无法再次绑定!";
                                }
                                else
                                {
                                    if (authStatus == 1)
                                    {
                                        //更新用户认证并更新cookie
                                        MpUser user = _mpUserservice.GetById(this.MpUserID);
                                        user.Name        = funongbao.Name;
                                        user.PassportNO  = funongbao.PassportNO;
                                        user.MobilePhone = funongbao.MobilePhone;
                                        user.IsAuth      = 1;
                                        //更新当前验证码失败
                                        checkCode.Status = 1;//已用
                                        //更新福农保信息
                                        authFnb.IsAuth          = 1;
                                        authFnb.IsSignAgreement = WebHelper.GetInt("IsSignAgreement", 1);
                                        authFnb.MpUserId        = this.MpUserID;
                                        authFnb.OpenId          = this.OpenID;
                                        try
                                        {
                                            Log4NetImpl.Write("测试事务写入");
                                            _funongbaoService.BeginTransaction();
                                            _mpUserservice.Update(user);
                                            _mobileCodeService.Update(checkCode);
                                            _funongbaoService.Update(authFnb);
                                            _funongbaoService.Commit();
                                            WriteMpUserCookie(user);
                                            Log4NetImpl.Write("测试获取cookie");
                                            var a = MpUserArr;
                                            if (!string.IsNullOrEmpty(WebHelper.GetString("refUrl")))
                                            {
                                                return(Redirect(WebHelper.GetString("refUrl")));
                                            }
                                            else
                                            {
                                                return(RedirectToAction("index", "funongbao"));
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _funongbaoService.Rollback();
                                            Log4NetImpl.Write(ex.ToString());
                                            throw new OceanException("对不起,系统异常,身份认证失败!", ex);
                                        }
                                    }
                                    else
                                    {
                                        ViewBag.AuthStatus = authStatus;
                                    }
                                }
                            }
                        }
                        else
                        {
                            lastCode.Time += 1;
                            _mobileCodeService.Update(lastCode);
                            ViewBag.CodeError = "对不起,验证码有误,请检查!";
                        }
                    }
                    else
                    {
                        ViewBag.CodeError = "对不起,您还未点击发送验证码!";
                    }
                }
                else
                {
                    ViewBag.CodeError = "对不起,您今天最多只能发起5次验证码";
                }
            }
            return(View(funongbao));
        }
コード例 #16
0
        public ActionResult PluginsLottery(Guid Id, string t)
        {
            try
            {
                if (Id == Guid.Empty)
                {
                    Log4NetImpl.Write("ScoreSYS-PluginLottery:ID is NULL");
                    return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" })); //message = "参数有误,请检查!" });
                }

                if (MpUserID == Guid.Empty)
                {
                    string rawUrl = "http://wx.ssrcb.com/ScoreSys/PluginLottery?id=" + WebHelper.GetGuid("Id", Guid.Empty);
                    if (string.IsNullOrEmpty(RQuery["openid"]))
                    {
                        Log4NetImpl.Write("ScoreSYS-PluginLottery:Redirect");
                        return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) }));
                    }
                }

                string Score_Plugin_Title        = Request.Form["Score_Plugin_Title"];
                string Score_Plugin_StartDate    = Request.Form["Score_Plugin_StartDate"];
                string Score_Plugin_EndDate      = Request.Form["Score_Plugin_EndDate"];
                string Score_Plugin_UsePoint     = Request.Form["Score_Plugin_UsePoint"];
                string Score_Plugin_FailsTimes   = Request.Form["Score_Plugin_FailsTimes"];
                string Score_Plugin_FailsAddOdds = Request.Form["Score_Plugin_FailsAddOdds"];
                if (Score_Plugin_Title == "")
                {
                    return(Json(new { isOK = false, error_code = "ERR_PluginNotExits" }));
                }
                if (!string.IsNullOrEmpty(Score_Plugin_StartDate))
                {
                    DateTime startDate = TypeConverter.StrToDateTime(Score_Plugin_StartDate);
                    if (startDate > DateTime.Now)
                    {
                        return(Json(new { isOK = false, error_code = "ERR_PluginNotStart" }));
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(Score_Plugin_EndDate))
                        {
                            DateTime endDate = TypeConverter.StrToDateTime(Score_Plugin_EndDate);
                            if (endDate < DateTime.Now)
                            {
                                return(Json(new { isOK = false, error_code = "ERR_PluginIsEnd" }));// message = "对不起,抽奖已经结束!" });
                            }
                        }
                    }
                }

                IList <ScoreStoreItem> scoreStoreItems = _scoreStoreItemServiceService.GetList("from ScoreStoreItem where BaseId = '" + Id.ToString() + "'");
                scoreStoreItems.OrderBy(storeItems => storeItems.PluginName);
                ScoreUser scoreUser = _scoreUserService.GetUnique("from ScoreUser where (MpUserId ='" + this.MpUserID.ToString() + "')");

                if (scoreUser == null)
                {
                    return(Json(new { isOK = false, isVertfy = true, error_code = "ERR_UserNotVerify" }));
                }
                if (scoreUser.CurrentScore < ViewData.GetInt("Score_Plugin_UsePoint"))
                {
                    return(Json(new { isOK = false, error_code = "ERR_UserUseOutChance" }));
                }

                int prizeItemCount = scoreStoreItems.Count;// TypeConverter.StrToInt(ViewBag.Cst_Plugin_PrizeCount, 12);

                IList <PrizeGift> prizeGift      = new List <PrizeGift>(prizeItemCount);
                IList <Double>    prizeItems     = new List <Double>(prizeItemCount);
                IList <string>    prizeItemsName = new List <string>(prizeItemCount);
                IList <int>       prizeAngle     = new List <int>(prizeItemCount);
                prizeItemsName.Add("一");
                prizeItemsName.Add("二");
                prizeItemsName.Add("三");
                prizeItemsName.Add("四");
                prizeItemsName.Add("五");
                prizeItemsName.Add("六");
                prizeItemsName.Add("七");
                prizeItemsName.Add("八");
                prizeItemsName.Add("九");
                prizeItemsName.Add("十");
                prizeItemsName.Add("十一");
                prizeItemsName.Add("十二");
                for (int i = 0; i < prizeItemCount; i++)
                {
                    ScoreStoreItem storeItem = scoreStoreItems[i];
                    PrizeGift      gift      = new PrizeGift();
                    gift.ID                = i;
                    gift.Name              = storeItem.PluginName;
                    gift.Alias_Name        = storeItem.AliasName;
                    gift.Odds              = Convert.ToDouble(storeItem.PrizePercent) / 100;
                    gift.Pic               = storeItem.ItemPic;
                    gift.Quantity          = storeItem.TotalCount;
                    gift.Leavings_Quantity = storeItem.LeftCount;

                    gift.Angle = Convert.ToInt32(storeItem.PrizeAngle);
                    prizeAngle.Add(gift.Angle);
                    gift.Prize_Name = prizeItemsName[i] + "等奖";
                    if (!string.IsNullOrEmpty(gift.Alias_Name))
                    {
                        gift.Prize_Name = gift.Alias_Name;
                    }
                    gift.Has_Gift = 1;// ViewData.GetInt("Cst_Plugin_Items_Has_Gift" + i.ToString());
                    //gift.Users = ViewData.GetString("Cst_Plugin_Items_SiteUsers" + i.ToString());
                    //gift.UsersName = ViewData.GetString("Cst_Plugin_Items_SiteUsersName" + i.ToString());
                    prizeItems.Add(gift.Odds);
                    prizeGift.Add(gift);
                }

                prizeItems.OrderBy(d => d);


                //verifyCodeDetail.LeaveCount = verifyCodeDetail.LeaveCount - 1;
                //verifyCodeDetail.UseDate = DateTime.Now;
                //_pluginSceneVerifyCodeDetailService.Update(verifyCodeDetail);

                int count    = _scorePluginResultService.GetCount("from ScorePluginResult where pluginId='" + Id.ToString() + "' and MpUserId='" + this.MpUserID.ToString() + "'");
                int tryCount = _scoreConsumeInfoService.GetCount(" from ScoreConsumeInfo where ConsumeType = " + (int)ScoreConsume.Plugins + "");
                if (count == 0 &&  tryCount > Convert.ToInt32(Score_Plugin_FailsTimes))
                {
                    PrizeGift _lastGift = prizeGift.Last();

                    double finalOdds = _lastGift.Odds * (1 + Convert.ToInt32(Score_Plugin_FailsAddOdds));
                    _lastGift.Odds = finalOdds;
                    prizeItems.RemoveAt(prizeItems.Count - 1);
                    prizeItems.Add(finalOdds);
                }

                int result = -1;

                scoreUser.CurrentScore       = scoreUser.CurrentScore - Convert.ToInt32(Score_Plugin_UsePoint);// ViewData.GetInt("Score_Plugin_UsePoint");
                scoreUser.LastUpdateDateTime = DateTime.Now;
                _scoreUserService.Update(scoreUser);

                #region 更新积分消耗纪录
                ScoreConsumeInfo scoreConSumeInfo = new ScoreConsumeInfo();
                scoreConSumeInfo.ConsumeDateTime = scoreConSumeInfo.CreateDate = DateTime.Now;
                scoreConSumeInfo.MpUserId        = this.MpUserID;
                scoreConSumeInfo.ConsumeType     = (int)(ScoreConsume.Plugins);
                scoreConSumeInfo.ConsumePoints   = -Convert.ToInt32(Score_Plugin_UsePoint);
                scoreConSumeInfo.Summary         = "抽奖消耗了" + Convert.ToInt32(Score_Plugin_UsePoint) + "积分";
                _scoreConsumeInfoService.Insert(scoreConSumeInfo);
                #endregion
                result = LotteryUtils.Lottery(prizeItems, prizeGift, prizeItemCount, this.MpUserID, Id);


                if (result == -1)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));//Json(new PrizeGift() { ID = -1, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 240, Prize_Name = "继续加油" });
                }
                else if (result == -2)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" });
                }
                else if (result == -3)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" });
                }
                else
                {
                    PrizeGift      hasPrizeGift   = prizeGift[result];
                    ScoreStoreItem scoreStoreItem = scoreStoreItems[result];
                    //ScoreStoreItem scoreStoreItem = _scoreStoreItemServiceService.GetUnique("from ScoreStoreItem where (Id ='" + this.MpUserID.ToString() + "')");
                    //score
                    hasPrizeGift.Alias_Name = hasPrizeGift.Alias_Name ?? "";
                    if (scoreStoreItem.LeftCount > 0)
                    {
                        //中奖业务处理
                        ScorePluginResult pluginSceneResult = new ScorePluginResult();
                        pluginSceneResult.Address     = "";
                        pluginSceneResult.CreateDate  = DateTime.Now;
                        pluginSceneResult.Type        = 1;
                        pluginSceneResult.IsUse       = 0;
                        pluginSceneResult.MobilePhone = "";
                        pluginSceneResult.Name        = "";
                        pluginSceneResult.Phone       = "";
                        pluginSceneResult.PluginId    = Id;
                        pluginSceneResult.MpUserId    = this.MpUserID;
                        pluginSceneResult.SN          = "";
                        pluginSceneResult.UserName    = (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name);

                        if (this.MpUserArr != null)
                        {
                            pluginSceneResult.Summary = "恭喜用户[" + (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name) + "]获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]";
                        }
                        else
                        {
                            pluginSceneResult.Summary = "恭喜匿名用户获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]";
                        }
                        //pluginSceneResult.Value = "<?xml version=\"1.0\" encoding=\"utf-8\"?><PluginSubmit><Cst_Plugin_ItemIndex>" + result.ToString() + "</Cst_Plugin_ItemIndex><Cst_Plugin_PrizeLevel>" + hasPrizeGift.Prize_Name + "</Cst_Plugin_PrizeLevel><Cst_Plugin_PrizeName>" + hasPrizeGift.Name + "</Cst_Plugin_PrizeName></PluginSubmit>";
                        pluginSceneResult.Value = hasPrizeGift.Prize_Name + "++" + hasPrizeGift.Name;

                        #region 更新商城数量
                        scoreStoreItem.LeftCount -= 1;
                        _scoreStoreItemServiceService.Update(scoreStoreItem);
                        #endregion
                        #region 更新中奖纪录
                        _scorePluginResultService.Insert(pluginSceneResult);
                        #endregion
                        #region 更新虚拟积分纪录
                        if (scoreStoreItem.VirtualGift > 0)
                        {
                            scoreUser.CurrentScore += scoreStoreItem.VirtualGift;
                            _scoreUserService.Update(scoreUser);


                            ScoreConsumeInfo scoreConSumeInfo2 = new ScoreConsumeInfo();
                            scoreConSumeInfo2.ConsumeDateTime = scoreConSumeInfo.CreateDate = DateTime.Now;
                            scoreConSumeInfo2.MpUserId        = this.MpUserID;
                            scoreConSumeInfo2.ConsumeType     = (int)(ScoreConsume.Plugins);
                            scoreConSumeInfo2.ConsumePoints   = scoreStoreItem.VirtualGift;
                            scoreConSumeInfo2.Summary         = "抽奖中了" + scoreStoreItem.VirtualGift + "积分";
                            _scoreConsumeInfoService.Insert(scoreConSumeInfo2);
                        }
                        #endregion
                        hasPrizeGift.ResultID = pluginSceneResult.Id;
                    }

                    return(Content(JsonConvert.SerializeObject(hasPrizeGift), "text/javascript"));
                }
            }
            catch (Exception ex)
            {
                throw new OceanException(ex.Message, ex);
            }
        }
コード例 #17
0
ファイル: OceanException.cs プロジェクト: CocacolaSh/temp
 /// <summary>
 /// Initializes a new instance of the Exception class with a specified error message and a reference to the inner exception that is the cause of this exception.
 /// </summary>
 /// <param name="message">The error message that explains the reason for the exception.</param>
 /// <param name="innerException">The exception that is the cause of the current exception, or a null reference if no inner exception is specified.</param>
 public OceanException(string message, Exception innerException)
     : base(message, innerException)
 {
     Log4NetImpl.Write(message + "===detail===>", innerException.ToString());
 }
コード例 #18
0
ファイル: WeixinController.cs プロジェクト: CocacolaSh/temp
        public MpUser AysnUser(string OpenId)
        {
            MpUser currUser = MpUserService.GetByOpenID(OpenId);

            if (currUser == null && !string.IsNullOrEmpty(OpenId))
            {
                currUser               = new MpUser();
                currUser.MpID          = MpCenterCache.Id;
                currUser.CreateDate    = DateTime.Now;
                currUser.MpGroupID     = MpUserGroupService.GetSystemGroup("默认分组").Id;
                currUser.IsSubscribe   = true;
                currUser.LastVisitDate = DateTime.Now;
                currUser.OpenID        = OpenId;
                currUser.OrginID       = MpCenterCache.OriginID;
                currUser.UserState     = 0;
                currUser.SceneId       = 0;
                string token = GetAccessToken();
                if (!string.IsNullOrEmpty(token))
                {
                    try
                    {
                        UserInfoJson info = Senparc.Weixin.MP.AdvancedAPIs.User.Info(token, OpenId);
                        if (info != null)
                        {
                            currUser.City          = info.city;
                            currUser.Country       = info.country;
                            currUser.HeadImgUrl    = info.headimgurl;
                            currUser.Language      = info.language;
                            currUser.NickName      = info.nickname;
                            currUser.Province      = info.province;
                            currUser.SubscribeDate = DateTimeHelper.GetDateTimeFromXml(info.subscribe_time);
                            currUser.Sex           = info.sex;
                        }
                    }
                    catch (Exception e)
                    {
                        Log4NetImpl.Write("AysnUser失败:" + e.Message);
                    }
                }
                MpUser currUserCopy = MpUserService.GetByOpenID(OpenId);
                if (currUserCopy == null || currUserCopy.Id == Guid.Empty)
                {
                    MpUserService.Insert(currUser);
                    Log4NetImpl.Write("AysnUserInsert结束");
                }
                else
                {
                    currUser.Id = currUserCopy.Id;
                    MpUserService.Update(currUser);
                    Log4NetImpl.Write("AysnUserUpdate结束");
                }
            }
            else
            {
                if (!currUser.IsSubscribe)
                {
                    currUser.IsSubscribe   = true;
                    currUser.SubscribeDate = DateTime.Now;
                    MpUserService.Update(currUser);
                }
            }
            return(currUser);
        }
コード例 #19
0
        public string StartKfMeeting()
        {
            if (!string.IsNullOrWhiteSpace(Token))
            {
                if (Token != "ocean")
                {
                    return(JsonHelper.AnalysisJson <string>("凭证错误", "error", null));
                }
            }
            KfMeeting kfMeeting2 = _kfMeetingService.GetUnique(m => m.MpUserId == SendUserId && !m.IsEnd, "CreateDate", false);

            if (kfMeeting2 != null && kfMeeting2.KfNumberId != Guid.Empty)
            {
                string message2 = string.Empty;

                Log4NetImpl.Write("SendPrivateMessage:" + kfMeeting2.MpUserId.ToString(), kfMeeting2.KfNumberId.ToString());
                new CommandManager(null).TryHandleCommand("SendPrivateMessage", new string[] { kfMeeting2.MpUserId.ToString(), kfMeeting2.KfNumberId.ToString(), "客服" }, ref message2);
                return(JsonHelper.AnalysisJson <string>("已经接入", "error", null));
            }

            string           message      = string.Empty;
            IList <KfNumber> listKfNumber = _kfNumberService.GetALL().Where(m => m.IsOnline == true && m.OnlineStatus == 0).ToList();

            if (listKfNumber.Count == 0)
            {
                //把消息发送给微信端客户
                MpUser mpUser2 = _mpUserService.GetById(SendUserId);

                if (mpUser2 != null && !string.IsNullOrWhiteSpace(mpUser2.OpenID))
                {
                    _mpUserService.SendMessage(mpUser2.OpenID, "当前没有客服在线");
                }

                return(JsonHelper.AnalysisJson <string>("当前没有客服在线", "error", null));
            }

            var kfMeeting = new KfMeeting()
            {
                BeginDate = DateTime.Now,
                IsEnd     = false,
                MpUserId  = SendUserId
            };

            _kfMeetingService.Insert(kfMeeting);

            //向所有在线客服发送接入请求
            //访客名称
            string visitName = string.Empty;
            MpUser mpUser    = _mpUserService.GetById(kfMeeting.MpUserId);

            if (mpUser != null)
            {
                visitName = mpUser.NickName;

                if (!string.IsNullOrWhiteSpace(mpUser.OpenID))
                {
                    _mpUserService.SendMessage(mpUser.OpenID, "等待客服接入,输入【退出】或【tc】退出聊天状态");
                }
            }
            else
            {
                visitName = "访客_" + new Random().Next(100);
            }
            foreach (KfNumber model in listKfNumber)
            {
                new CommandManager(null).TryHandleCommand("Notice", new string[] { SendUserId.ToString(), visitName, model.Id.ToString(), "1", "0", kfMeeting.Id.ToString() }, ref message);
            }

            return(JsonHelper.AnalysisJson <string>(string.Empty, "ok", null));
        }
コード例 #20
0
ファイル: ScoreSysController.cs プロジェクト: CocacolaSh/temp
        public ActionResult ImportPhoneExcel(HttpPostedFileBase phoneExcel, DateTime importTime)
        {
            ViewBag.Method  = "post";
            ViewBag.Success = true;
            int countPhone       = 0;
            int countPhoneUpdate = 0;

            if (importTime == null)
            {
                ViewBag.Success = false;
                ViewBag.Message = "请选择导入日期";
                return(View("_ImportPhoneExcel"));
            }
            if (!phoneExcel.FileName.Contains(importTime.ToString("yyyyMMdd")))
            {
                ViewBag.Success = false;
                ViewBag.Message = "导入日期不正确";
                return(View("_ImportPhoneExcel"));
            }
            if (phoneExcel != null)
            {
                DataTable dt = null;
                if (phoneExcel.FileName.ToLower().EndsWith(".xlsx"))
                {
                    dt = NPOIHelper.ExcelToTableForXLSX(phoneExcel.InputStream, "客户名称");
                }
                else
                {
                    dt = NPOIHelper.ExcelToTableForXLS(phoneExcel.InputStream, "客户名称", string.Empty);
                }
                var columns = dt.Columns;

                //DateRule rule = DateRuleList.DateRules.Where(d => d.Months.Where(m => m == DateTime.Now.Month).Count() > 0).First();
                //int month = rule.ApplyMonth;
                //int year = DateTime.Now.Year;
                try
                {
                    for (int i = 0; i <= dt.Rows.Count - 1; i++)
                    {
                        ScoreTradeInfo tradeInfo = new ScoreTradeInfo();
                        tradeInfo.ClientName = dt.Rows[i]["客户名称"].ToString();
                        if (tradeInfo.ClientName == "")
                        {
                            Log4NetImpl.Write("Line:" + i);
                            continue;
                        }
                        tradeInfo.ClientPhone = dt.Rows[i]["签约手机"].ToString();
                        tradeInfo.TradeCount  = Convert.ToInt32(dt.Rows[i]["业务笔数"].ToString());
                        tradeInfo.TradeTime   = importTime;
                        tradeInfo.IsStatic    = 0;
                        ScoreTradeInfo oldTradeInfo;
                        int            exits = _scoreTradeInfoService.ExistTradeInfo(tradeInfo, out oldTradeInfo, false);
                        if (exits == 1 && oldTradeInfo.IsStatic == 0)//已存在,并且未跑
                        {
                            countPhoneUpdate++;
                            oldTradeInfo.TradeCount += tradeInfo.TradeCount;
                            _scoreTradeInfoService.Update(oldTradeInfo);
                        }
                        else
                        {
                            countPhone++;
                            _scoreTradeInfoService.Insert(tradeInfo);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Log4NetImpl.Write("导入异常" + ex.Message);
                    throw new OceanException("导入失败,具体原因,请查看日志!", ex);
                }
                ViewBag.countPhone       = countPhone;
                ViewBag.countPhoneUpdate = countPhoneUpdate;
            }
            else
            {
                ViewBag.Success = false;
                ViewBag.Message = "请选择导入文件";
            }
            return(View("_ImportPhoneExcel"));
        }
コード例 #21
0
        public ActionResult PluginsLottery(Guid Id, string t)
        {
            try
            {
                //Log4NetImpl.Write("抽奖开始:1");
                if (Id == Guid.Empty)
                {
                    return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" })); //message = "参数有误,请检查!" });
                }

                if (MpUserID == Guid.Empty)
                {
                    string rawUrl = "http://wx.ssrcb.com/pluginsScene/PluginsLottery?id=" + WebHelper.GetGuid("Id", Guid.Empty);
                    if (string.IsNullOrEmpty(RQuery["openid"]))
                    {
                        return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) }));
                    }
                }

                Plugin plugin = _pluginService.GetById(Id);
                if (plugin == null)
                {
                    return(Json(new { isOK = false, error_code = "ERR_PluginNotExits" }));//message = "对不起,不存在该插件或未开通,请检查!" });
                }

                //设置布局页
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(plugin.Value);
                XmlNode pluginNode = xmlDoc.SelectSingleNode("plugin");
                GetDataToViewData(pluginNode);
                if (ViewBag.Cst_Plugin_Title == null)
                {
                    return(Json(new { isOK = false, error_code = "ERR_PluginNotExits" }));// message = "对不起,您还未配置或配置错误,请到插件中心进行配置下!" });
                }
                if (!string.IsNullOrEmpty(ViewBag.Cst_Plugin_StartDate))
                {
                    DateTime startDate = TypeConverter.StrToDateTime(ViewBag.Cst_Plugin_StartDate.ToString());
                    if (startDate > DateTime.Now)
                    {
                        return(Json(new { isOK = false, error_code = "ERR_PluginNotStart" }));// message = "对不起,抽奖还未开始!" });
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(ViewBag.Cst_Plugin_EndDate))
                        {
                            DateTime endDate = TypeConverter.StrToDateTime(ViewBag.Cst_Plugin_EndDate.ToString());
                            if (endDate < DateTime.Now)
                            {
                                return(Json(new { isOK = false, error_code = "ERR_PluginIsEnd" }));// message = "对不起,抽奖已经结束!" });
                            }
                        }
                    }
                }

                //PluginSceneVerifyCodeDetail verifyCodeDetail = _pluginSceneVerifyCodeDetailService.GetUnique("from SceneVerifyCodeDetail where ClientMPID='" + this.MpUserID.ToString() + "' and convert(char(10),(CreateDate),120) = '" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
                PluginSceneVerifyCodeDetail verifyCodeDetail = _pluginSceneVerifyCodeDetailService.GetUnique("from SceneVerifyCodeDetail where ClientMPID='" + this.MpUserID.ToString() + "' and cast(DATEPART(YEAR, CreateDate) as varchar(4))+'-'+ cast(DATEPART(MONTH, CreateDate) as varchar(2)) = '" + DateTime.Now.ToString("yyyy-MM") + "'");

                if (verifyCodeDetail == null)
                {
                    return(Json(new { isOK = false, isVertfy = true, error_code = "ERR_UserNotVerify" }));
                }

                if (verifyCodeDetail.LeaveCount <= 0)
                {
                    return(Json(new { isOK = false, error_code = "ERR_UserUseOutChance" }));
                }


                int prizeCount     = TypeConverter.StrToInt(ViewBag.Cst_Plugin_PrizeCount, 12);
                int prizeItemCount = TypeConverter.StrToInt(ViewBag.Cst_Plugin_Items_Count, 1);
                if (prizeCount != prizeItemCount)
                {
                    Log4NetImpl.Write("奖项设置不正确");
                    return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" }));
                }
                IList <PrizeGift> prizeGift      = new List <PrizeGift>(prizeItemCount);
                IList <Double>    prizeItems     = new List <Double>(prizeItemCount);
                IList <string>    prizeItemsName = new List <string>(prizeCount);
                IList <int>       prizeAngle     = new List <int>(12);
                prizeItemsName.Add("一");
                prizeItemsName.Add("二");
                prizeItemsName.Add("三");
                prizeItemsName.Add("四");
                prizeItemsName.Add("五");
                prizeItemsName.Add("六");
                prizeItemsName.Add("七");
                prizeItemsName.Add("八");
                prizeItemsName.Add("九");
                prizeItemsName.Add("十");
                prizeItemsName.Add("十一");
                prizeItemsName.Add("十二");
                for (int i = 0; i < prizeItemCount; i++)
                {
                    PrizeGift gift = new PrizeGift();
                    gift.ID         = i;
                    gift.Name       = ViewData.GetString("Cst_Plugin_Items_PrizeName" + i.ToString());
                    gift.Alias_Name = ViewData.GetString("Cst_Plugin_Items_PrizeAliasName" + i.ToString());
                    gift.Odds       = ViewData.GetDouble("Cst_Plugin_Items_PrizePercent" + i.ToString(), 0.00) / 100.00;
                    gift.Pic        = ViewData.GetString("Cst_Plugin_Items_PrizePic" + i.ToString());
                    gift.Quantity   = ViewData.GetInt("Cst_Plugin_Items_PrizeNum" + i.ToString());
                    if (ViewData["Cst_Plugin_Items_PrizeUsedNum" + i.ToString()] != null)
                    {
                        gift.Leavings_Quantity = ViewData.GetInt("Cst_Plugin_Items_PrizeUsedNum" + i.ToString());
                    }
                    else
                    {
                        gift.Leavings_Quantity = gift.Quantity;
                    }
                    gift.Angle = ViewData.GetInt("Cst_Plugin_Items_PrizeAngle" + i.ToString());
                    prizeAngle.Add(gift.Angle);
                    gift.Prize_Name = prizeItemsName[i] + "等奖";
                    if (!string.IsNullOrEmpty(gift.Alias_Name))
                    {
                        gift.Prize_Name = gift.Alias_Name;
                    }
                    gift.Has_Gift  = ViewData.GetInt("Cst_Plugin_Items_Has_Gift" + i.ToString());
                    gift.Users     = ViewData.GetString("Cst_Plugin_Items_SiteUsers" + i.ToString());
                    gift.UsersName = ViewData.GetString("Cst_Plugin_Items_SiteUsersName" + i.ToString());
                    prizeItems.Add(gift.Odds);
                    prizeGift.Add(gift);
                }
                int averageAngle = 360 / prizeCount;

                prizeItems.OrderBy(d => d);

                int    result    = -1;
                string resultStr = "";

                verifyCodeDetail.LeaveCount = verifyCodeDetail.LeaveCount - 1;
                verifyCodeDetail.UseDate    = DateTime.Now;
                _pluginSceneVerifyCodeDetailService.Update(verifyCodeDetail);

                int count = _pluginSceneResultService.GetCount("from SceneResult where pluginId='" + Id.ToString() + "' and MpUserId='" + this.MpUserID.ToString() + "' and cast(DATEPART(YEAR, CreateDate) as varchar(4))+'-'+ cast(DATEPART(MONTH, CreateDate) as varchar(2)) = '" + DateTime.Now.ToString("yyyy-MM") + "'");
                if (ViewData.GetInt("Cst_Plugin_ZeroPrize") == 1 && count > 0)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));
                }
                if (prizeGift.Where(g => g.Has_Gift == 1 && g.Leavings_Quantity > 0).Count() == 0)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));//new PrizeGift() { ID = -1, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 300, Prize_Name = "继续加油" });
                }

                result = LotteryUtils.Lottery(prizeItems, prizeGift, prizeCount, this.MpUserID, Id);


                if (result == -1)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));//Json(new PrizeGift() { ID = -1, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 240, Prize_Name = "继续加油" });
                }
                else if (result == -2)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" });
                }
                else if (result == -3)
                {
                    return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" });
                }
                else
                {
                    PrizeGift hasPrizeGift = prizeGift[result];

                    hasPrizeGift.Alias_Name = hasPrizeGift.Alias_Name ?? "";
                    if (hasPrizeGift.Has_Gift == 1 && hasPrizeGift.Leavings_Quantity > 0)
                    {
                        //中奖业务处理
                        PluginSceneResult pluginSceneResult = new PluginSceneResult();
                        pluginSceneResult.Address     = "";
                        pluginSceneResult.CreateDate  = DateTime.Now;
                        pluginSceneResult.Email       = "";
                        pluginSceneResult.IsUse       = 0;
                        pluginSceneResult.MobilePhone = "";
                        pluginSceneResult.Name        = "";
                        pluginSceneResult.Phone       = "";
                        pluginSceneResult.PluginId    = Id;
                        pluginSceneResult.MpUserId    = this.MpUserID;
                        pluginSceneResult.SN          = "";
                        pluginSceneResult.UserName    = (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name);



                        if (this.MpUserArr != null)
                        {
                            pluginSceneResult.Summary = "恭喜用户[" + (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name) + "]获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]";
                        }
                        else
                        {
                            pluginSceneResult.Summary = "恭喜匿名用户获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]";
                        }
                        pluginSceneResult.Value = "<?xml version=\"1.0\" encoding=\"utf-8\"?><PluginSubmit><Cst_Plugin_ItemIndex>" + result.ToString() + "</Cst_Plugin_ItemIndex><Cst_Plugin_PrizeLevel>" + hasPrizeGift.Prize_Name + "</Cst_Plugin_PrizeLevel><Cst_Plugin_PrizeName>" + hasPrizeGift.Name + "</Cst_Plugin_PrizeName></PluginSubmit>";

                        #region 更新中奖数量
                        XmlNode itemsNode = pluginNode.SelectSingleNode("Cst_Plugin_Items");
                        XmlNode node      = itemsNode.SelectSingleNode("Cst_Plugin_Items_PrizeUsedNum" + result.ToString());
                        if (node == null)
                        {
                            node           = xmlDoc.CreateElement("Cst_Plugin_Items_PrizeUsedNum" + result.ToString());
                            node.InnerText = (hasPrizeGift.Quantity - 1).ToString();
                            itemsNode.AppendChild(node);
                        }
                        else
                        {
                            node.InnerText = (hasPrizeGift.Leavings_Quantity - 1).ToString();
                        }
                        StringWriter  sw = new StringWriter();
                        XmlTextWriter tx = new XmlTextWriter(sw);
                        xmlDoc.WriteTo(tx);
                        string strXmlText = sw.ToString();
                        plugin.Value = strXmlText;
                        _pluginService.Update(plugin);
                        #endregion

                        _pluginSceneResultService.Insert(pluginSceneResult);
                        hasPrizeGift.ResultID = pluginSceneResult.Id;
                    }

                    return(Content(JsonConvert.SerializeObject(hasPrizeGift), "text/javascript"));
                }
            }
            catch (Exception ex)
            {
                throw new OceanException(ex.Message, ex);
            }
        }
コード例 #22
0
        public ActionResult Trans(Guid id, string TransName, string TransPhone, int TransScore)
        {
            try
            {
                if (MpUserID == Guid.Empty)
                {
                    string rawUrl = "http://wx.ssrcb.com/ScoreSys/Index";
                    if (string.IsNullOrEmpty(RQuery["openid"]))
                    {
                        return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) }));
                    }
                }
                ScoreUser scoreUser = _scoreUserService.GetUnique("from ScoreUser where (MpUserId ='" + this.MpUserID.ToString() + "')");

                if (scoreUser == null)
                {
                    return(Json(new { isOK = false, error_code = "ERR_UserHadBind" }));
                }

                ScoreUser scoreTransUser = _scoreUserService.GetUnique("from ScoreUser where (ClientPhone='" + TransPhone.Trim() + "' and ClientName = '" + TransName + "')");

                if (scoreTransUser == null)
                {
                    return(Json(new { isOK = false, error_code = "ERR_UserNotExist" }));
                }
                if (scoreUser.ClientPhone == scoreTransUser.ClientPhone)
                {
                    return(Json(new { isOK = false, error_code = "ERR_TransSamePerson" }));
                }
                if (scoreUser.CurrentScore < TransScore)
                {
                    return(Json(new { isOK = false, error_code = "ERR_ScoreNotEnough" }));
                }
                scoreUser.CurrentScore -= TransScore;
                _scoreUserService.Update(scoreUser);

                //转出积分记录
                ScoreConsumeInfo scoreConsumeDetail = new ScoreConsumeInfo();
                scoreConsumeDetail.MpUserId        = this.MpUserID;
                scoreConsumeDetail.ConsumeType     = (int)ScoreConsume.Trans;
                scoreConsumeDetail.ConsumePoints   = -TransScore;
                scoreConsumeDetail.CreateDate      = DateTime.Now;
                scoreConsumeDetail.ConsumeDateTime = DateTime.Now;
                scoreConsumeDetail.Summary         = "转给[" + TransName + TransPhone + "]" + TransScore + "积分";
                _scoreConsumeInfoService.Insert(scoreConsumeDetail);

                scoreTransUser.CurrentScore += TransScore;
                _scoreUserService.Update(scoreTransUser);

                //转入积分记录
                ScoreConsumeInfo transScoreConsumeDetail = new ScoreConsumeInfo();
                transScoreConsumeDetail.MpUserId        = scoreTransUser.MpUserId;
                transScoreConsumeDetail.ConsumeType     = (int)ScoreConsume.Trans;
                transScoreConsumeDetail.ConsumePoints   = TransScore;
                transScoreConsumeDetail.CreateDate      = DateTime.Now;
                transScoreConsumeDetail.ConsumeDateTime = DateTime.Now;
                transScoreConsumeDetail.Summary         = "从[" + scoreUser.ClientName + scoreUser.ClientPhone + "]获得转入" + TransScore + "积分";
                _scoreConsumeInfoService.Insert(transScoreConsumeDetail);

                return(Json(new { isOK = true, error_code = "ERR_OK", currentScore = scoreUser.CurrentScore, scoreDetail = scoreConsumeDetail.ConsumeDateTime + scoreConsumeDetail.Summary }));
            }
            catch (System.Exception ex)
            {
                Log4NetImpl.Write("ScoreSys_Trans:" + ex.Message);
            }
            return(View());
        }
コード例 #23
0
ファイル: LoanTask.cs プロジェクト: CocacolaSh/temp
        /// <summary>
        /// 实现自己的任务逻辑
        /// </summary>
        public void Execute()
        {
            int count = _loanService.GetCount(" where 1=1");

            Log4NetImpl.Write(string.Format("贷款任务调度测试,当前贷款总条数{0},任务调度执行时间{1}", count, DateTime.Now), Log4NetImpl.ErrorLevel.Info);
        }
コード例 #24
0
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder)
        {
            //HTTP context and other related stuff
            builder.Register(c =>
                             //register FakeHttpContext when HttpContext is not available
                             HttpContext.Current != null ?
                             (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) :
                             (new FakeHttpContext("~/") as HttpContextBase))
            .As <HttpContextBase>()
            .InstancePerHttpRequest();
            builder.Register(c => c.Resolve <HttpContextBase>().Request)
            .As <HttpRequestBase>()
            .InstancePerHttpRequest();
            builder.Register(c => c.Resolve <HttpContextBase>().Response)
            .As <HttpResponseBase>()
            .InstancePerHttpRequest();
            builder.Register(c => c.Resolve <HttpContextBase>().Server)
            .As <HttpServerUtilityBase>()
            .InstancePerHttpRequest();
            builder.Register(c => c.Resolve <HttpContextBase>().Session)
            .As <HttpSessionStateBase>()
            .InstancePerHttpRequest();

            //web helper
            builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerHttpRequest();

            //cache manager
            builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("ocean_cache_static").SingleInstance();
            builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("ocean_cache_per_request").InstancePerHttpRequest();

            //controllers
            builder.RegisterControllers(typeFinder.GetAssemblies().ToArray());

            //data layer
            var dataSettingsManager  = new DataSettingsManager();
            var dataProviderSettings = dataSettingsManager.LoadSettings();

            builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>().InstancePerDependency();
            builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency();
            builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency();
            builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IEfDataProvider>().InstancePerDependency();

            if (dataProviderSettings != null && dataProviderSettings.IsValid())
            {
                var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings());
                var dataProvider          = (IEfDataProvider)efDataProviderManager.LoadDataProvider();
                dataProvider.InitConnectionFactory();
                builder.Register <IDbContext>(c => new OceanObjectContext(dataProviderSettings.DataConnectionString)).InstancePerHttpRequest();
            }
            else
            {
                builder.Register <IDbContext>(c => new OceanObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerHttpRequest();
            }

            //builder.Register<IDbContext>(c => new OceanObjectContext("EFDbContext")).InstancePerHttpRequest();
            builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerHttpRequest();

            //service
            builder.RegisterType <EnumTypeService>().As <IEnumTypeService>().InstancePerHttpRequest();
            builder.RegisterType <EnumDataService>().As <IEnumDataService>().InstancePerHttpRequest();
            builder.RegisterType <AdminService>().As <IAdminService>().InstancePerHttpRequest();
            builder.RegisterType <AdminLoggerService>().As <IAdminLoggerService>().InstancePerHttpRequest();
            builder.RegisterType <PermissionOrganizationService>().As <IPermissionOrganizationService>().InstancePerHttpRequest();
            builder.RegisterType <PermissionModuleService>().As <IPermissionModuleService>().InstancePerHttpRequest();
            builder.RegisterType <PermissionModuleCodeService>().As <IPermissionModuleCodeService>().InstancePerHttpRequest();
            builder.RegisterType <PermissionRoleService>().As <IPermissionRoleService>().InstancePerHttpRequest();
            builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerHttpRequest();
            builder.RegisterType <ProductService>().As <IProductService>().InstancePerHttpRequest();
            builder.RegisterType <LoanService>().As <ILoanService>()
            .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("ocean_cache_static"))
            .InstancePerHttpRequest();
            builder.RegisterType <LoanAssignLoggerService>().As <ILoanAssignLoggerService>().InstancePerHttpRequest();
            builder.RegisterType <MpCenterService>().As <IMpCenterService>().InstancePerHttpRequest();
            builder.RegisterType <MpMaterialService>().As <IMpMaterialService>().InstancePerHttpRequest();
            builder.RegisterType <MpMaterialItemService>().As <IMpMaterialItemService>().InstancePerHttpRequest();
            builder.RegisterType <MpUserGroupService>().As <IMpUserGroupService>().InstancePerHttpRequest();
            builder.RegisterType <MpReplyService>().As <IMpReplyService>().InstancePerHttpRequest();
            builder.RegisterType <MpUserService>().As <IMpUserService>().InstancePerHttpRequest();
            builder.RegisterType <FunongbaoService>().As <IFunongbaoService>().InstancePerHttpRequest();
            builder.RegisterType <FunongbaoApplyService>().As <IFunongbaoApplyService>().InstancePerHttpRequest();
            builder.RegisterType <BranchService>().As <IBranchService>().InstancePerHttpRequest();
            builder.RegisterType <MobileCodeService>().As <IMobileCodeService>().InstancePerHttpRequest();
            builder.RegisterType <ConfigurationService>().As <IConfigurationService>().InstancePerHttpRequest();
            builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerHttpRequest();
            builder.RegisterType <MpQrSceneService>().As <IMpQrSceneService>().InstancePerHttpRequest();

            //KF
            builder.RegisterType <KfNumberService>().As <IKfNumberService>().InstancePerHttpRequest();
            builder.RegisterType <KfMeetingService>().As <IKfMeetingService>().InstancePerHttpRequest();
            builder.RegisterType <KfMeetingMessageService>().As <IKfMeetingMessageService>().InstancePerHttpRequest();

            //configuration and setting
            builder.RegisterGeneric(typeof(ConfigurationProvider <>)).As(typeof(IConfigurationProvider <>));
            builder.RegisterSource(new SettingsSource());
            builder.RegisterType <SettingService>().As <ISettingService>().InstancePerHttpRequest();

            //theme helper
            builder.RegisterType <MobileDeviceHelper>().As <IMobileDeviceHelper>().InstancePerHttpRequest();
            builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerHttpRequest();
            builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerHttpRequest();

            //Visual Plugins
            builder.RegisterType <PluginBaseService>().As <IPluginBaseService>().InstancePerHttpRequest();
            builder.RegisterType <PluginBaseStyleService>().As <IPluginBaseStyleService>().InstancePerHttpRequest();
            builder.RegisterType <PluginService>().As <IPluginService>().InstancePerHttpRequest();
            builder.RegisterType <PluginResultService>().As <IPluginResultService>().InstancePerHttpRequest();
            builder.RegisterType <PluginUsedService>().As <IPluginUsedService>().InstancePerHttpRequest();
            builder.RegisterType <PluginAllowUserService>().As <IPluginAllowUserService>().InstancePerHttpRequest();
            builder.RegisterType <PluginSceneApllyCodeAllowerService>().As <IPluginSceneApllyCodeAllowerService>().InstancePerHttpRequest();
            builder.RegisterType <PluginSceneResultService>().As <IPluginSceneResultService>().InstancePerHttpRequest();
            builder.RegisterType <PluginSceneVerifyCodeDetailService>().As <IPluginSceneVerifyCodeDetailService>().InstancePerHttpRequest();

            //plugins
            builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerHttpRequest();
            builder.RegisterType <EmbeddedViewResolver>().As <IEmbeddedViewResolver>().SingleInstance();
            builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance();
            builder.RegisterType <WidgetService>().As <IWidgetService>().InstancePerHttpRequest();
            Log4NetImpl.SetConfig(FileHelper.GetMapPath("~/config/log4net.config"));

            //pos
            builder.RegisterType <PosApplyService>().As <IPosApplyService>().InstancePerHttpRequest();
            builder.RegisterType <PosAuthService>().As <IPosAuthService>().InstancePerHttpRequest();
            builder.RegisterType <PosService>().As <IPosService>().InstancePerHttpRequest();

            //vote
            builder.RegisterType <VoteItemService>().As <IVoteItemService>().InstancePerHttpRequest();
            builder.RegisterType <VoteInfoService>().As <IVoteInfoService>().InstancePerHttpRequest();
            builder.RegisterType <VoteBaseService>().As <IVoteBaseService>().InstancePerHttpRequest();

            //scoresys
            builder.RegisterType <ScoreUserService>().As <IScoreUserService>().InstancePerHttpRequest();
            builder.RegisterType <ScoreTradeInfoService>().As <IScoreTradeInfoService>().InstancePerHttpRequest();
            builder.RegisterType <ScoreStoreItemService>().As <IScoreStoreItemService>().InstancePerHttpRequest();
            builder.RegisterType <ScorePluginResultService>().As <IScorePluginResultService>().InstancePerHttpRequest();
            builder.RegisterType <ScoreConsumeInfoService>().As <IScoreConsumeInfoService>().InstancePerHttpRequest();

            //xypluginuser
            builder.RegisterType <XYPluginUserService>().As <IXYPluginUserService>().InstancePerHttpRequest();


            //baoxian
            builder.RegisterType <ComplainService>().As <IComplainService>().InstancePerHttpRequest();
            builder.RegisterType <DrivingLicenseService>().As <IDrivingLicenseService>().InstancePerHttpRequest();
            builder.RegisterType <VehicleLicenseService>().As <IVehicleLicenseService>().InstancePerHttpRequest();
        }