Exemplo n.º 1
0
        public ActionResult FudongUpdate(int?fuDong)
        {
            ReturnJson returnJson = new ReturnJson();

            try
            {
                var agentEntity = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);
                if (agentEntity != null)
                {
                    Wechat_AgentEntity entity = new Wechat_AgentEntity()
                    {
                        FuDong = fuDong,
                    };
                    agentBll.FuDongUpdate(agentEntity.Id, fuDong);

                    returnJson.msg  = "success";
                    returnJson.code = 200;
                    return(Json(returnJson));
                }
                else
                {
                    var root = new ReturnJson {
                        code = 401, msg = "fail"
                    };
                    return(Json(root));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public void OperatorAgent(Wechat_AgentEntity agentEntity)
        {
            OperatorAgent operators = new OperatorAgent();

            operators.Id            = agentEntity.Id;
            operators.Pid           = agentEntity.Pid;
            operators.Tid           = agentEntity.Tid;
            operators.OpenId        = agentEntity.OpenId;
            operators.nickname      = agentEntity.nickname;
            operators.Sex           = agentEntity.Sex;
            operators.HeadimgUrl    = agentEntity.HeadimgUrl;
            operators.Province      = agentEntity.Province;
            operators.City          = agentEntity.City;
            operators.Country       = agentEntity.Country;
            operators.LV            = agentEntity.LV;
            operators.profit        = agentEntity.profit;
            operators.Cashout       = agentEntity.Cashout;
            operators.EndDate       = agentEntity.EndDate;
            operators.banner        = agentEntity.banner;
            operators.realname      = agentEntity.realname;
            operators.contact       = agentEntity.contact;
            operators.alipay        = agentEntity.alipay;
            operators.CreateDate    = agentEntity.CreateDate;
            operators.IPAddress     = Net.Ip;
            operators.IPAddressName = IPLocation.GetLocation(Net.Ip);
            operators.LogTime       = DateTime.Now;
            operators.Token         = DESEncrypt.Encrypt(Guid.NewGuid().ToString());
            operators.FuDong        = agentEntity.FuDong;
            operators.OrganizeId    = agentEntity.OrganizeId;
            operators.Category      = agentEntity.Category;
            OperatorAgentProvider.Provider.AddCurrent(operators);
        }
Exemplo n.º 3
0
        public ActionResult withdraw(decimal?cashNum)
        {
            ReturnJson root = null;

            var agentEntity = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);

            if (string.IsNullOrEmpty(agentEntity.alipay))
            {
                //401,跳转到修改个人信息
                root = new ReturnJson {
                    code = 401, msg = "支付宝账号为空"
                };
            }
            else
            {
                if (cashNum >= 100 && cashNum < agentEntity.profit)
                {
                    var withdrawLogList = withBLL.GetList("{\"agent_id\":\"" + agentEntity.Id + "\",\"status\":\"" + 0 + "\"}");
                    if (withdrawLogList.Count() > 0)
                    {
                        //401,跳转到修改个人信息
                        root = new ReturnJson {
                            code = 400, msg = "已经存在未审核的提现申请记录"
                        };
                    }
                    //创建提现日志表
                    WithdrawLogEntity entity = new WithdrawLogEntity()
                    {
                        agent_id   = agentEntity.Id,
                        agent_name = agentEntity.nickname,
                        amount     = cashNum,
                        status     = 0
                    };
                    withBLL.SaveForm(null, entity);

                    Wechat_AgentEntity wechat_AgentEntity = new Wechat_AgentEntity()
                    {
                        profit  = agentEntity.profit - cashNum, //佣金-
                        Cashout = cashNum,                      //提现中+
                    };
                    agentBll.SaveForm(agentEntity.Id, wechat_AgentEntity);

                    root = new ReturnJson {
                        code = 200, msg = "success"
                    };
                }
                else
                {
                    root = new ReturnJson {
                        code = 400, msg = "提现金额不符"
                    };
                }
            }

            return(Json(root));
        }
Exemplo n.º 4
0
 /// <summary>
 /// 保存表单(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="entity">实体对象</param>
 /// <returns></returns>
 public void SaveForm(int?keyValue, Wechat_AgentEntity entity)
 {
     try
     {
         service.SaveForm(keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// 创建顶级
        /// </summary>
        /// <param name="keyValue"></param>
        /// <returns></returns>
        public ActionResult Create(string keyValue)
        {
            var user = UserBLL.GetEntity(keyValue);

            if (user != null)
            {
                var agentEntity = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);
                if (agentEntity != null)
                {
                    if (agentEntity.Pid != agentEntity.Id && agentEntity.Pid != agentEntity.Id)
                    {
                        agentEntity.Pid = agentEntity.Id; //设置上级id为访问id
                        agentEntity.Tid = agentEntity.Id; //获取上级中的顶级id
                        agentBll.SaveForm(agentEntity.Id, agentEntity);

                        user.WeOpenId     = CurrentWxUser.OpenId;
                        user.WeChat       = CurrentWxUser.NickName;
                        user.TopAgentMark = 1;//顶级
                        UserBLL.SaveForm(user.UserId, user);
                    }
                    else
                    {
                        return(Content("已经成为顶级,无需重复设置"));
                    }
                }
                else
                {
                    agentEntity = new Wechat_AgentEntity()
                    {
                        OpenId     = CurrentWxUser.OpenId,
                        nickname   = CurrentWxUser.NickName,
                        Sex        = CurrentWxUser.Users.Sex,
                        HeadimgUrl = CurrentWxUser.Users.HeadimgUrl,
                        Province   = CurrentWxUser.Users.Province,
                        City       = CurrentWxUser.Users.City,//微信城市
                        Country    = CurrentWxUser.Users.Country,
                        LV         = "普通代理"
                    };
                    agentBll.SaveForm(null, agentEntity);

                    user.WeOpenId     = CurrentWxUser.OpenId;
                    user.WeChat       = CurrentWxUser.NickName;
                    user.TopAgentMark = 1;//顶级
                    UserBLL.SaveForm(user.UserId, user);
                }
            }

            return(View());
        }
Exemplo n.º 6
0
        //
        // GET: /webapp/Agent/
        public ActionResult Index(int?id)
        {
            //1.2根据注册的微信id去用户表中匹配是否有此员工
            Wechat_AgentEntity agentEntity = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);//o7HEd1LjnupfP0BBBMz5f69MFYVE

            if (agentEntity == null)
            {
                int?tid = null;
                if (!string.IsNullOrEmpty(id.ToString()))
                {
                    var pidEntity = agentBll.GetEntity(id);//上级
                    if (pidEntity != null)
                    {
                        if (!string.IsNullOrEmpty(pidEntity.Tid.ToString()))
                        {
                            tid = pidEntity.Tid;
                        }
                    }
                }

                agentEntity = new Wechat_AgentEntity()
                {
                    OpenId     = CurrentWxUser.OpenId,
                    nickname   = CurrentWxUser.NickName,
                    Sex        = CurrentWxUser.Users.Sex,
                    HeadimgUrl = CurrentWxUser.Users.HeadimgUrl,
                    Province   = CurrentWxUser.Users.Province,
                    City       = CurrentWxUser.Users.City, //微信城市
                    Country    = CurrentWxUser.Users.Country,
                    Pid        = id,                       //设置上级id为访问id
                    Tid        = tid,                      //获取上级中的顶级id
                    LV         = "普通代理"
                };
                agentBll.SaveForm(null, agentEntity);
            }
            return(View(agentEntity));
        }
Exemplo n.º 7
0
        //微信支付回调地址
        public ActionResult Notify()
        {
            LogHelper.AddLog("支付回调地址");//记录日志
            ResponseHandler rspHandler = new ResponseHandler(null);

            rspHandler.SetKey(WeixinConfig.Key);
            LogHelper.AddLog(rspHandler.ParseXML());//记录日志


            //SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 SUCCESS
            string return_code = rspHandler.GetParameter("return_code");
            string return_msg  = rspHandler.GetParameter("return_msg");

            if (rspHandler.IsTenpaySign())
            {
                if (return_code == "SUCCESS")
                {
                    //订单号
                    string orderSn = rspHandler.GetParameter("out_trade_no");
                    if (orderSn.Contains("LX-"))
                    {
                        OrdersEntity order = ordersbll.GetEntityByOrderSn(orderSn);
                        if (order != null)
                        {
                            order.PayDate   = DateTime.Now;
                            order.PayStatus = (int)PayStatus.已支付;
                            order.Status    = (int)OrderStatus.未发货;
                            ordersbll.SaveForm(order.Id, order);
                        }
                        else
                        {
                            LogHelper.AddLog("订单号不存在:" + orderSn);
                        }

                        //同步下架
                        TelphoneLiangH5Entity tel = tlbll.GetEntity(order.TelphoneID);//根据靓号id获取靓号,修改售出状态
                        if (tel != null)
                        {
                            tel.SellMark   = 1;
                            tel.SellerName = order.Host;
                        }
                        tlbll.SaveForm(tel.TelphoneID, tel);
                        LogHelper.AddLog("同步下架:" + tel.Telphone);


                        //头条url回调
                        if (!string.IsNullOrEmpty(order.TouUrl))
                        {
                            TouTiaoApi(order.TouUrl);
                        }
                    }
                    else if (orderSn.Contains("JM-"))//加盟订单
                    {
                        var order = ordersJMbll.GetEntityByOrderSn(orderSn);
                        if (order != null)
                        {
                            LogHelper.AddLog("微信支付加盟订单FX-异步调用orderSn:" + orderSn);
                            //支付成功,修改加盟订单表
                            order.PayDate   = DateTime.Now;
                            order.PayStatus = (int)PayStatus.已支付;
                            ordersJMbll.SaveForm(order.Id, order);

                            //修改会员表级别
                            var agent = agentbll.GetEntityByOpenId(order.OpenId);//订单里面的OpenId,不是当前微信OpenId
                            if (agent != null)
                            {
                                agent.LV = order.LV;
                                agentbll.SaveForm(agent.Id, agent);

                                decimal direct   = 0;
                                decimal indirect = 0;

                                //上级不等于本身,才进行返佣,如果上级就是自己则为顶级
                                if (agent.Pid != agent.Id)
                                {
                                    Wechat_AgentEntity agentPid = agentbll.GetEntity(agent.Pid);//上级
                                    if (agentPid != null)
                                    {
                                        Wechat_AgentEntity agentPid2 = agentbll.GetEntity(agentPid.Pid);//上上级
                                        if (agentPid2 != null)
                                        {
                                            //如果父级不等于上上级,则对上上级进行返佣
                                            if (agent.Pid != agentPid2.Id)
                                            {
                                                //获取返佣规则金额
                                                DirectHelper.getJMDirect(order.LV, agentPid.LV, agentPid2.LV, out direct, out indirect);
                                                //上级返佣
                                                agentPid.profit += direct;
                                                agentbll.SaveForm(agentPid.Id, agentPid);

                                                //直接返佣日志
                                                ComissionLogEntity logEntity = new ComissionLogEntity()
                                                {
                                                    agent_id         = agentPid.Id,
                                                    agent_name       = agentPid.nickname,
                                                    indirect         = 0,
                                                    invited_agent_id = order.AgentId,
                                                    phonenum         = order.LV,
                                                    profit           = direct,
                                                    status           = 2,//已入账
                                                    orderno          = order.OrderSn
                                                };
                                                comissionLogBll.SaveForm(null, logEntity);
                                                LogHelper.AddLog("升级订单直接返佣:" + direct);

                                                //上上级返佣
                                                agentPid2.profit += indirect;
                                                agentbll.SaveForm(agentPid2.Id, agentPid2);

                                                //间接返佣日志
                                                ComissionLogEntity logEntity2 = new ComissionLogEntity()
                                                {
                                                    agent_id         = agentPid2.Id,
                                                    agent_name       = agentPid2.nickname,
                                                    indirect         = 1,
                                                    invited_agent_id = order.AgentId,
                                                    phonenum         = order.LV,
                                                    profit           = indirect,
                                                    status           = 2,//已入账
                                                    orderno          = order.OrderSn
                                                };
                                                comissionLogBll.SaveForm(null, logEntity2);
                                                LogHelper.AddLog("升级订单间接返佣:" + indirect);
                                            }
                                            else
                                            {
                                                //获取返佣规则金额
                                                DirectHelper.getJMDirect(order.LV, agentPid.LV, null, out direct, out indirect);
                                                //上级返佣
                                                agentPid.profit += direct;
                                                agentbll.SaveForm(agentPid.Id, agentPid);

                                                //直接返佣日志
                                                ComissionLogEntity logEntity = new ComissionLogEntity()
                                                {
                                                    agent_id         = agentPid.Id,
                                                    agent_name       = agentPid.nickname,
                                                    indirect         = 0,
                                                    invited_agent_id = order.AgentId,
                                                    phonenum         = order.LV,
                                                    profit           = direct,
                                                    status           = 2,//已入账
                                                    orderno          = order.OrderSn
                                                };
                                                comissionLogBll.SaveForm(null, logEntity);
                                                LogHelper.AddLog("升级订单上级和顶级同一人只直接返佣:" + direct);
                                            }
                                        }
                                        else
                                        {
                                            //获取返佣规则金额
                                            DirectHelper.getJMDirect(order.LV, agentPid.LV, null, out direct, out indirect);
                                            //上级返佣
                                            agentPid.profit += direct;
                                            agentbll.SaveForm(agentPid.Id, agentPid);

                                            //直接返佣日志
                                            ComissionLogEntity logEntity = new ComissionLogEntity()
                                            {
                                                agent_id         = agentPid.Id,
                                                agent_name       = agentPid.nickname,
                                                indirect         = 0,
                                                invited_agent_id = order.AgentId,
                                                phonenum         = order.LV,
                                                profit           = direct,
                                                status           = 2,//已入账
                                                orderno          = order.OrderSn
                                            };
                                            comissionLogBll.SaveForm(null, logEntity);
                                            LogHelper.AddLog("升级订单上上级为空只返上级直接返佣:" + direct);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            LogHelper.AddLog("订单号不存在:" + orderSn);
                        }
                    }
                    else if (orderSn.Contains("FX-"))//分销销售
                    {
                        OrdersEntity order = ordersbll.GetEntityByOrderSn(orderSn);
                        if (order != null)
                        {
                            LogHelper.AddLog("微信支付分销订单FX-异步调用orderSn:" + orderSn);
                            //支付成功,修改加盟订单表
                            order.PayDate   = DateTime.Now;
                            order.PayStatus = (int)PayStatus.已支付;
                            ordersbll.SaveForm(order.Id, order);

                            //同步下架
                            TelphoneLiangH5Entity tel = tlbll.GetEntity(order.TelphoneID);//根据靓号id获取靓号,修改售出状态
                            if (tel != null)
                            {
                                tel.SellMark   = 1;
                                tel.SellerName = order.Host;
                            }
                            tlbll.SaveForm(tel.TelphoneID, tel);
                            LogHelper.AddLog("同步下架:" + tel.Telphone);

                            var logList = comissionLogBll.GetList("{\"orderno\":\"" + orderSn + "\"}");
                            if (logList.Count() > 0)
                            {
                                foreach (var item in logList)
                                {
                                    LogHelper.AddLog(item.agent_id + "支付状态修改1已支付,佣金:" + item.profit);
                                    //返佣?不能直接返佣,需要等到开卡之后再返佣
                                    item.status = 1;//已支付,不入账
                                    comissionLogBll.SaveForm(item.id, item);
                                }
                            }
                        }
                        else
                        {
                            LogHelper.AddLog("订单号不存在:" + orderSn);
                        }
                    }
                }
            }

            string xml = string.Format(@"<xml>
<return_code><![CDATA[{0}]]></return_code>
<return_msg><![CDATA[{1}]]></return_msg>
</xml>", return_code, return_msg);

            LogHelper.AddLog("正常返回回调xml信息:" + xml);
            return(Content(xml, "text/xml"));
        }
Exemplo n.º 8
0
        /// <summary>
        /// 服务器异步通知页面
        /// 调用接口,收到异步通知后,返回小写的success,告知支付宝已收到通知:每当交易状态改变时,服务器异步通知页面就会收到支付宝发来的处理结果通知,
        /// 程序执行完后必须打印输出success。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。
        /// 一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)。  参考示例代码: JAVA版本:out.println("success"); PHP版本:echo "success";
        /// .NET版本:Response.Write("success"); 注:返回success是为了告知支付宝,商户已收到异步,避免重复发送异步通知,与该笔交易的交易状态无关。
        /// </summary>
        public void AliPayNotifyUrl()
        {
            /* 实际验证过程建议商户添加以下校验。
             * 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号,
             * 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额),
             * 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email)
             * 4、验证app_id是否为该商户本身。
             */
            Dictionary <string, string> sArray = GetRequestPost();
            string sArraysStr = JsonConvert.SerializeObject(sArray);

            LogHelper.AddLog("支付宝异步调用sArraysStr:" + sArraysStr);
            if (sArray.Count != 0)
            {
                bool   flag    = AlipaySignature.RSACheckV1(sArray, WeixinConfig.payKey, WeixinConfig.charset, WeixinConfig.signType, false);//支付宝公钥
                string orderSn = sArray["out_trade_no"];
                if (flag)
                {
                    //注意:
                    //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
                    string trade_status = Request.Form["trade_status"];
                    if (trade_status == "TRADE_SUCCESS")
                    {
                        //交易状态
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //请务必判断请求时的total_amount与通知时获取的total_fee为一致的
                        //如果有做过处理,不执行商户的业务程序
                        //订单号
                        if (orderSn.Contains("LX-"))
                        {
                            OrdersEntity order = ordersbll.GetEntityByOrderSn(orderSn);
                            if (order != null)
                            {
                                string total_amount = sArray["total_amount"];
                                if (Convert.ToDecimal(total_amount) == order.Price)
                                {
                                    LogHelper.AddLog("异步调用orderSn:" + orderSn + "total_amount:" + total_amount + "金额一致");
                                    order.PayDate   = DateTime.Now;
                                    order.PayStatus = (int)PayStatus.已支付;
                                    order.Status    = (int)OrderStatus.未发货;
                                    ordersbll.SaveForm(order.Id, order);

                                    //同步下架
                                    TelphoneLiangH5Entity tel = tlbll.GetEntity(order.TelphoneID);//根据靓号id获取靓号,修改售出状态
                                    if (tel != null)
                                    {
                                        tel.SellMark   = 1;
                                        tel.SellerName = order.Host;
                                    }
                                    tlbll.SaveForm(tel.TelphoneID, tel);
                                    LogHelper.AddLog("同步下架:" + tel.Telphone);

                                    //头条url回调
                                    if (!string.IsNullOrEmpty(order.TouUrl))
                                    {
                                        TouTiaoApi(order.TouUrl);
                                    }
                                }
                            }
                        }
                        else if (orderSn.Contains("JM-"))
                        {
                            LogHelper.AddLog("支付宝加盟订单JM-异步调用orderSn:" + orderSn);
                            var order = ordersJMbll.GetEntityByOrderSn(orderSn);
                            if (order != null)
                            {
                                //支付成功,修改加盟订单表
                                order.PayDate   = DateTime.Now;
                                order.PayStatus = (int)PayStatus.已支付;
                                ordersJMbll.SaveForm(order.Id, order);

                                //修改会员表级别
                                var agent = agentbll.GetEntityByOpenId(order.OpenId);//订单里面的OpenId,不是当前微信OpenId
                                if (agent != null)
                                {
                                    agent.LV = order.LV;
                                    agentbll.SaveForm(agent.Id, agent);

                                    decimal direct   = 0;
                                    decimal indirect = 0;

                                    //上级不等于本身,才进行返佣,如果上级就是自己则为顶级
                                    if (agent.Pid != agent.Id)
                                    {
                                        Wechat_AgentEntity agentPid = agentbll.GetEntity(agent.Pid);//上级
                                        if (agentPid != null)
                                        {
                                            Wechat_AgentEntity agentPid2 = agentbll.GetEntity(agentPid.Pid);//上上级
                                            if (agentPid2 != null)
                                            {
                                                //如果父级不等于上上级,则对上上级进行返佣
                                                if (agent.Pid != agentPid2.Id)
                                                {
                                                    //获取返佣规则金额
                                                    DirectHelper.getJMDirect(order.LV, agentPid.LV, agentPid2.LV, out direct, out indirect);
                                                    //上级返佣
                                                    agentPid.profit += direct;
                                                    agentbll.SaveForm(agentPid.Id, agentPid);

                                                    //直接返佣日志
                                                    ComissionLogEntity logEntity = new ComissionLogEntity()
                                                    {
                                                        agent_id         = agentPid.Id,
                                                        agent_name       = agentPid.nickname,
                                                        indirect         = 0,
                                                        invited_agent_id = order.AgentId,
                                                        phonenum         = order.LV,
                                                        profit           = direct,
                                                        status           = 2,//已入账
                                                        orderno          = order.OrderSn
                                                    };
                                                    comissionLogBll.SaveForm(null, logEntity);
                                                    LogHelper.AddLog("支付宝加盟直接返佣:" + direct);

                                                    //上上级返佣
                                                    agentPid2.profit += indirect;
                                                    agentbll.SaveForm(agentPid2.Id, agentPid2);

                                                    //间接返佣日志
                                                    ComissionLogEntity logEntity2 = new ComissionLogEntity()
                                                    {
                                                        agent_id         = agentPid2.Id,
                                                        agent_name       = agentPid2.nickname,
                                                        indirect         = 1,
                                                        invited_agent_id = order.AgentId,
                                                        phonenum         = order.LV,
                                                        profit           = indirect,
                                                        status           = 2,//已入账
                                                        orderno          = order.OrderSn
                                                    };
                                                    comissionLogBll.SaveForm(null, logEntity2);
                                                    LogHelper.AddLog("支付宝加盟直接间接:" + indirect);
                                                }
                                                else
                                                {
                                                    //获取返佣规则金额
                                                    DirectHelper.getJMDirect(order.LV, agentPid.LV, null, out direct, out indirect);
                                                    //上级返佣
                                                    agentPid.profit += direct;
                                                    agentbll.SaveForm(agentPid.Id, agentPid);

                                                    //直接返佣日志
                                                    ComissionLogEntity logEntity = new ComissionLogEntity()
                                                    {
                                                        agent_id         = agentPid.Id,
                                                        agent_name       = agentPid.nickname,
                                                        indirect         = 0,
                                                        invited_agent_id = order.AgentId,
                                                        phonenum         = order.LV,
                                                        profit           = direct,
                                                        status           = 2,//已入账
                                                        orderno          = order.OrderSn
                                                    };
                                                    comissionLogBll.SaveForm(null, logEntity);
                                                    LogHelper.AddLog("支付宝加盟上级和顶级同一人只直接返佣:" + direct);
                                                }
                                            }
                                            else
                                            {
                                                //获取返佣规则金额
                                                DirectHelper.getJMDirect(order.LV, agentPid.LV, null, out direct, out indirect);
                                                //上级返佣
                                                agentPid.profit += direct;
                                                agentbll.SaveForm(agentPid.Id, agentPid);

                                                //直接返佣日志
                                                ComissionLogEntity logEntity = new ComissionLogEntity()
                                                {
                                                    agent_id         = agentPid.Id,
                                                    agent_name       = agentPid.nickname,
                                                    indirect         = 0,
                                                    invited_agent_id = order.AgentId,
                                                    phonenum         = order.LV,
                                                    profit           = direct,
                                                    status           = 2,//已入账
                                                    orderno          = order.OrderSn
                                                };
                                                comissionLogBll.SaveForm(null, logEntity);
                                                LogHelper.AddLog("支付宝加盟上上级为空只返上级直接返佣:" + direct);
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                LogHelper.AddLog("订单号不存在:" + orderSn);
                            }
                        }
                        else if (orderSn.Contains("FX-"))
                        {
                            OrdersEntity order = ordersbll.GetEntityByOrderSn(orderSn);
                            if (order != null)
                            {
                                string total_amount = sArray["total_amount"];
                                if (Convert.ToDecimal(total_amount) == order.Price)
                                {
                                    LogHelper.AddLog("支付宝分销订单FX-异步调用orderSn:" + orderSn + "total_amount:" + total_amount + "金额一致");
                                    order.PayDate   = DateTime.Now;
                                    order.PayStatus = (int)PayStatus.已支付;
                                    order.Status    = (int)OrderStatus.未发货;
                                    ordersbll.SaveForm(order.Id, order);

                                    //同步下架
                                    TelphoneLiangH5Entity tel = tlbll.GetEntity(order.TelphoneID);//根据靓号id获取靓号,修改售出状态
                                    if (tel != null)
                                    {
                                        tel.SellMark   = 1;
                                        tel.SellerName = order.Host;
                                    }
                                    tlbll.SaveForm(tel.TelphoneID, tel);
                                    LogHelper.AddLog("同步下架:" + tel.Telphone);


                                    var logList = comissionLogBll.GetList("{\"orderno\":\"" + orderSn + "\"}");
                                    if (logList.Count() > 0)
                                    {
                                        foreach (var item in logList)
                                        {
                                            //返佣?不能直接返佣,需要等到开卡之后再返佣
                                            item.status = 1;//已支付,不入账
                                            comissionLogBll.SaveForm(item.id, item);
                                        }
                                    }
                                }
                            }
                        }
                    }

                    LogHelper.AddLog("异步调用success,订单号:" + orderSn);
                    Response.Write("success");
                }
                else
                {
                    LogHelper.AddLog("异步调用fail,订单号:" + orderSn);
                    Response.Write("fail");
                }
            }
        }
Exemplo n.º 9
0
        public ActionResult Index(int?id)
        {
            ViewBag.banner        = "/static/default/images/index/banner.png";
            ViewBag.OpenId        = 0;
            ViewBag.is_agent      = 0;
            ViewBag.Style         = "none";
            ViewBag.StyleMinPrice = "none";
            //根据当前id,查询是哪个代理,把写入当前用户信息
            Wechat_AgentEntity agentEntity = agentBll.GetEntity(id);//"oQU_IwcWO42_aBNVXcVzungZA0uw"

            if (agentEntity != null)
            {
                if (OperatorAgentProvider.Provider.IsOverdue())
                {
                    OperatorAgent(agentEntity);
                    LogHelper.AddLog("缓存过期,重新缓存:" + OperatorAgentProvider.Provider.Current().Id);
                }
                else
                {
                    //如果连接参数id不等于缓存登陆者id,则清空缓存,重新缓存
                    if (id != OperatorAgentProvider.Provider.Current().Id)
                    {
                        LogHelper.AddLog("缓存不一致,重新更新缓存!从" + OperatorAgentProvider.Provider.Current().Id + "到" + id);
                        OperatorAgentProvider.Provider.EmptyCurrent();

                        OperatorAgent(agentEntity);
                        LogHelper.AddLog("最新缓存:" + OperatorAgentProvider.Provider.Current().Id);
                    }
                }

                if (!string.IsNullOrEmpty(agentEntity.banner))
                {
                    ViewBag.banner = agentEntity.banner;
                }

                //如果是微信浏览器
                if (Request.UserAgent.ToLower().Contains("micromessenger"))
                {
                    //请求地址;
                    string RequestUri = Request.RawUrl;//AbsoluteUri//FilePath//!string.IsNullOrEmpty(request.Params["urlstr"]) ? request.Params["urlstr"] :
                    if (RequestUri.IndexOf("&amp;") > 0)
                    {
                        //WeChatManage/Liang/Index?organizeId=4da3b884-ac5b-46fb-af10-150beb9e6c69&amp;amp;amp;amp;amp;from=timeline&amp;amp;amp;amp;from=timeline&amp;amp;amp;from=timeline&amp;amp;from=timeline&amp;from=timeline
                        //防止提示state参数过长问题,连接转发多次之后会带着一些转发到哪里的冗余信息
                        RequestUri = RequestUri.Substring(0, RequestUri.IndexOf("&amp;"));//WeChatManage/Liang/Index?organizeId=4da3b884-ac5b-46fb-af10-150beb9e6c69
                    }
                    //判断是否微信通过认证
                    if (CurrentWxUser.Users == null)
                    {
                        string url = string.Format(WeixinConfig.GetCodeUrl, HttpUtility.UrlEncode(RequestUri));
                        return(Redirect(url));
                    }

                    Wechat_AgentEntity agentEntityWX = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);//"oQU_IwcWO42_aBNVXcVzungZA0uw"
                    //只有当前登录者是代理的时候,才显示低价
                    if (agentEntityWX != null)
                    {
                        //只有二级三级才返佣金
                        if (agentEntityWX.Category <= 3)
                        {
                            ViewBag.OpenId   = agentEntity.OpenId;
                            ViewBag.is_agent = 1;
                            ViewBag.Style    = "display";
                        }
                        //只有二级三级才返佣金
                        if (agentEntityWX.Category <= 2)
                        {
                            ViewBag.OpenId        = agentEntity.OpenId;
                            ViewBag.is_agent      = 1;
                            ViewBag.Style         = "display";
                            ViewBag.StyleMinPrice = "display";
                        }
                    }
                }
                //浏览量自增·1
                agentBll.SeeCountAdd(id);
            }

            return(View());
        }
Exemplo n.º 10
0
        /// <summary>
        /// 保存个人资料
        /// </summary>
        /// <returns></returns>
        public ActionResult saveUserInfo(string realname, string contact, string alipay)
        {
            //状态实体vo类实例化
            ReturnJson returnJson = new ReturnJson();
            //声明空字符串图片路径变量准备接收传输过来的值
            string banner = "";

            //try...catch捕捉程序异常错误
            try
            {
                var agentEntity = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);
                if (agentEntity != null)
                {
                    if (Request.Files.Count > 0)
                    {
                        string             extension = string.Empty;
                        HttpPostedFileBase file      = Request.Files[0] as HttpPostedFileBase;
                        if (file.FileName.Length > 0)
                        {
                            if (file.FileName.IndexOf('.') > -1)
                            {
                                //原来也可以这用获取扩展名
                                //extension = file.FileName.Remove(0, file.FileName.LastIndexOf('.'));
                                string filePath = "/Resource/DocumentFile/Agent/";
                                //创建路径
                                CreateFilePath(filePath);
                                if (file.FileName.ToString() != "")
                                {
                                    string absoluteSavePath = System.Web.HttpContext.Current.Server.MapPath("~" + filePath);
                                    var    pathLast         = Path.Combine(absoluteSavePath, file.FileName);
                                    file.SaveAs(pathLast);
                                    banner = filePath + file.FileName;
                                }
                            }
                        }
                    }
                    Wechat_AgentEntity entity = new Wechat_AgentEntity()
                    {
                        realname = realname,
                        contact  = contact,
                        alipay   = alipay,
                        banner   = banner
                    };
                    agentBll.SaveForm(agentEntity.Id, entity);

                    returnJson.msg  = "success";
                    returnJson.code = 200;
                    return(Json(returnJson));
                }
                else
                {
                    var root = new ReturnJson {
                        code = 401, msg = "fail"
                    };
                    return(Json(root));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 11
0
 public ActionResult SaveForm(int?keyValue, Wechat_AgentEntity entity)
 {
     wechat_agentbll.SaveForm(keyValue, entity);
     return(Success("操作成功。"));
 }
Exemplo n.º 12
0
        /// <summary>
        /// 新增下级代理
        /// </summary>
        /// <param name="organizeEntity"></param>
        public void SaveNewAgent(OrganizeEntity organizeEntity)
        {
            IRepository db = new RepositoryFactory().BaseRepository().BeginTrans();

            try
            {
                #region 新增机构
                //父机构
                if (organizeEntity.ParentId == null)
                {
                    organizeEntity.ParentId = "0";
                    //throw new Exception("上级机构不能为空!");
                }

                if (organizeEntity.ParentId != "0")
                {
                    var parentEntity = this.BaseRepository().FindEntity(organizeEntity.ParentId);
                    organizeEntity.Category = parentEntity.Category + 1;

                    //顶级机构
                    IEnumerable <OrganizeEntity> topList = GetParentIdByOrgId(organizeEntity.ParentId);
                    if (topList.Count() > 0 && string.IsNullOrEmpty(organizeEntity.Img1))
                    {
                        OrganizeEntity topEntity = topList.First();
                        organizeEntity.TopOrganizeId = topEntity.OrganizeId;//顶级机构
                    }
                }
                else
                {
                    organizeEntity.Category = 0;
                }
                organizeEntity.Create();
                #endregion

                #region 新增默认管理部门
                DepartmentEntity department = new DepartmentEntity();
                department.OrganizeId = organizeEntity.OrganizeId;
                department.ParentId   = "0";
                department.EnCode     = organizeEntity.OuterPhone;//账号
                department.FullName   = organizeEntity.FullName;
                department.Create();
                db.Insert(department);
                #endregion

                #region 新增默认靓号角色
                RoleEntity role = new RoleEntity();
                role.OrganizeId = organizeEntity.OrganizeId;
                role.Category   = 1;                         //分类1 - 角色2 - 岗位3 - 职位4 - 工作组
                role.EnCode     = organizeEntity.OuterPhone; //账号
                role.FullName   = organizeEntity.FullName;
                role.Create();
                db.Insert(role);
                #endregion

                #region 授权功能
                var AuthorizeList = db.FindList <AuthorizeEntity>(t => t.ObjectId == "6581e298-d4b4-4347-96da-030d82cd247b");
                foreach (AuthorizeEntity item in AuthorizeList)
                {
                    AuthorizeEntity authorizeEntity = new AuthorizeEntity();
                    authorizeEntity.Create();
                    authorizeEntity.Category = 2;             //1 - 部门2 - 角色3 - 岗位4 - 职位5 - 工作组
                    authorizeEntity.ObjectId = role.RoleId;   //角色id,角色限定了机构和部门
                    authorizeEntity.ItemType = item.ItemType; //项目类型: 1 - 菜单2 - 按钮3 - 视图4表单
                    authorizeEntity.ItemId   = item.ItemId;   //项目主键
                    authorizeEntity.SortCode = item.SortCode;
                    db.Insert(authorizeEntity);
                }
                #endregion

                #region 数据权限 就一个
                AuthorizeDataEntity authorizeDataEntity = new AuthorizeDataEntity();
                authorizeDataEntity.Create();
                authorizeDataEntity.AuthorizeType = 4;           //授权类型: 1 - 仅限本人2 - 仅限本人及下属3 - 所在部门4 - 所在公司5 - 按明细设置
                authorizeDataEntity.Category      = 2;           //对象分类: 1 - 部门2 - 角色3 - 岗位4 - 职位5 - 工作组
                authorizeDataEntity.ObjectId      = role.RoleId; //角色id,角色限定了机构和部门
                authorizeDataEntity.IsRead        = 0;
                authorizeDataEntity.SortCode      = 1;
                db.Insert(authorizeDataEntity);
                #endregion

                #region 新增默认用户
                UserEntity userEntity = new UserEntity();
                userEntity.Create();
                role.EnCode             = organizeEntity.OuterPhone; //账号
                userEntity.Account      = organizeEntity.OuterPhone; //登录名为机构名拼音首字母organizeEntity.EnCode
                userEntity.RealName     = organizeEntity.Manager;    //organizeEntity.FullName
                userEntity.WeChat       = organizeEntity.ShortName;  //微信昵称
                userEntity.OrganizeId   = organizeEntity.OrganizeId;
                userEntity.DepartmentId = department.DepartmentId;
                userEntity.RoleId       = role.RoleId;
                userEntity.Gender       = 1;
                userEntity.Secretkey    = Md5Helper.MD5(CommonHelper.CreateNo(), 16).ToLower();
                userEntity.Password     = Md5Helper.MD5(DESEncrypt.Encrypt(Md5Helper.MD5("0000", 32).ToLower(), userEntity.Secretkey).ToLower(), 32).ToLower();
                db.Insert(userEntity);
                #endregion

                #region 新增默认用户关系
                UserRelationEntity userRelationEntity = new UserRelationEntity();
                userRelationEntity.Create();
                userRelationEntity.Category = 2;//登录名为机构名拼音首字母
                userRelationEntity.UserId   = userEntity.UserId;
                userRelationEntity.ObjectId = userEntity.RoleId;
                db.Insert(userRelationEntity);
                #endregion

                #region 新增代理表
                var agentEntity = agentService.GetEntityByOpenId(organizeEntity.ManagerId);
                if (agentEntity == null)
                {
                    var weChat_Users = db.FindEntity <WeChat_UsersEntity>(t => t.OpenId == organizeEntity.ManagerId);
                    if (weChat_Users != null)
                    {
                        agentEntity = new Wechat_AgentEntity()
                        {
                            OpenId     = weChat_Users.OpenId,
                            nickname   = weChat_Users.NickName,
                            Sex        = weChat_Users.Sex,
                            HeadimgUrl = weChat_Users.HeadimgUrl,
                            Province   = weChat_Users.Province,
                            City       = weChat_Users.City,
                            Country    = weChat_Users.Country,
                            LV         = "普通代理",
                            Category   = 0,
                            OrganizeId = organizeEntity.OrganizeId, //绑定机构id
                        };
                        agentEntity.Create();                       //create得不到id,自增
                        agentService.SaveForm(null, agentEntity);   //提交数据库之后才能拿到id,复制给机构表中的agentid
                        //更新id,0级机构上级和顶级都是本机构
                        agentEntity.Pid      = agentEntity.Id;
                        agentEntity.Tid      = agentEntity.Id;
                        agentEntity.Category = 0;//改为0级代理
                        agentService.SaveForm(agentEntity.Id, agentEntity);
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(agentEntity.OrganizeId))
                    {
                        agentEntity.OrganizeId = organizeEntity.OrganizeId;//如果不存在代理机构id,
                        //更新id,0级机构上级和顶级都是本机构
                        agentEntity.Pid      = agentEntity.Id;
                        agentEntity.Tid      = agentEntity.Id;
                        agentEntity.Category = 0;//改为0级代理
                        db.Update(agentEntity);
                    }
                }
                organizeEntity.AgentId = agentEntity.Id;//绑定代理id
                #endregion

                db.Insert(organizeEntity);
                db.Commit();
            }
            catch (Exception)
            {
                db.Rollback();
                throw;
            }
        }
Exemplo n.º 13
0
        public ActionResult Index(int?id)
        {
            //1.2根据注册的微信id去用户表中匹配是否有此员工
            Wechat_AgentEntity agentEntity = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);//"oQU_IwcWO42_aBNVXcVzungZA0uw"

            if (agentEntity == null)
            {
                int?tid       = null;
                var pidEntity = agentBll.GetEntity(id);//上级
                if (pidEntity != null)
                {
                    if (!string.IsNullOrEmpty(pidEntity.Tid.ToString()))
                    {
                        tid = pidEntity.Tid;
                    }
                    else
                    {
                        tid = id;
                    }
                }
                else
                {
                    tid = id;
                }
                Wechat_AgentEntity agentEntityNew = new Wechat_AgentEntity()
                {
                    OpenId     = CurrentWxUser.OpenId,
                    nickname   = CurrentWxUser.NickName,
                    Sex        = CurrentWxUser.Users.Sex,
                    HeadimgUrl = CurrentWxUser.Users.HeadimgUrl,
                    Province   = CurrentWxUser.Users.Province,
                    City       = CurrentWxUser.Users.City, //微信城市
                    Country    = CurrentWxUser.Users.Country,
                    Pid        = id,                       //设置上级id为访问id
                    Tid        = tid,                      //获取上级中的顶级id
                    LV         = "普通代理"
                };
                agentBll.SaveForm(null, agentEntityNew);

                //如果父级和顶级为null,坚决赋值,更新null为当前id,或者当前机构就是顶级员工
                Wechat_AgentEntity agentEntity2 = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);
                if (agentEntity2 != null)
                {
                    if (string.IsNullOrEmpty(agentEntity2.Pid.ToString()))
                    {
                        agentEntity2.Pid = agentEntity2.Id;
                        agentEntity2.Tid = agentEntity2.Id;
                    }
                    else if (string.IsNullOrEmpty(agentEntity2.Tid.ToString()))
                    {
                        agentEntity2.Tid = agentEntity2.Pid;
                    }
                }
                agentBll.SaveForm(agentEntity2.Id, agentEntity2);
            }

            OperatorAgent operators = new OperatorAgent();

            operators.Id            = agentEntity.Id;
            operators.Pid           = agentEntity.Pid;
            operators.OpenId        = agentEntity.OpenId;
            operators.nickname      = agentEntity.nickname;
            operators.Sex           = agentEntity.Sex;
            operators.HeadimgUrl    = agentEntity.HeadimgUrl;
            operators.Province      = agentEntity.Province;
            operators.City          = agentEntity.City;
            operators.Country       = agentEntity.Country;
            operators.LV            = agentEntity.LV;
            operators.profit        = agentEntity.profit;
            operators.Cashout       = agentEntity.Cashout;
            operators.EndDate       = agentEntity.EndDate;
            operators.banner        = agentEntity.banner;
            operators.realname      = agentEntity.realname;
            operators.contact       = agentEntity.contact;
            operators.alipay        = agentEntity.alipay;
            operators.CreateDate    = agentEntity.CreateDate;
            operators.IPAddress     = Net.Ip;
            operators.IPAddressName = IPLocation.GetLocation(Net.Ip);
            operators.LogTime       = DateTime.Now;
            operators.Token         = DESEncrypt.Encrypt(Guid.NewGuid().ToString());
            OperatorAgentProvider.Provider.AddCurrent(operators);

            return(RedirectToAction("Index", "Agent", new { id = id }));
        }