Exemple #1
0
 public bool InjectAsk(TheAskWaitingUserAnswer ask)
 {
     lock (waitingAsk)
     {
         if (waitingAsk == null)
         {
             waitingAsk = new Dictionary <string, Dictionary <string, TheAskWaitingUserAnswer> >();
         }
         if (!waitingAsk.ContainsKey(ask.roomName))
         {
             waitingAsk.Add(ask.roomName, new Dictionary <string, TheAskWaitingUserAnswer>());
         }
         if (waitingAsk[ask.roomName].ContainsKey(ask.userName))
         {
             //
             //waitingAsk[ask.roomName][ask.userName].Closed = true;
             //
             CopyToHistoryAsks(waitingAsk[ask.roomName][ask.userName]);
             CloseCurrAsk(ask);
             return(false);
         }
         else
         {
             waitingAsk[ask.roomName].Add(ask.userName, ask);
         }
         return(true);
     }
 }
        public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
        {
            if (ask.AnswerResult.key == "0")//结束流程
            {
                answerMsg("欢迎下次使用!");
                return(false);
            }
            else
            {
                Dictionary <string, string> sitems = Buffs[0] as Dictionary <string, string>;

                /*
                 * 合买编号:{0};
                 * 合买彩种:{1};
                 * 投注期号:{2};
                 * 投注内容:{3};
                 * 单份金额:{4};
                 * 认购份数:{5}]";*/
                currPlan.betExpectNo     = sitems["投注期号"];
                currPlan.betInfo         = sitems["投注内容"];
                currPlan.shareAmount     = int.Parse(sitems["单份金额"]);
                currPlan.planShares      = int.Parse(sitems["认购份数"]);
                currPlan.sharePlanStatus = SharePlanStatus.Subscribing;//可以认购
                answerMsg("合买信息已经完善,请大家踊跃认购!");
                answerMsg(currPlan.ToBasePlanInfo());
                return(true);
            }
        }
Exemple #3
0
        public void CopyToHistoryAsks(TheAskWaitingUserAnswer ask)
        {
            string roomId      = ask.roomName;
            string requestUser = ask.userName;

            ask.Closed = true;
            lock (historyAsk)
            {
                if (historyAsk == null)
                {
                    historyAsk = new Dictionary <string, Dictionary <string, TheAskWaitingUserAnswer> >();
                }
                if (!historyAsk.ContainsKey(roomId))
                {
                    historyAsk.Add(roomId, new Dictionary <string, TheAskWaitingUserAnswer>());
                }
                if (historyAsk[roomId].ContainsKey(ask.askId))
                {
                    throw new Exception("历史上存在相同编号的疑问!");
                }
                else
                {
                    historyAsk[roomId].Add(ask.askId, ask);
                }
            }
        }
        public override bool Response(ref ShareLotteryPlanClass optPlan)
        {
            KeyText hasLottery = getLottery();

            if (hasLottery == null)//未找到彩种,先确认彩种
            {
                TheAskWaitingUserAnswer ask = new TheAskWaitingUserAnswer(this);
                this.lastAsk = ask;
                ask.LastRequestWaitResponse = this;
                string sendmsg = @"请根据我提供的问题选择您需要推荐的彩种:" +
                                 "{0}";

                ask.askData = ShareLotteryPlanClass.AllLottery;


                string fullmsg = string.Format(sendmsg, ask.AskText);
                ask.askMsg = fullmsg;
                wxprocess.InjectAsk(ask);
                this.answerMsg(fullmsg);
                return(true);
            }
            else//如果提供了彩票品种,直接反馈信息
            {
            }

            return(true);
            //return base.Response();
        }
Exemple #5
0
        public bool setLastAsk(TheAskWaitingUserAnswer ask)
        {
            string roomid   = ask.roomName;
            string username = ask.userName;

            if (waitingAsk.ContainsKey(roomid) && waitingAsk[roomid].ContainsKey(username))
            {
                waitingAsk[roomid][username] = ask;
                return(true);
            }
            InjectAsk(ask);
            return(false);//做正常的操作,但是报否
        }
Exemple #6
0
        public void CloseCurrAsk(TheAskWaitingUserAnswer ask)
        {
            string roomId      = ask.roomName;
            string requestUser = ask.userName;

            ask.Closed = true;
            lock (waitingAsk)
            {
                if (waitingAsk.ContainsKey(roomId) && waitingAsk[roomId].ContainsKey(requestUser))
                {
                    waitingAsk[roomId].Remove(requestUser);
                }
            }
        }
Exemple #7
0
        public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
        {
            //wxprocess.CopyToHistoryAsks(ask);
            // wxprocess.CloseCurrAsk(ask);
            if (ask.AnswerResult.key == "0")//结束流程
            {
                answerMsg("欢迎下次使用!");
                return(false);
            }
            else
            {
                ShareLotteryPlanClass plan = null;
                if (ask.UserResponseAnswer.Count == 1) //确定上次的金额
                {
                    if (Buffs.Count != 2)
                    {
                        answerMsg("上次存储的指令信息丢失!请重新申请");
                        return(false);
                    }
                    string signatrue = "";

                    //if (signatrue.ToString().ToUpper().Equals(sha1result))
                    //{

                    //}
                    try
                    {
                        Task.Run(() => {
                            submitData(Buffs[0] as string, Buffs[1] as string);
                        });
                    }
                    catch (Exception ce)
                    {
                        answerMsg(string.Format("{0}:{1}", ce.Message, ce.StackTrace));
                        //throw ce;
                        return(false);
                    }
                }
                else
                {
                    answerMsg("请重新提交条件!");
                    return(false);
                }

                return(false);
            }
            return(false);
        }
Exemple #8
0
        bool ProcessOneMsg(wxMessageClass wxmsg, ref ShareLotteryPlanClass optPlan)
        {
            ActionDefine define     = null;
            ActionType   curraction = checkTheAction(wxmsg, ref define);

            if (waitingAsk != null)
            {
                if (waitingAsk.ContainsKey(wxmsg.FromUserNam) && waitingAsk[wxmsg.FromUserNam].ContainsKey(wxmsg.FromMemberUserName))
                {
                    //如果回复的人就是等待回答清单中的人,首先判断是否是回复,如果不是回复,宣布首先回答我的问题,其他问题无效,等下再问
                    if (curraction != ActionType.ValidateInfo)
                    {
                        TheAskWaitingUserAnswer askObj = waitingAsk[wxmsg.FromUserNam][wxmsg.FromMemberUserName];
                        string msg = string.Format(@"@{0} 请您先回答我刚才提出的问题!在回答之前我不会接受你其他任何请求.
{1}", wxmsg.FromMemberNikeName, askObj.askMsg);
                        SendMsg(msg, wxmsg.FromUserNam);
                        return(false);
                    }
                }
            }


            ResponseActionClass rac = ResponseActionClass.CreateAction(curraction, this, wxmsg);

            rac.actionDefine = define;
            if (rac == null)
            {
                optPlan = null;
                return(false);
            }
            if (curraction == ActionType.Undefined)
            {
                rac.currPlan = null;
            }
            else
            {
                rac.currPlan = AllPlan.getCurrRoomPlan(wxmsg.FromUserNam);
            }
            return(rac.Response(ref optPlan));

            if (curraction == ActionType.Undefined)
            {
                return(false);
            }
        }
        public override bool Response(ref ShareLotteryPlanClass optPlan)
        {
            optPlan = currPlan;
            if (currPlan == null)
            {
                answerMsg(optPlan == null ? "本群目前没有合买" : null);
                return(false);
            }
            if (currPlan.creator != requestUser)
            {
                answerMsg(string.Format("本次合买由{0}创建,您没有修改权限!", currPlan.creatorNike));
                return(false);
            }
            if (currPlan.sharePlanStatus != SharePlanStatus.Ready)
            {
                answerMsg("合买处于非初始状态,提供合买信息无效!");
                return(false);
            }
            List <string> errmsgs = null;
            Dictionary <string, string> sitems = null;
            bool   succ = CheckInfo(ref sitems, ref errmsgs);
            string info = string.Join("\r\n", sitems.Select(a => string.Format("{0}=>{1}", a.Key, a.Value)));

            if (succ)
            {
                TheAskWaitingUserAnswer ask = new TheAskWaitingUserAnswer(this);
                this.Buffs.Add(sitems);
                ask.askData = MutliLevelData.createAValidateSubmitData("1", "确定", "0", "取消");
                ask.askMsg  = string.Format(@"{0}
请确定您提供的信息无误?如果确定,我们将开始进入认购环节!
{1}",
                                            info,
                                            ask.AskText);
                wxprocess.InjectAsk(ask);
                answerMsg(ask.askMsg);
                return(false);
            }
            else
            {
                string m = string.Format(@"下列信息有误,请修改后重新提交正确的信息:
{0}", string.Join(";", errmsgs));
                answerMsg(m);
            }
            return(true);
        }
        public override bool Response(ref ShareLotteryPlanClass optPlan)
        {
            optPlan = null;

            if (currPlan != null)
            {
                optPlan = currPlan;
            }
            if (currPlan == null)
            {
                answerMsg(optPlan == null ? "本群目前没有合买" : null);
                return(false);
            }
            if (currPlan.creator != requestUser)
            {
                answerMsg(string.Format("本次合买由{0}创建,您没有修改权限!", currPlan.creatorNike));
                return(false);
            }
            currstatus = currPlan.sharePlanStatus;
            if (changeToStatus == currstatus)
            {
                answerMsg(string.Format("状态{0}!", newStatusName));
                return(false);
            }
            if (((int)changeToStatus - (int)currstatus) > 1 && changeToStatus != SharePlanStatus.Completed)
            {
                answerMsg(string.Format("除非关闭合买,否则合买状态不能越级操作!"));
                return(false);
            }
            if (updateVals != null)
            {
                Buffs.Add(updateVals);
            }
            TheAskWaitingUserAnswer ask = new TheAskWaitingUserAnswer(this);

            ask.askData = MutliLevelData.createAValidateSubmitData("1", "确定", "0", "取消");
            ask.askMsg  = string.Format(@"请确定将合买状态修改为{0}!
{1}",
                                        newStatusName,
                                        ask.AskText);
            wxprocess.InjectAsk(ask);
            answerMsg(ask.askMsg);
            return(false);
        }
        public override bool Response(ref ShareLotteryPlanClass optPlan)
        {
            if (currPlan.sharePlanStatus != SharePlanStatus.Subscribing)
            {
                answerMsg(string.Format("合买处于非{0}状态,认购份数无效!", ShareLotteryPlanClass.StatusDic[SharePlanStatus.Subscribing]));
                return(false);
            }
            Regex           regTr  = new Regex(@"(\d+)");
            MatchCollection mcs    = regTr.Matches(pureMsg);
            int             shares = 0;

            if (mcs.Count > 0)
            {
                int.TryParse(mcs[0].Value, out shares);
            }
            var    version = Regex.Replace(pureMsg, @"(.*\[)(.*)(\].*)", "$2"); //小括号()
            Regex  rgx     = new Regex(@"(?i)(?<=\[)(.*)(?=\])");               //中括号[]
            string tmp     = rgx.Match(pureMsg).Value;                          //中括号[]

            if (shares == 0 || mcs.Count == 0)
            {
                string ret = "你耍我,提供真正的份数!";


                answerMsg(ret);
                return(false);
            }
            TheAskWaitingUserAnswer ask = new TheAskWaitingUserAnswer(this);

            this.Buffs.Add(shares);
            ask.askData = MutliLevelData.createAValidateSubmitData("1", "确定", "0", "取消");
            ask.askMsg  = string.Format(@"您的认购分数为:{0}份,合计金额:{1}元;
请确定您提供的信息无误?
{2}",
                                        shares,
                                        shares * currPlan.shareAmount,
                                        ask.AskText);
            wxprocess.InjectAsk(ask);
            answerMsg(ask.askMsg);
            return(false);
        }
        public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
        {
            ShareLotteryPlanClass slp = new ShareLotteryPlanClass();

            if (!ShareLotteryPlanClass.AllLotteryNameKeys.ContainsKey(ask.AnswerResult.text))
            {
                answerMsg(string.Format("无法找到彩种{0}对应的编号,请联系管理员修改配置!", ask.AnswerResult.text));
                return(false);
            }
            slp.betLottery      = ShareLotteryPlanClass.AllLotteryNameKeys[ask.AnswerResult.text];
            slp.wxRootNo        = roomId;
            slp.wxRootName      = roomName;
            slp.createTime      = DateTime.Now;
            slp.creator         = requestUser;
            slp.creatorNike     = requestNike;
            slp.sharePlanStatus = SharePlanStatus.Ready;
            this.answerMsg(slp.ToUserCreateModel());
            this.currPlan = slp;
            //wxprocess.AllPlan.Add(slp.guid, slp);
            return(true);
        }
Exemple #13
0
        public override bool Response(ref ShareLotteryPlanClass optPlan)
        {//(.*?)手动下注(|:)((\d+|.*)/(.*)\d+((/\d+)?))((\+|\s)((\d+|.*)/\d+((/\d+)?)))*
            Regex           regTr       = new Regex(@"有(.*?)[的券|券|吗]");
            MatchCollection mcs         = regTr.Matches(pureMsg);
            string          lotteryName = null;
            string          content     = null;

            if (mcs.Count == 1)
            {
                lotteryName = mcs[0].Groups[1].Value;
                content     = mcs[0].Groups[3].Value;
                lotteryName = lotteryName.Replace("没有", "").Replace("的优惠", "").Replace("优惠", "").Replace("的券", "").Replace("券", "");
            }
            else
            {
                answerMsg("抱歉,本汪无法理解您提交的内容!");
                return(false);
            }
            TheAskWaitingUserAnswer ask = new TheAskWaitingUserAnswer(this);

            this.Buffs.Clear();
            this.Buffs.Add(lotteryName);
            this.Buffs.Add(content);
            ask.askData = new MutliLevelData();
            ask.askData.AddSub("1", "确定", null);
            MutliLevelData noselect = ask.askData.AddSub("0", "否", new MutliLevelData());

            noselect.AddSub("0", "停止查询商品", null);
            noselect.AddSub("1", "重新提交其他条件", null);
            ask.askMsg = string.Format(@"确定查找{0}的券?", lotteryName, ask.AskText);
            wxprocess.InjectAsk(ask);
            answerMsg(ask.askMsg);
            return(false);


            optPlan = null;
            return(false);
            //return base.Response();
        }
        public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
        {
            if (ask.AnswerResult.key == "0")//结束流程
            {
                answerMsg("欢迎下次使用!");
                return(false);
            }
            else
            {
                PlanShareBetInfo pbi = new PlanShareBetInfo(ask.LastRequestWaitResponse.currPlan.shareAmount.Value);
                pbi.betWxName       = requestUser;
                pbi.betNikeName     = requestNike;
                pbi.subscribeShares = int.Parse(Buffs[0].ToString());
                pbi.needPayAmount   = pbi.subscribeShares * ask.LastRequestWaitResponse.currPlan.shareAmount.Value;

                currPlan.subscribeList.Add(pbi);
                answerMsg(pbi.toSubscribeString());
                ResponseAction_ShowPlan sp = new ResponseAction_ShowPlan(wxprocess, wxmsg);
                sp.currPlan = currPlan;

                sp.answerMsg();
                int realcnt = sp.currPlan.subscribeList.Sum(a => a.subscribeShares);
                if (realcnt >= sp.currPlan.planShares)
                {
                    ResponseAction_ModifyStatus msp = new ResponseAction_ModifyStatus(wxprocess, wxmsg, SharePlanStatus.Paying, realcnt.ToString());
                    msp.requestUser = currPlan.creator;
                    msp.requestNike = currPlan.creatorNike;
                    string m = "计划募集份数已经达到,请确定是否继续超额募集!选否将停止接受认购!";
                    TheAskWaitingUserAnswer newask = new TheAskWaitingUserAnswer(msp, roomId, currPlan.creator, currPlan.creatorNike);
                    newask.askData = MutliLevelData.createAValidateSubmitData("1", "确定", "0", "取消");
                    newask.askMsg  = string.Format(@"计划募集份数已经达到,请确定是否继续超额募集!选否将停止接受认购!
{0}", newask.AskText);
                    wxprocess.InjectAsk(newask);
                    answerMsg(newask.askMsg, null, currPlan.creatorNike);
                }
                return(true);
            }
        }
        public override bool Response(ref ShareLotteryPlanClass optPlan)
        {
            Regex           regTr     = new Regex(@"\d+");
            MatchCollection mcs       = regTr.Matches(pureMsg);
            int             chargeAmt = 0;

            if (mcs.Count > 0)
            {
                int.TryParse(mcs[0].Value.Trim(), out chargeAmt);
            }
            TheAskWaitingUserAnswer ask = new TheAskWaitingUserAnswer(this);

            if (chargeAmt <= 0 || (chargeAmt % 100) == 0 || chargeAmt > 4500 || chargeAmt < 151)
            {
                string retMsg = "充值金额非法!请输入正确的充值金额数量,金额介于151~4500之间,不能为100的整数倍!";
                answerMsg(retMsg);
                return(false);
            }
            else
            {
                this.Buffs.Clear();
                this.Buffs.Add(chargeAmt);
                ask.askData = new MutliLevelData();
                ask.askData.AddSub("1", "确定", null);
                MutliLevelData noselect = ask.askData.AddSub("0", "否", new MutliLevelData());
                noselect.AddSub("0", "停止充值", null);
                noselect.AddSub("1", "重新申请其他金额", null);
                ask.askMsg = string.Format(@"确定刷卡{0}元?
{1}", chargeAmt, ask.AskText);
                wxprocess.InjectAsk(ask);
                answerMsg(ask.askMsg);
                return(false);
            }
            optPlan = null;
            return(false);
            //return base.Response();
        }
 public virtual bool ResponseAsk(TheAskWaitingUserAnswer ask)
 {
     return(true);
 }
Exemple #17
0
        public override bool Response(ref ShareLotteryPlanClass optPlan)
        {
            if (wxprocess.AllPlan != null)
            {
                var runningPlans = wxprocess.AllPlan.Where(a => {
                    if (
                        a.Value.sharePlanStatus != SharePlanStatus.Completed && a.Value.wxRootNo == roomId)
                    {
                        return(true);
                    }
                    return(false);
                });
                if (runningPlans.Count() > 0)
                {
                    answerMsg("非法请求!一个群只能有一个合买在运行,请结束上一个合买再新建新的合买!");
                    return(false);
                }
            }
            KeyText hasLottery        = getLottery();
            ShareLotteryPlanClass slp = new ShareLotteryPlanClass();

            if (hasLottery == null)//未找到彩种,先确认彩种
            {
                TheAskWaitingUserAnswer ask = new TheAskWaitingUserAnswer(this);
                this.lastAsk = ask;
                ask.LastRequestWaitResponse = this;
                string sendmsg = @"您是我们的新用户,请根据我提供的问题选择您需要合买的彩种:" +
                                 "{0}";

                ask.askData = ShareLotteryPlanClass.AllLottery;


                string fullmsg = string.Format(sendmsg, ask.AskText);
                ask.askMsg = fullmsg;
                wxprocess.InjectAsk(ask);
                this.answerMsg(fullmsg);
                return(true);
            }
            else
            {
                Regex           regTr = new Regex(string.Format("{0}(.*?)期", hasLottery.text));
                MatchCollection mcs   = regTr.Matches(pureMsg);
                if (mcs.Count > 0)
                {
                    slp.betExpectNo = mcs[0].Value.Trim().Replace("第", "").Replace(hasLottery.text, "").Replace("期", "");
                }
                slp.betLottery      = hasLottery.key;
                slp.wxRootNo        = roomId;
                slp.wxRootName      = roomName;
                slp.createTime      = DateTime.Now;
                slp.creator         = requestUser;
                slp.creatorNike     = requestNike;
                slp.sharePlanStatus = SharePlanStatus.Ready;
                this.answerMsg(slp.ToUserCreateModel());
                wxprocess.AllPlan.Add(slp.guid, slp);
                optPlan = slp;
            }


            return(true);
            //return base.Response();
        }
        public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
        {
            //wxprocess.CopyToHistoryAsks(ask);
            // wxprocess.CloseCurrAsk(ask);
            if (ask.AnswerResult.key == "0")//结束流程
            {
                answerMsg("欢迎下次使用!");
                return(false);
            }
            else
            {
                ShareLotteryPlanClass plan = null;
                if (ask.UserResponseAnswer.Count == 1) //确定上次的金额
                {
                    if (Buffs.Count != 1)
                    {
                        answerMsg("上次存储的金额信息丢失!请重新申请");
                        return(false);
                    }
                    string signatrue = "";
                    //if (signatrue.ToString().ToUpper().Equals(sha1result))
                    //{

                    //}
                    try
                    {
                        answerMsg("生成和获取二维码需要一定时间,请您耐心等候!");
                        string      url = string.Format("http://www.wolfinv.com/pk10/app/charge.asp?chargeAmt={0}&rnd={1}&wxId={2}&wxName={3}&provide={4}", ask.LastRequestWaitResponse.Buffs[0], new Random().Next(), wxmsg.FromMemberUserName, wxmsg.FromMemberNikeName, wxprocess.RobotNikeName);
                        WebClientTo wc  = new WebClientTo(3 * 60 * 1000);
                        wc.Encoding = System.Text.Encoding.UTF8;
                        string res = wc.DownloadString(url);

                        JavaScriptClass jsc = new JavaScriptClass();
                        ChargeResult    cr  = new ChargeResult();

                        cr = cr.GetFromJson <ChargeResult>(res);

                        if (cr == null)
                        {
                            answerMsg("服务器异常!" + url);
                            return(false);
                        }
                        if (!string.IsNullOrEmpty(cr.imgData) && cr.imgData.Trim() != "空")
                        {
                            answerMsg(string.Format(@"订单号:{0};订单金额:{1}元 ;
请在三分钟内在云闪付内完成支付!", cr.orderNum, cr.chargeAmt));
                            answerMsg(cr.imgData, null, null, true);
                            //string insql = "insert into userchargetable(
                            //chargeid,wxid,wxname,chargeamt,ordernum,imgurl,ChargeAccount) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')";

                            /*if (db != null)
                             * {
                             *  int cnt = db.ExecSql(new ConditionSql(string.Format(insql,
                             *      cr.reqId,
                             *      ask.LastRequestWaitResponse.roomName,
                             *      ask.LastRequestWaitResponse.requestNike,
                             *      cr.chargeAmt,
                             *      cr.orderNum,
                             *      cr.imgData,
                             *      cr.chargeAccount)));
                             * }*/
                            Task.Run(() => {
                                submitData(cr);
                            });
                        }
                        else
                        {
                            answerMsg(cr.msg);
                            return(false);
                        }

                        //answerMsg(cr.imgData);
                        return(false);
                    }
                    catch (Exception ce)
                    {
                        answerMsg(string.Format("{0}:{1}", ce.Message, ce.StackTrace));
                        //throw ce;
                        return(false);
                    }
                }
                else
                {
                    answerMsg("请重新提交金额!");
                    return(false);
                }

                return(false);
            }
            return(false);
        }
Exemple #19
0
 public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
 {
     return(false);
 }
        public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
        {
            string currmsg = ask.LastRequestWaitResponse.pureMsg;

            if (ask.AnswerResult.key == "0")
            {
                answerMsg("取消当前操作!", null, ask.userNike);
                return(false);
            }
            else
            {
                if (Buffs.Count > 0)
                {
                    updateVals = Buffs[0].ToString();
                }
                Regex regTr = null;
                switch (changeToStatus)
                {
                case SharePlanStatus.Paying:
                {
                    currPlan.subscribeShares = currPlan.subscribeList.Sum(a => a.subscribeShares);
                    break;
                }

                case SharePlanStatus.Opened:    //开奖
                {
                    regTr = new Regex(string.Format(@"\d+", currmsg));
                    MatchCollection mcs = regTr.Matches(currmsg);
                    if (mcs.Count > 1)
                    {
                        List <string> listres = new List <string>();
                        for (int i = 0; i < mcs.Count; i++)
                        {
                            listres.Add(mcs[i].Value);
                        }
                        int    profit   = int.Parse(listres.Last());
                        string opencode = string.Join(",", listres.Take(listres.Count - 1));
                        if (profit > 0)
                        {
                            currPlan.matched = true;
                        }
                        currPlan.openInfo    = opencode;
                        currPlan.profitAmout = profit;
                        decimal rs = (decimal)(profit * 1.0 / (currPlan.subscribeShares * 1.0));
                        currPlan.shareProfit = System.Math.Floor(10 * rs) / 10;
                    }
                    break;
                }
                }



                currPlan.sharePlanStatus = changeToStatus;
                string AddTxt = null;
                string m      = @"已将合买状态修改为{0}!
{1}";
                if (changeToStatus == SharePlanStatus.Completed && currstatus < SharePlanStatus.Opened)
                {
                    AddTxt = "所有已认购份额全部无效,如果您已付款,请找管理员联系!";
                }
                if (changeToStatus == SharePlanStatus.Opened)
                {
                    string mm = @"本次合买总共中奖{0}元,共计份{1},每份返奖{2:N1}元;
{3}";
                    string ml = "";
                    if (currPlan.matched)
                    {
                        ml = currPlan.ToGroupedProfitInfo();
                    }
                    AddTxt = string.Format(mm, currPlan.profitAmout, currPlan.subscribeShares.Value, currPlan.shareProfit, ml);
                }
                answerMsg(string.Format(m, newStatusName, AddTxt));
                return(true);
            }
        }