Пример #1
0
        public void OrderApplyAdd(HttpRequest Request, HttpResponse Response, HttpContext context)
        {
            string ValidCodeRequest  = UtilityHelper.BWJSCommonHelper.SafeString(Request["ValidCode"], "");
            string ValidCodeSesstion = context.Session["ValidCode"].ToString();

            if (!ValidCodeRequest.Equals(ValidCodeSesstion))
            {
                Response.Write("{\"ValidCodeError\":\"Error\"}");
            }
            else
            {
                #region 获取参数 begin
                string TransNo   = UtilityHelper.CommonHelper.OrderNoOne(); // Guid.NewGuid().ToString("N");//这里直接赋值
                string CaseCode  = UtilityHelper.BWJSCommonHelper.SafeString(Request["CaseCode"], "");
                int    productId = DNTRequest.GetInt("productId", 0);

                int Type = UtilityHelper.BWJSCommonHelper.SafeInt(Request["Type"], 0);//当Type为0时默认给自己投保 1为他人投保

                #region 承包申请表 OrderApply
                int userId    = UtilityHelper.BWJSCommonHelper.SafeInt(Request["userId"], 0);
                int machineID = UtilityHelper.BWJSCommonHelper.SafeInt(Request["MachineID"], 0);
                #endregion

                #region 投保人信息参数 ApplicantInfo
                string cName      = UtilityHelper.BWJSCommonHelper.SafeString(Request["CName"], "");
                string eName      = UtilityHelper.BWJSCommonHelper.SafeString(Request["EName"], "");
                int    cardType   = UtilityHelper.BWJSCommonHelper.SafeInt(Request["CardType"], 0);
                string cardCode   = UtilityHelper.BWJSCommonHelper.SafeString(Request["CardCode"], "");
                int    sex        = UtilityHelper.BWJSCommonHelper.SafeInt(Request["Sex"], 0);
                string birthDay   = UtilityHelper.BWJSCommonHelper.SafeString(Request["BirthDay"], "");
                string mobile     = UtilityHelper.BWJSCommonHelper.SafeString(Request["Mobile"], "");
                string email      = UtilityHelper.BWJSCommonHelper.SafeString(Request["Email"], "");
                string cardPeriod = UtilityHelper.BWJSCommonHelper.SafeString(Request["CardPeriod"], "");
                string job        = UtilityHelper.BWJSCommonHelper.SafeString(Request["Job"], "");
                #endregion
                #region 订单信息参数 ApplicationData
                string applicationDate = UtilityHelper.BWJSCommonHelper.SafeString(Request["ApplicationDate"], "");
                string startDate       = UtilityHelper.BWJSCommonHelper.SafeString(Request["StartDate"], "");
                string endDate         = UtilityHelper.BWJSCommonHelper.SafeString(Request["EndDate"], "");
                #endregion
                #region 被投保人信息参数 InsurantInfo
                string  bcName      = UtilityHelper.BWJSCommonHelper.SafeString(Request["BCName"], "");
                string  beName      = UtilityHelper.BWJSCommonHelper.SafeString(Request["BEName"], "");
                int     bsex        = UtilityHelper.BWJSCommonHelper.SafeInt(Request["BSex"], 0);
                int     bcardType   = UtilityHelper.BWJSCommonHelper.SafeInt(Request["BCardType"], 0);
                string  bcardCode   = UtilityHelper.BWJSCommonHelper.SafeString(Request["BCardCode"], "");
                string  bbirthDay   = UtilityHelper.BWJSCommonHelper.SafeString(Request["BBirthDay"], "");
                int     relationID  = UtilityHelper.BWJSCommonHelper.SafeInt(Request["RelationID"], 0);       //购买关系必填
                int     count       = UtilityHelper.BWJSCommonHelper.SafeInt(Request["Count"], 0);            //购买份数必填
                decimal singlePrice = UtilityHelper.BWJSCommonHelper.SafeDecimal(Request["SinglePrice"], 0m); //购买单价必填
                decimal TotalPrice  = UtilityHelper.BWJSCommonHelper.SafeDecimal(Request["TotalPrice"], 0m);  //购买总价
                string  bcardPeriod = UtilityHelper.BWJSCommonHelper.SafeString(Request["BCardPeriod"], "");
                string  bmobile     = UtilityHelper.BWJSCommonHelper.SafeString(Request["BMobile"], "");
                string  bemail      = UtilityHelper.BWJSCommonHelper.SafeString(Request["BEmail"], "");
                string  bjob        = UtilityHelper.BWJSCommonHelper.SafeString(Request["BJob"], "");
                #endregion
                #region 其它信息 OtherInfo
                string   provCityId         = UtilityHelper.BWJSCommonHelper.SafeString(Request["ProvCityId"], "");
                DateTime qTCardPeriod       = UtilityHelper.BWJSCommonHelper.SafeDateTime(Request["QTCardPeriod"], DateTime.Parse("1900-1-1"));//其它 证件有效期,格式:yyyy-MM-dd(疾病险)
                int      notifyAnswerId     = UtilityHelper.BWJSCommonHelper.SafeInt(Request["NotifyAnswerId"], 0);
                string   priceArgsId        = UtilityHelper.BWJSCommonHelper.SafeString(Request["PriceArgsId"], "");
                int      relatedPersonHouse = UtilityHelper.BWJSCommonHelper.SafeInt(Request["RelatedPersonHouse"], 0);
                string   visaCity           = UtilityHelper.BWJSCommonHelper.SafeString(Request["VisaCity"], "");
                string   destination        = UtilityHelper.BWJSCommonHelper.SafeString(Request["Destination"], "");
                int      tripPurposeId      = UtilityHelper.BWJSCommonHelper.SafeInt(Request["TripPurposeId"], 0);
                string   propertyAddress    = UtilityHelper.BWJSCommonHelper.SafeString(Request["PropertyAddress"], "");
                #endregion
                #endregion 获取参数 end

                #region OrderApplyViewModel 赋值
                OrderApplyViewModel viewModel = new OrderApplyViewModel();
                viewModel.caseCode               = CaseCode;
                viewModel.transNo                = TransNo;
                viewModel.productId              = productId;
                viewModel.TotalPrice             = TotalPrice;
                viewModel.applicantInfo          = new ApplicantInfo();
                viewModel.applicantInfo.CName    = cName;
                viewModel.applicantInfo.EName    = eName;
                viewModel.applicantInfo.CardType = cardType;
                viewModel.applicantInfo.Sex      = sex;
                viewModel.applicantInfo.BirthDay = birthDay;
                viewModel.applicantInfo.Mobile   = mobile;
                viewModel.applicantInfo.Email    = email;
                viewModel.applicantInfo.CardCode = cardCode;

                viewModel.applicantInfo.CardPeriod       = cardPeriod;
                viewModel.applicantInfo.RecordCreateTime = DateTime.Now;
                viewModel.applicantInfo.RecordUpdateTime = DateTime.Now;
                viewModel.applicantInfo.Job = job;

                viewModel.applicationData = new ApplicationData();
                viewModel.applicationData.ApplicationDate  = applicationDate;
                viewModel.applicationData.StartDate        = startDate;
                viewModel.applicationData.EndDate          = endDate;
                viewModel.applicationData.RecordCreateTime = DateTime.Now;
                viewModel.applicationData.RecordUpdateTime = DateTime.Now;
                viewModel.insurantInfo = new InsurantInfo();
                if (Type == 0)//给自己投保
                {
                    viewModel.insurantInfo.CName      = viewModel.applicantInfo.CName;
                    viewModel.insurantInfo.EName      = viewModel.applicantInfo.EName;
                    viewModel.insurantInfo.Sex        = viewModel.applicantInfo.Sex;
                    viewModel.insurantInfo.CardType   = viewModel.applicantInfo.CardType;
                    viewModel.insurantInfo.Birthday   = viewModel.applicantInfo.BirthDay;
                    viewModel.insurantInfo.CardPeriod = viewModel.applicantInfo.CardPeriod;
                    viewModel.insurantInfo.Mobile     = viewModel.applicantInfo.Mobile;
                    viewModel.insurantInfo.CardCode   = viewModel.applicantInfo.CardCode;
                    viewModel.insurantInfo.RelationID = 1;
                    viewModel.insurantInfo.Email      = viewModel.applicantInfo.Email; //新加字段
                    viewModel.insurantInfo.Job        = viewModel.applicantInfo.Job;   //新加字段
                }
                else
                {
                    viewModel.insurantInfo.Email      = bemail;
                    viewModel.insurantInfo.CName      = bcName;
                    viewModel.insurantInfo.EName      = beName;
                    viewModel.insurantInfo.Sex        = bsex;
                    viewModel.insurantInfo.CardType   = bcardType;
                    viewModel.insurantInfo.Birthday   = bbirthDay;
                    viewModel.insurantInfo.CardPeriod = bcardPeriod;
                    viewModel.insurantInfo.Mobile     = bmobile;
                    viewModel.insurantInfo.RelationID = relationID;
                    viewModel.insurantInfo.CardCode   = bcardCode;
                    viewModel.insurantInfo.Job        = bjob;
                }
                viewModel.insurantInfo.Count            = count;
                viewModel.insurantInfo.SinglePrice      = singlePrice;
                viewModel.insurantInfo.RecordCreateTime = DateTime.Now;
                viewModel.insurantInfo.RecordUpdateTime = DateTime.Now;

                viewModel.orderApply = new OrderApply();
                viewModel.orderApply.RecordCreateTime = DateTime.Now;
                viewModel.orderApply.RecordUpdateTime = DateTime.Now;
                viewModel.orderApply.UserID           = userId;
                viewModel.orderApply.MachineID        = machineID;
                //  viewModel.transactions = new Transactions();

                viewModel.otherInfo                    = new OtherInfo();
                viewModel.otherInfo.ProvCityID         = provCityId;
                viewModel.otherInfo.CardPeriod         = DateTime.Parse(cardPeriod);//这里传投保人 证件有效期
                viewModel.otherInfo.NotifyAnswerID     = notifyAnswerId;
                viewModel.otherInfo.PriceArgsID        = priceArgsId;
                viewModel.otherInfo.RecordCreateTime   = DateTime.Now;
                viewModel.otherInfo.RecordUpdateTime   = DateTime.Now;
                viewModel.otherInfo.VisaCity           = visaCity;
                viewModel.otherInfo.Destination        = destination;
                viewModel.otherInfo.TripPurposeId      = tripPurposeId;
                viewModel.otherInfo.PropertyAddress    = propertyAddress;
                viewModel.otherInfo.RelatedPersonHouse = relatedPersonHouse;
                #endregion

                OrderApplyHelperBLL orderApplyHelper = new OrderApplyHelperBLL();
                string msg = "";
                bool   b   = orderApplyHelper.OrderApplyAdd(viewModel, out msg);
                Response.Write(msg);
            }
        }
Пример #2
0
        public bool OrderApplyAdd(OrderApplyViewModel viewModel, out string msg)
        {
            msg = "ok";
            using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString))
            {
                conn.Open();
                using (SqlTransaction trans = conn.BeginTransaction())
                {
                    try
                    {
                        int ApplyId = dalOrderApply.Add(viewModel.orderApply, trans, conn);//
                        if (ApplyId < 0)
                        {
                            return(false);
                        }
                        else
                        {
                            viewModel.insurantInfo.OrderApplyID    = ApplyId;
                            viewModel.applicantInfo.OrderApplyID   = ApplyId;
                            viewModel.applicationData.OrderApplyID = ApplyId;
                            viewModel.otherInfo.OrderApplyID       = ApplyId;
                            #region 创建人赋值

                            //LoginUserCookie cookie = MerchantFrontCookieBLL.GetMerchantFrontUserCookie();
                            int createUserId = MerchantFrontCookieBLL.GetMerchantFrontUserId();
                            //int createUserId= cookie.LoginUserID;
                            try
                            {
                                UsersBLL opUsersBLL = new UsersBLL();
                                Users    modelUsers = opUsersBLL.GetModel(createUserId);
                                if (modelUsers != null)
                                {
                                    departmentId = modelUsers.DepartmentID;
                                }
                            }
                            catch { }
                            viewModel.insurantInfo.CreatUserID    = createUserId;
                            viewModel.applicantInfo.CreatUserID   = createUserId;
                            viewModel.applicationData.CreatUserID = createUserId;
                            viewModel.otherInfo.CreatUserID       = createUserId;
                            viewModel.orderApply.CreatUserID      = createUserId;
                            viewModel.orderApply.DepartmentId     = departmentId;
                            #endregion
                        }
                        int retCatId      = dalApplicationData.Add(viewModel.applicationData, trans, conn); //
                        int retInfoId     = dalApplicantInfo.Add(viewModel.applicantInfo, trans, conn);     //
                        int retInsurantId = dalInsurantInfo.Add(viewModel.insurantInfo, trans, conn);       //
                        int retotherId    = otherInfoDAL.Add(viewModel.otherInfo, trans, conn);
                        //调用Mofang业务BaoxianDataBLL

                        BaoxianDataBLL       baoxianBLL = new BaoxianDataBLL();
                        OrderApplyInputModel orderModel = new OrderApplyInputModel();
                        orderModel.applicantinfo            = new ApplicantInfo();
                        orderModel.applicantinfo.cName      = viewModel.applicantInfo.CName;
                        orderModel.applicantinfo.eName      = viewModel.applicantInfo.EName;
                        orderModel.applicantinfo.cardType   = viewModel.applicantInfo.CardType;
                        orderModel.applicantinfo.cardCode   = viewModel.applicantInfo.CardCode;
                        orderModel.applicantinfo.sex        = viewModel.applicantInfo.Sex;
                        orderModel.applicantinfo.birthday   = viewModel.applicantInfo.BirthDay;
                        orderModel.applicantinfo.mobile     = viewModel.applicantInfo.Mobile;
                        orderModel.applicantinfo.email      = viewModel.applicantInfo.Email;
                        orderModel.applicantinfo.cardPeriod = viewModel.applicantInfo.CardPeriod;
                        orderModel.applicantinfo.job        = viewModel.applicantInfo.Job;

                        orderModel.applicationdata = new ApplicationData();
                        orderModel.applicationdata.applicationDate = viewModel.applicationData.ApplicationDate;
                        orderModel.applicationdata.startDate       = viewModel.applicationData.StartDate;
                        orderModel.applicationdata.endDate         = viewModel.applicationData.EndDate;

                        orderModel.insurantInfo             = new InsurantInfo();
                        orderModel.insurantInfo.birthday    = viewModel.insurantInfo.Birthday;
                        orderModel.insurantInfo.cardCode    = viewModel.insurantInfo.CardCode;
                        orderModel.insurantInfo.cardPeriod  = viewModel.insurantInfo.CardPeriod;
                        orderModel.insurantInfo.cardType    = viewModel.insurantInfo.CardType;
                        orderModel.insurantInfo.cName       = viewModel.insurantInfo.CName;
                        orderModel.insurantInfo.count       = viewModel.insurantInfo.Count;
                        orderModel.insurantInfo.eName       = viewModel.insurantInfo.EName;
                        orderModel.insurantInfo.mobile      = viewModel.insurantInfo.Mobile;
                        orderModel.insurantInfo.relationId  = viewModel.insurantInfo.RelationID;
                        orderModel.insurantInfo.sex         = viewModel.insurantInfo.Sex;
                        orderModel.insurantInfo.singlePrice = viewModel.insurantInfo.SinglePrice;
                        orderModel.insurantInfo.email       = viewModel.insurantInfo.Email;
                        orderModel.insurantInfo.job         = viewModel.insurantInfo.Job;
                        orderModel.caseCode = viewModel.caseCode;
                        orderModel.transNo  = viewModel.transNo;
                        int Days = 0;
                        try
                        {
                            TimeSpan ts = Convert.ToDateTime(viewModel.applicationData.EndDate) - Convert.ToDateTime(viewModel.applicationData.StartDate);
                            Days = ts.Days;
                            if (Days == 0)
                            {
                                msg = "投保时间差有误!";
                            }
                        }
                        catch (Exception ex)
                        {
                            ExceptionLogBLL.WriteExceptionLogToDB(ex.ToString());
                        }
                        orderModel.insurantDateLimit = Days.ToString();

                        orderModel.otherInfo                = new OtherInfo();
                        orderModel.otherInfo.provCityId     = viewModel.otherInfo.ProvCityID;
                        orderModel.otherInfo.cardPeriod     = viewModel.otherInfo.CardPeriod.ToString("yyyy-MM-dd");
                        orderModel.otherInfo.notifyAnswerId = viewModel.otherInfo.NotifyAnswerID.ToString();
                        orderModel.otherInfo.priceArgsId    = viewModel.otherInfo.PriceArgsID;

                        orderModel.otherInfo.visaCity           = viewModel.otherInfo.VisaCity;
                        orderModel.otherInfo.destination        = viewModel.otherInfo.Destination;
                        orderModel.otherInfo.tripPurposeId      = viewModel.otherInfo.TripPurposeId;
                        orderModel.otherInfo.propertyAddress    = viewModel.otherInfo.PropertyAddress;
                        orderModel.otherInfo.relatedPersonHouse = viewModel.otherInfo.RelatedPersonHouse;

                        OrderApplyOutputModel outPutModel       = baoxianBLL.OrderApply(orderModel);
                        OrderPayViewModel     orderPayViewModel = new OrderPayViewModel();
                        orderPayViewModel.transNo   = outPutModel.transNo;
                        orderPayViewModel.insureNum = outPutModel.insureNum;
                        orderPayViewModel.price     = outPutModel.price;
                        orderPayViewModel.caseCode  = orderModel.insurantInfo.cardCode;
                        orderPayViewModel.customkey = orderModel.customkey;
                        msg = SerializerHelper.SerializeObject(outPutModel);
                        if (outPutModel.respstat == "0000")
                        {
                            trans.Commit();//提交事务
                            Model.OrderApply oOrderApply = new Model.OrderApply();
                            OrderApplyBLL    orderbll    = new OrderApplyBLL();
                            oOrderApply              = orderbll.GetModel(ApplyId);
                            oOrderApply.InsureNum    = orderPayViewModel.insureNum;
                            oOrderApply.Price        = orderPayViewModel.price;
                            oOrderApply.Respmsg      = outPutModel.respmsg;
                            oOrderApply.Respstat     = outPutModel.respstat;
                            oOrderApply.DepartmentId = departmentId;
                            bool flag = dalOrderApply.Update(oOrderApply);
                            if (!flag)
                            {
                                ExceptionLogBLL.WriteExceptionLogToDB("更新OrderApply表失败");
                            }
                            else //没问题后提交返利设置
                            {
                                #region 获取渠道返利设置
                                if (ApplyId > 0)
                                {
                                    CompanyRebate    modelSys_CompanyRebate = new CompanyRebate();
                                    CompanyRebateBLL opSys_CompanyRebateBLL = new CompanyRebateBLL();
                                    StringBuilder where = new StringBuilder();
                                    where.AppendFormat("IsDeleted=0 and casecode='{0}'", viewModel.caseCode);
                                    DataSet   ds = opSys_CompanyRebateBLL.GetList(where.ToString());
                                    DataTable dt = null;
                                    if (ds != null && ds.Tables.Count > 0)
                                    {
                                        dt = ds.Tables[0];
                                    }
                                    if (dt != null && dt.Rows.Count > 0)
                                    {
                                        DataRow dr = dt.Rows[0];
                                        modelSys_CompanyRebate = opSys_CompanyRebateBLL.DataRowToModel(dr);
                                        if (modelSys_CompanyRebate != null)
                                        {
                                            /*
                                             * 总价=订单金额
                                             * 总部毛利=总价*产品分成百分比(魔方提供 我方后台管理设置渠道各产品返回分成百分比)
                                             * 商家利润=总部毛利*商家返利百分比(我方后台管理设置渠各产品商家分成百分比)
                                             * 代理商利润=总部毛利*代理商返利百分比(我方后台管理设置渠各产品商家分成百分比)
                                             * 总部净利润=总部毛利-商家利润-代理商利润
                                             */
                                            decimal orderMoney     = viewModel.TotalPrice;
                                            decimal hqRebate       = modelSys_CompanyRebate.CompanyRebatePer;
                                            decimal hqMoney        = orderMoney * (hqRebate / 100);
                                            decimal agentRebate    = modelSys_CompanyRebate.AgentRebate;
                                            decimal agentMoney     = hqMoney * (agentRebate / 100);
                                            decimal merchantRebate = modelSys_CompanyRebate.MerchantRebate;
                                            decimal merchantMoney  = hqMoney * (merchantRebate / 100);
                                            decimal netProfit      = hqMoney - agentMoney - merchantMoney;

                                            #region 订单返利信息入库
                                            OrderRebateBLL opSys_OrderRebate    = new OrderRebateBLL();
                                            OrderRebate    modelSys_OrderRebate = new OrderRebate();
                                            modelSys_OrderRebate.TransNo         = viewModel.transNo;
                                            modelSys_OrderRebate.CompanyId       = 1;
                                            modelSys_OrderRebate.UserId          = viewModel.orderApply.UserID;
                                            modelSys_OrderRebate.OrderApplyId    = ApplyId;
                                            modelSys_OrderRebate.CompanyRebateId = modelSys_CompanyRebate.CompanyRebateId;
                                            modelSys_OrderRebate.OrderMoney      = orderMoney;
                                            modelSys_OrderRebate.HQRebate        = hqRebate;
                                            modelSys_OrderRebate.HQMoney         = hqMoney;
                                            modelSys_OrderRebate.MerchantRebate  = merchantRebate;
                                            modelSys_OrderRebate.MerchantMoney   = merchantMoney;
                                            modelSys_OrderRebate.AgentRebate     = agentRebate;
                                            modelSys_OrderRebate.AgentMoney      = agentMoney;
                                            modelSys_OrderRebate.NetProfit       = netProfit;
                                            modelSys_OrderRebate.PayStatus       = 0;
                                            modelSys_OrderRebate.IsSettled       = 0;
                                            modelSys_OrderRebate.IsCancel        = 0;
                                            modelSys_OrderRebate.SettlementDate  = null;
                                            modelSys_OrderRebate.CreateDate      = DateTime.Now;
                                            modelSys_OrderRebate.Remark          = modelSys_CompanyRebate.RebateName;
                                            modelSys_OrderRebate.IsDeleted       = 0;
                                            int orderRebateId = opSys_OrderRebate.Add(modelSys_OrderRebate);
                                            if (orderRebateId < 0)
                                            {
                                                ExceptionLogBLL.WriteExceptionLogToDB("订单返利信息添加失败");
                                            }

                                            #endregion

                                            #region 订单支付申请预先入库
                                            OrderPayApplyBLL opSys_OrderPayApplyBLL = new OrderPayApplyBLL();
                                            OrderPayApply    modelSys_OrderPayApply = new OrderPayApply();
                                            modelSys_OrderPayApply.OrderRebateId  = orderRebateId;
                                            modelSys_OrderPayApply.OrderMoney     = orderMoney;
                                            modelSys_OrderPayApply.PayOrderNumber = string.Empty;
                                            modelSys_OrderPayApply.PayStatus      = 0;
                                            modelSys_OrderPayApply.PayPlatform    = 1;
                                            modelSys_OrderPayApply.PayMethod      = 1;
                                            modelSys_OrderPayApply.PayCode        = string.Empty;
                                            modelSys_OrderPayApply.PayText        = string.Empty;
                                            modelSys_OrderPayApply.PayJson        = string.Empty;
                                            modelSys_OrderPayApply.CreateDate     = DateTime.Now;
                                            modelSys_OrderPayApply.Remark         = modelSys_CompanyRebate.RebateName;
                                            modelSys_OrderPayApply.IsDeleted      = 0;
                                            int res1 = opSys_OrderPayApplyBLL.Add(modelSys_OrderPayApply);
                                            if (res1 < 0)
                                            {
                                                ExceptionLogBLL.WriteExceptionLogToDB("订单支付申请预先入库失败");
                                            }
                                            #endregion
                                        }
                                    }
                                    else
                                    {
                                        ExceptionLogBLL.WriteExceptionLogToDB("获取渠道返利设置信息获取失败");
                                    }
                                }
                                #endregion
                            }
                        }
                        else
                        {
                            trans.Rollback();
                        }
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        ExceptionLogBLL.WriteExceptionLogToDB(ex.ToString());
                        return(false);
                    }
                }
            }
        }