Beispiel #1
0
        public JsonResult SendCode(string pluginId, string destination)
        {
            long uid    = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId);
            var  member = MemberApplication.GetMembers(uid);
            var  status = MemberApplication.SendMemberCode(pluginId, destination, member.UserName, SiteSettings.SiteName);
            bool result = status == SendMemberCodeReturn.success;

            return(Json(new Result()
            {
                success = result, msg = status.ToDescription()
            }));
        }
Beispiel #2
0
        public JsonResult EditProfiles1(ShopProfileSteps1 shopProfileStep1)
        {
            //公司信息
            Cache.Remove(CacheKeyCollection.CACHE_SHOP(CurrentSellerManager.ShopId, false));
            Cache.Remove(CacheKeyCollection.CACHE_SHOPDTO(CurrentSellerManager.ShopId, false));
            Himall.DTO.Shop shopInfo = ShopApplication.GetShop(CurrentSellerManager.ShopId);
            shopInfo.Id                   = CurrentSellerManager.ShopId;
            shopInfo.CompanyName          = shopProfileStep1.CompanyName;
            shopInfo.CompanyAddress       = shopProfileStep1.Address;
            shopInfo.CompanyRegionId      = shopProfileStep1.CityRegionId;
            shopInfo.CompanyRegionAddress = shopProfileStep1.Address;
            shopInfo.Stage                = ShopInfo.ShopStage.FinancialInfo;
            shopInfo.BusinessLicenseCert  = Request.Form["BusinessLicenseCert"];
            shopInfo.ProductCert          = Request.Form["ProductCert"];
            shopInfo.OtherCert            = Request.Form["OtherCert"];
            shopInfo.IDCard               = shopProfileStep1.IDCard;
            shopInfo.IDCardUrl            = shopProfileStep1.IDCardUrl;
            shopInfo.IDCardUrl2           = shopProfileStep1.IDCardUrl2;
            ShopApplication.UpdateShop(shopInfo);

            long uid = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId);
            //管理员信息
            var model = MemberApplication.GetMemberAccountSafety(uid);

            if (shopProfileStep1.MemberPhone.Equals(""))
            {
                return(Json(new { success = false, msg = "必须认证手机!" }));
            }

            //修改真实姓名
            var member = MemberApplication.GetMembers(uid);

            member.RealName = shopProfileStep1.RealName;
            MemberApplication.UpdateMember(member);

            if (shopProfileStep1.MemberPhone != null && !shopProfileStep1.MemberPhone.Equals(model.Phone))
            {
                string pluginId = "Himall.Plugin.Message.SMS";
                int    result   = MemberApplication.CheckMemberCode(pluginId, shopProfileStep1.PhoneCode, shopProfileStep1.MemberPhone, uid);
                string strMsg   = "";
                switch (result)
                {
                case 0: strMsg = "手机验证码错误!"; break;

                case -1: strMsg = "此手机号已绑定!"; break;
                }
                if (!strMsg.Equals(""))
                {
                    return(Json(new { success = false, msg = strMsg }));
                }
            }
            return(Json(new { success = true, msg = "成功!" }));
        }
        /// <summary>
        /// 拼团订单提交
        /// </summary>
        /// <param name="value">表单数据</param>
        /// <returns></returns>
        public object PostSubmitFightGroupOrder(OrderSubmitFightGroupOrderModel value)
        {
            CheckUserLogin();
            if (value.CapitalAmount > 0 && !string.IsNullOrEmpty(value.PayPwd))
            {
                var flag = MemberApplication.VerificationPayPwd(CurrentUser.Id, value.PayPwd);
                if (!flag)
                {
                    throw new HimallApiException("预存款支付密码错误");
                }
            }
            string skuIds           = value.skuId;
            long   counts           = value.count;
            long   recieveAddressId = value.recieveAddressId;
            long   activeId         = value.GroupActionId;
            long   groupId          = value.GroupId;

            bool   isCashOnDelivery = value.isCashOnDelivery;
            int    invoiceType      = value.invoiceType;
            string invoiceTitle     = value.invoiceTitle;
            string invoiceContext   = value.invoiceContext;
            string invoiceCode      = value.invoiceCode;

            string orderRemarks = "";//value.orderRemarks;//订单备注
            List <FightGroupOrderJoinStatus> seastatus = new List <FightGroupOrderJoinStatus>();

            seastatus.Add(FightGroupOrderJoinStatus.Ongoing);
            seastatus.Add(FightGroupOrderJoinStatus.JoinSuccess);
            var groupData = ServiceProvider.Instance <IFightGroupService> .Create.GetActive(activeId, false, false);

            if (counts > groupData.LimitQuantity)
            {
                throw new HimallApiException(string.Format("每人限购数量:{0}!", groupData.LimitQuantity));
            }
            try
            {
                var model = OrderApplication.GetGroupOrder(CurrentUser.Id, skuIds, counts.ToString(), recieveAddressId, invoiceType, invoiceTitle, invoiceCode, invoiceContext, activeId, PlatformType.Android, groupId, isCashOnDelivery, orderRemarks);
                CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderShop[]>(value.jsonOrderShops);
                model.OrderShops   = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提
                model.OrderRemarks = OrderShops.Select(p => p.Remark).ToArray();
                var ret = OrderApplication.OrderSubmit(model);
                AddVshopBuyNumber(ret.OrderIds);//添加微店购买数量
                return(new { success = true, OrderIds = ret.OrderIds });
            }
            catch (HimallException he)
            {
                return(ErrorResult(he.Message));
            }
            catch (Exception ex)
            {
                return(ErrorResult("提交订单异常"));
            }
        }
Beispiel #4
0
        public JsonResult ApplyWithDrawSubmit(string nickname, decimal amount, string pwd)
        {
            var success = MemberApplication.VerificationPayPwd(CurrentUser.Id, pwd);

            if (!success)
            {
                throw new HimallException("支付密码不对,请重新输入!");
            }
            var capitalInfo = _iMemberCapitalService.GetCapitalInfo(CurrentUser.Id);

            if (amount > capitalInfo.Balance)
            {
                throw new HimallException("提现金额不能超出可用金额!");
            }
            if (amount <= 0)
            {
                throw new HimallException("提现金额不能小于等于0!");
            }
            var    openid  = Core.Helper.WebHelper.GetCookie(CookieKeysCollection.HIMALL_USER_OpenID);
            string strNick = string.Empty;

            if (!string.IsNullOrWhiteSpace(openid))
            {
                openid = Core.Helper.SecureHelper.AESDecrypt(openid, "Mobile");
                var siteSetting = _iSiteSettingService.GetSiteSettings();
                if (!(string.IsNullOrWhiteSpace(siteSetting.WeixinAppId) || string.IsNullOrWhiteSpace(siteSetting.WeixinAppSecret)))
                {
                    string token    = AccessTokenContainer.TryGetToken(siteSetting.WeixinAppId, siteSetting.WeixinAppSecret);
                    var    userinfo = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetUserInfo(token, openid);
                    if (userinfo != null)
                    {
                        strNick = userinfo.nickname;
                    }
                }
            }
            else
            {
                throw new HimallException("数据异常,OpenId不能为空!");
            }

            ApplyWithDrawInfo model = new ApplyWithDrawInfo()
            {
                ApplyAmount = amount,
                ApplyStatus = ApplyWithDrawInfo.ApplyWithDrawStatus.WaitConfirm,
                ApplyTime   = DateTime.Now,
                MemId       = CurrentUser.Id,
                OpenId      = openid,
                NickName    = strNick
            };

            _iMemberCapitalService.AddWithDrawApply(model);
            return(Json(new { success = true }));
        }
Beispiel #5
0
 /// <summary>
 /// 同意销售员申请
 /// </summary>
 /// <param name="memberIds"></param>
 /// <param name="remark"></param>
 public static void AgreeDistributor(IEnumerable <long> memberIds, string remark)
 {
     _iDistributionService.AgreeDistributor(memberIds, remark);
     //发送短信通知
     Task.Factory.StartNew(() =>
     {
         foreach (var item in memberIds)
         {
             var uobj = MemberApplication.GetMember(item);
             MessageApplication.SendMessageOnDistributorAuditSuccess(item, uobj.UserName);
         }
     });
 }
Beispiel #6
0
        /// <summary>
        /// 选中发送微信消息
        /// </summary>
        /// <param name="ids"></param>
        /// <param name="msgtype"></param>
        /// <param name="mediaid"></param>
        /// <param name="msgcontent"></param>
        /// <returns></returns>
        public JsonResult SendWXGroupMessage(string ids, string msgtype, string mediaid = "", string msgcontent = "")
        {
            var userIds = string.IsNullOrWhiteSpace(ids) ? null : ids.Split(',').Select(s => long.Parse(s)).ToArray();

            if (userIds == null || userIds.Length == 0)
            {
                throw new MallException("请选择发送对象!");
            }

            MemberApplication.SendWeiMessageByUserIds(userIds, msgtype, mediaid, msgcontent);

            return(Json(new { success = true, msg = "发送成功!" }));
        }
Beispiel #7
0
        ///// <summary>
        ///// 发送验证码(提现验证码)
        ///// </summary>
        ///// <returns></returns>
        //public object SendWithdrawCode(ShopApplyWithDrawModel model)
        //{
        //	CheckShopManageLogin();
        //	;
        //	//获取站点配置信息
        //	var siteSetting = SiteSettingApplication.GetSiteSettings();
        //	var user = MemberApplication.GetMemberByName(CurrentUser.UserName);
        //	Himall.DTO.MemberAccountSafety mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(user.Id);
        //	if (!mMemberAccountSafety.BindPhone)
        //	{
        //		return Json(new Result() { success = false, msg = "未绑定手机号" });
        //	}

        //	if (!ShopApplication.SendCode("Himall.Plugin.Message.SMS", mMemberAccountSafety.Phone, user.UserName, siteSetting.SiteName))
        //	{
        //		return Json(new Result() { success = false, msg = "120秒内只允许请求一次,请稍后重试!" });
        //	}
        //	return Json(new Result() { success = true, msg = "发送成功" });
        //}

        ///// <summary>
        ///// 检查验证码是否正确(提现验证码)
        ///// </summary>
        ///// <param name="code"></param>
        ///// <returns></returns>
        //public object WithdrawCodeCheck(ShopApplyWithDrawModel model)
        //{
        //	CheckShopManageLogin();
        //	;
        //	var user = MemberApplication.GetMemberByName(CurrentUser.UserName);
        //	Himall.DTO.MemberAccountSafety mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(user.Id);
        //	int result = ShopApplication.CheckCode("Himall.Plugin.Message.SMS", model.Code, mMemberAccountSafety.Phone, user.UserName);
        //	if (result > 0)
        //		return Json(new Result() { success = true });
        //	else
        //		return Json(new Result() { success = false, msg = "验证码错误" });
        //}
        #endregion


        #region         /*绑定银行卡验证码发送和验证*/
        ///// <summary>
        ///// 发送验证码(绑定银行卡)
        ///// </summary>
        ///// <returns></returns>
        //public object SendBindBankCode(ShopApplyWithDrawModel model)
        //{
        //	CheckShopManageLogin();
        //	;
        //	//获取站点配置信息
        //	var siteSetting = SiteSettingApplication.GetSiteSettings();

        //	var user = MemberApplication.GetMemberByName(CurrentUser.UserName);
        //	Himall.DTO.MemberAccountSafety mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(user.Id);
        //	if (!mMemberAccountSafety.BindPhone)
        //	{
        //		return Json(new Result() { success = false, msg = "未绑定手机号" });
        //	}

        //	if (!ShopApplication.BindBankSendCode("Himall.Plugin.Message.SMS", mMemberAccountSafety.Phone, user.UserName, siteSetting.SiteName))
        //	{
        //		return Json(new Result() { success = false, msg = "120秒内只允许请求一次,请稍后重试!" });
        //	}
        //	return Json(new Result() { success = true, msg = "发送成功" });
        //}

        ///// <summary>
        ///// 检查验证码是否正确(绑定银行卡)
        ///// </summary>
        ///// <param name="code"></param>
        ///// <returns></returns>
        //public object BindBankCodeCheck(ShopApplyWithDrawModel model)
        //{
        //	CheckShopManageLogin();
        //	;
        //	var user = MemberApplication.GetMemberByName(CurrentUser.UserName);
        //	Himall.DTO.MemberAccountSafety mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(user.Id);
        //	int result = ShopApplication.BindBankCheckCode("Himall.Plugin.Message.SMS", model.Code, mMemberAccountSafety.Phone, user.UserName);
        //	if (result > 0)
        //		return Json(new Result() { success = true });
        //	else
        //		return Json(new Result() { success = false, msg = "验证码错误" });
        //}
        #endregion

        /// <summary>
        /// 发送验证码之前验证联系方式
        /// </summary>
        /// <param name="contact"></param>
        /// <returns></returns>
        protected override bool CheckContact(string contact, out string errorMessage)
        {
            CheckShopManageLogin();

            //获取站点配置信息
            var siteSetting          = SiteSettingApplication.GetSiteSettings();
            var user                 = MemberApplication.GetMemberByName(CurrentUser.UserName);
            var mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(user.Id);

            Cache.Insert(_encryptKey + contact, CurrentUser.Id, DateTime.Now.AddHours(1));
            errorMessage = "未绑定手机号";
            return(mMemberAccountSafety.BindPhone);
        }
Beispiel #8
0
        public object SubmitOrder(SmallProgSubmitOrderModel value)
        {
            CheckUserLogin();
            if (value.CapitalAmount > 0 && !string.IsNullOrEmpty(value.PayPwd))
            {
                var flag = MemberApplication.VerificationPayPwd(CurrentUser.Id, value.PayPwd);
                if (!flag)
                {
                    return(Json(ErrorResult <dynamic>("预存款支付密码错误")));
                }
            }
            if (value.fromPage == WXSmallProgFromPageType.SignBuy)
            {
                //立即购买(限时购)
                OrderSubmitOrderModel orderModel = new OrderSubmitOrderModel();
                orderModel.counts              = value.buyAmount.ToString();
                orderModel.couponIds           = value.couponCode;
                orderModel.integral            = (int)value.deductionPoints;
                orderModel.recieveAddressId    = value.shippingId;
                orderModel.skuIds              = value.productSku;
                orderModel.orderRemarks        = value.remark;
                orderModel.formId              = value.formId;
                orderModel.isCashOnDelivery    = false; //货到付款
                orderModel.invoiceType         = 0;     //发票类型
                orderModel.jsonOrderShops      = value.jsonOrderShops;
                orderModel.isStore             = value.isStore;
                orderModel.ProductType         = value.ProductType;
                orderModel.VirtualProductItems = value.VirtualProductItems;
                orderModel.Capital             = value.CapitalAmount;
                //提交
                return(SubmitOrderById(orderModel));
            }
            else if (value.fromPage == WXSmallProgFromPageType.Cart)
            {
                //购物车
                OrderSubmitOrderByCartModel cartModel = new OrderSubmitOrderByCartModel();
                cartModel.couponIds        = value.couponCode;
                cartModel.integral         = (int)value.deductionPoints;
                cartModel.recieveAddressId = value.shippingId;
                cartModel.cartItemIds      = value.cartItemIds; //
                cartModel.formId           = value.formId;
                cartModel.isCashOnDelivery = false;             //货到付款
                cartModel.invoiceType      = 0;                 //发票类型
                cartModel.jsonOrderShops   = value.jsonOrderShops;
                cartModel.Capital          = value.CapitalAmount;
                cartModel.isStore          = value.isStore;
                return(SubmitOrderByCart(cartModel));
            }

            return(Json(ErrorResult <dynamic>("提交来源异常")));
        }
Beispiel #9
0
        public ActionResult SendPhoneCode(string pluginId, string destination)
        {
            long uid   = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId);
            var  model = MemberApplication.GetMembers(uid);

            Himall.CommonModel.SendMemberCodeReturn status = MemberApplication.SendMemberCode(pluginId, destination, model.UserName, SiteSettings.SiteName);

            bool bo = status.Equals(Himall.CommonModel.SendMemberCodeReturn.success);

            return(Json(new Result()
            {
                success = bo, msg = status.ToDescription()
            }));
        }
        protected override object OnCheckCheckCodeSuccess(string contact)
        {
            CheckUserLogin();

            string pluginId = PluginsManagement.GetInstalledPluginInfos(Core.Plugins.PluginType.SMS).First().PluginId;

            var _iMemberIntegralConversionFactoryService = ServiceProvider.Instance <IMemberIntegralConversionFactoryService> .Create;
            var _iMemberIntegralService = ServiceProvider.Instance <IMemberIntegralService> .Create;
            var _iMemberInviteService   = ServiceProvider.Instance <IMemberInviteService> .Create;

            var member = CurrentUser;

            if (Application.MessageApplication.GetMemberContactsInfo(pluginId, contact, MemberContactsInfo.UserTypes.General) != null)
            {
                return(Json(new { success = false, msg = contact + "已经绑定过了!" }));
            }
            member.CellPhone = contact;
            MemberApplication.UpdateMember(member.Map <DTO.Members>());
            Application.MessageApplication.UpdateMemberContacts(new MemberContactsInfo()
            {
                Contact = contact, ServiceProvider = pluginId, UserId = CurrentUser.Id, UserType = MemberContactsInfo.UserTypes.General
            });
            Core.Cache.Remove(CacheKeyCollection.MemberPluginCheck(CurrentUser.UserName, pluginId));
            Core.Cache.Remove(CacheKeyCollection.Member(CurrentUser.Id));            //移除用户缓存
            Core.Cache.Remove("Rebind" + CurrentUser.Id);

            UserMemberInfo inviteMember = null;

            if (member.InviteUserId.HasValue)
            {
                inviteMember = Application.MemberApplication.GetMember(member.InviteUserId.Value);
            }

            MemberIntegralRecord info = new MemberIntegralRecord();

            info.UserName   = member.UserName;
            info.MemberId   = member.Id;
            info.RecordDate = DateTime.Now;
            info.TypeId     = MemberIntegral.IntegralType.Reg;
            info.ReMark     = "绑定手机";
            var memberIntegral = _iMemberIntegralConversionFactoryService.Create(MemberIntegral.IntegralType.Reg);

            _iMemberIntegralService.AddMemberIntegral(info, memberIntegral);
            if (inviteMember != null)
            {
                _iMemberInviteService.AddInviteIntegel(member, inviteMember);
            }

            return(base.OnCheckCheckCodeSuccess(contact));
        }
 /// <summary>
 /// 保存个人信息
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public object SaveUserInfo(MemberUpdate model)
 {
     CheckUserLogin();
     if (string.IsNullOrWhiteSpace(model.RealName))
     {
         return(ErrorResult("真实姓名必须填写"));
     }
     if (!string.IsNullOrWhiteSpace(model.Photo))
     {
         model.Photo = UploadPhoto(model.Photo);
     }
     model.Id = CurrentUser.Id;
     MemberApplication.UpdateMemberInfo(model);
     return(Json(new { success = true, msg = "修改成功" }));
 }
Beispiel #12
0
 public JsonResult Edit5(string RealName)
 {
     if (!RealName.Equals(""))
     {
         long uid    = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId);
         var  member = MemberApplication.GetMembers(uid);
         member.RealName = RealName;
         MemberApplication.UpdateMember(member);
         return(Json(new { success = true }));
     }
     else
     {
         return(Json(new { success = false, msg = "真实姓名不能为空" }));
     }
 }
        public JsonResult List(UserQuery queryModel, string auditStatuses, int page, int rows)
        {
            queryModel.PageSize = rows;
            queryModel.PageNo   = page;
            queryModel.shopId   = base.CurrentSellerManager.ShopId;
            QueryPageModel <UserModel> follows = MemberApplication.GetdoctorList(queryModel);

            DataGridModel <UserModel> data = new DataGridModel <UserModel>
            {
                total = follows.Total,
                rows  = follows.Models.ToList()
            };

            return(base.Json(data));
        }
Beispiel #14
0
        /// <summary>
        /// 申请成为销售员
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="shopLogo"></param>
        /// <param name="shopName"></param>
        /// <returns></returns>
        public static DistributorInfo ApplyDistributor(long memberId, string shopLogo, string shopName)
        {
            DistributorInfo result = _iDistributionService.GetDistributor(memberId);
            bool            isadd  = false;

            if (result == null)
            {
                result = new DistributorInfo();
                isadd  = true;
                result.ProductCount     = 0;
                result.OrderCount       = 0;
                result.SettlementAmount = 0;
            }
            result.MemberId           = memberId;
            result.ShopLogo           = shopLogo;
            result.IsShowShopLogo     = true;
            result.ShopName           = shopName;
            result.ApplyTime          = DateTime.Now;
            result.DistributionStatus = (int)DistributorStatus.UnAudit;
            if (!SiteSettingApplication.SiteSettings.DistributorNeedAudit)
            {
                result.DistributionStatus = (int)DistributorStatus.Audited;
            }
            var gradeId = GetDistributorGrades().OrderByDescending(d => d.Quota).FirstOrDefault(d => d.Quota <= result.SettlementAmount)?.Id;

            result.GradeId = gradeId ?? 0;

            if (isadd)
            {
                _iDistributionService.AddDistributor(result);
            }
            else
            {
                _iDistributionService.UpdateDistributor(result);
            }
            var uobj = MemberApplication.GetMember(result.MemberId);

            //发送短信通知
            Task.Factory.StartNew(() =>
            {
                MessageApplication.SendMessageOnDistributorApply(result.MemberId, uobj.UserName);
                if (result.DistributionStatus == (int)DistributorStatus.Audited)
                {
                    MessageApplication.SendMessageOnDistributorAuditSuccess(result.MemberId, uobj.UserName);
                }
            });
            return(result);
        }
Beispiel #15
0
        public JsonResult List(MemberQuery query)
        {
            if (query.Sort == "CreateDateStr")
            {
                query.Sort = "CreateDate";
            }

            var result = MemberApplication.GetMemberList(query);
            var model  = new DataGridModel <DTO.Members>()
            {
                rows  = result.Models,
                total = result.Total
            };

            return(Json(model));
        }
Beispiel #16
0
        public JsonResult SendSms(string ids, string sendCon)
        {
            var userIds = string.IsNullOrWhiteSpace(ids) ? null : ids.Split(',').Select(s => long.Parse(s)).ToArray();

            if (userIds == null || userIds.Length == 0)
            {
                throw new MallException("请选择发送对象!");
            }
            if (sendCon.Equals(""))
            {
                throw new MallException("请输入发送内容!");
            }
            MemberApplication.SendMsgByUserIds(userIds, HttpUtility.HtmlEncode(sendCon));

            return(Json(new { Success = true }, true));
        }
        /// <summary>
        /// 提现申请数据提交
        /// </summary>
        /// <returns></returns>
        public JsonResult ApplyWithDrawSubmit(string pluginId, string destination, string code, decimal amount, int WithdrawType, string Account, string AccountName)
        {
            long userId = MemberApplication.GetMemberUserIdOrShop(CurrentUser, CurrentSellerManager);
            int  result = MemberApplication.CheckCode(pluginId, code, destination, userId);

            if (result > 0)
            {
                var sitesetting = SiteSettingApplication.SiteSettings;
                if (amount <= sitesetting.ShopWithDrawMinimum && amount >= sitesetting.ShopWithDrawMaximum)
                {
                    return(Json(new { success = false, msg = "提现金额不能小于:" + sitesetting.ShopWithDrawMinimum + " 元,不能大于:" + sitesetting.ShopWithDrawMaximum + " 元" }));
                }
                Himall.DTO.ShopWithDraw model = new ShopWithDraw()
                {
                    SellerId         = userId,
                    SellerName       = CurrentSellerManager.UserName,
                    ShopId           = CurrentSellerManager.ShopId,
                    WithdrawalAmount = amount,
                    WithdrawType     = (Himall.CommonModel.WithdrawType)WithdrawType,
                    Account          = Account,
                    AccountName      = AccountName
                };
                if (model.WithdrawType == CommonModel.WithdrawType.ALipay)
                {
                    if (string.IsNullOrEmpty(model.Account) || string.IsNullOrEmpty(model.AccountName))
                    {
                        return(Json(new { success = false, msg = "支付宝提现请填写支付账号与真实姓名!" }));
                    }
                }

                bool isbool = BillingApplication.ShopApplyWithDraw(model);

                if (isbool)
                {
                    return(Json(new { success = true, msg = "成功!" }));
                }
                else
                {
                    return(Json(new { success = false, msg = "余额不足,无法提现!" }));
                }
            }
            else
            {
                return(Json(new { success = false, msg = "验证码错误!" }));
            }
        }
        public ActionResult CapitalCharge()
        {
            UserCapitalChargeModel result = new UserCapitalChargeModel();
            var model = MemberCapitalApplication.GetCapitalInfo(CurrentUser.Id);

            ViewBag.Keyword                = string.IsNullOrWhiteSpace(SiteSettings.SearchKeyword) ? SiteSettings.Keyword : SiteSettings.SearchKeyword;
            ViewBag.Keywords               = SiteSettings.HotKeyWords;
            result.UserCaptialInfo         = model ?? new Entities.CapitalInfo();
            result.CanWithdraw             = MemberApplication.CanWithdraw(CurrentUser.Id);
            result.IsEnableRechargePresent = SiteSettings.IsOpenRechargePresent;

            if (result.IsEnableRechargePresent)
            {
                result.RechargePresentRules = RechargePresentRuleApplication.GetRules();
            }
            return(View(result));
        }
Beispiel #19
0
        /// <summary>
        /// 个人或企业账户信息
        /// </summary>
        /// <returns></returns>
        public ActionResult Step3()
        {
            var modelShop = ShopApplication.GetShop(CurrentSellerManager.ShopId);

            #region 个人/企业信息
            long   companyRegionId         = 0;
            long   businessLicenceRegionId = 0;
            string refuseReason            = "";
            if (modelShop.BusinessType.Equals(Himall.CommonModel.ShopBusinessType.Personal))
            {
                var step1 = ShopApplication.GetShopProfileSteps1(CurrentSellerManager.ShopId, out companyRegionId, out businessLicenceRegionId, out refuseReason);
                ViewBag.CompanyRegionIds = RegionApplication.GetRegionPath((int)companyRegionId);
                ViewBag.RefuseReason     = refuseReason;
                ViewBag.fullName         = RegionApplication.GetFullName((int)companyRegionId);

                long uid   = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId);
                var  model = MemberApplication.GetMembers(uid);
                step1.RealName = model.RealName;
                Himall.DTO.MemberAccountSafety mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(uid);
                step1.MemberEmail = mMemberAccountSafety.Email;
                step1.MemberPhone = mMemberAccountSafety.Phone;

                ModelState.AddModelError("Phone", "多个联系方式用,号分隔");
                ModelState.AddModelError("ContactPhone", "多个联系方式用,号分隔");
                return(View("Steps3", step1));
            }
            else
            {
                var step1 = ShopApplication.GetShopProfileStep1(CurrentSellerManager.ShopId, out companyRegionId, out businessLicenceRegionId, out refuseReason);
                ViewBag.CompanyRegionIds = RegionApplication.GetRegionPath((int)companyRegionId);
                ViewBag.RefuseReason     = refuseReason;
                ViewBag.fullName         = RegionApplication.GetFullName((int)companyRegionId);

                long uid   = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId);
                var  model = MemberApplication.GetMembers(uid);
                step1.RealName = model.RealName;
                Himall.DTO.MemberAccountSafety mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(uid);
                step1.MemberEmail = mMemberAccountSafety.Email;
                step1.MemberPhone = mMemberAccountSafety.Phone;

                ModelState.AddModelError("Phone", "多个联系方式用,号分隔");
                ModelState.AddModelError("ContactPhone", "多个联系方式用,号分隔");
                return(View(step1));
            }
            #endregion
        }
Beispiel #20
0
        // GET: Mobile/Capital
        public ActionResult Index()
        {
            CapitalIndexChargeModel result = new CapitalIndexChargeModel();

            //判断是否需要跳转到支付地址
            if (this.Request.Url.AbsolutePath.EndsWith("/Capital/Index", StringComparison.OrdinalIgnoreCase) || this.Request.Url.AbsolutePath.EndsWith("/Capital", StringComparison.OrdinalIgnoreCase))
            {
                return(Redirect(Url.RouteUrl("PayRoute") + "?area=mobile&platform=" + this.PlatformType.ToString() + "&controller=Capital&action=Index"));
            }

            var model           = MemberCapitalApplication.GetCapitalInfo(CurrentUser.Id);
            var redPacketAmount = 0M;

            if (model != null)
            {
                //redPacketAmount = model.Himall_CapitalDetail.Where(e => e.SourceType == Model.CapitalDetailInfo.CapitalDetailType.RedPacket).Sum(e => e.Amount);
                redPacketAmount       = MemberCapitalApplication.GetSumRedPacket(model.Id);
                result.CapitalDetails = MemberCapitalApplication.GetTopCapitalDetailList(model.Id, 15);
            }
            else
            {
                model = new CapitalInfo
                {
                    Balance       = 0,
                    ChargeAmount  = 0,
                    FreezeAmount  = 0,
                    MemId         = CurrentUser.Id,
                    PresentAmount = 0
                };
            }
            result.UserCaptialInfo         = model;
            result.IsEnableRechargePresent = SiteSettings.IsOpenRechargePresent;
            if (result.IsEnableRechargePresent)
            {
                result.RechargePresentRules = RechargePresentRuleApplication.GetRules();
            }

            result.RedPacketAmount = redPacketAmount;
            result.IsSetPwd        = string.IsNullOrWhiteSpace(CurrentUser.PayPwd) ? false : true;
            var siteSetting = SiteSettingApplication.SiteSettings;

            result.WithDrawMinimum = siteSetting.WithDrawMinimum;
            result.WithDrawMaximum = siteSetting.WithDrawMaximum;
            result.CanWithDraw     = MemberApplication.CanWithdraw(CurrentUser.Id);
            return(View(result));
        }
        /// <summary>
        /// 申请提现
        /// </summary>
        /// <returns></returns>
        public ActionResult ApplyWithdraw()
        {
            ViewBag.Title = "申请提现";
            var distributor = DistributionApplication.GetDistributorDTO(CurrentUser.Id);

            ViewBag.Balance       = distributor.Balance;                              //账户余额
            ViewBag.IsSetPassword = MemberApplication.HasPayPassword(CurrentUser.Id); //是否设置交易密码

            var settings = new DistributionWithdrawSettings
            {
                MinLimit = SiteSettings.DistributorWithdrawMinLimit,
                MaxLimit = SiteSettings.DistributorWithdrawMaxLimit,
                Types    = SiteSettings.DistributorWithdrawTypes,
            };

            return(View(settings));
        }
Beispiel #22
0
        public ActionResult SendCode(string pluginId, string destination)
        {
            long uid   = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId);
            var  model = MemberApplication.GetMembers(uid);

            if (!MemberApplication.SendCode(pluginId, destination, model.UserName, SiteSettings.SiteName))
            {
                return(Json(new Result()
                {
                    success = false, msg = "120秒内只允许请求一次,请稍后重试!"
                }));
            }
            return(Json(new Result()
            {
                success = true, msg = "发送成功"
            }));
        }
        /// <summary>
        /// 提现申请页面初始
        /// </summary>
        /// <returns></returns>
        public ActionResult ApplyWithDraw()
        {
            Entities.ShopInfo.ShopStage Stage = Entities.ShopInfo.ShopStage.Agreement;
            var shop = ShopApplication.GetShopProfileStep2(CurrentSellerManager.ShopId, out Stage);

            Himall.DTO.MemberAccountSafety mMemberAccountSafety = MemberApplication.GetMemberAccountSafety(MemberApplication.GetMemberUserIdOrShop(CurrentUser, CurrentSellerManager));

            ViewBag.MemberEmail = mMemberAccountSafety.Email;
            ViewBag.MemberPhone = mMemberAccountSafety.Phone;
            var siteSetting = SiteSettingApplication.SiteSettings;

            ViewBag.CanAlipay       = siteSetting.Withdraw_AlipayEnable;
            ViewBag.CanWXpay        = siteSetting.IsOpenH5;//微信提现需要绑定了微信支付才可以
            ViewBag.WithDrawMinimum = siteSetting.ShopWithDrawMinimum;
            ViewBag.WithDrawMaximum = siteSetting.ShopWithDrawMaximum;
            return(View(shop));
        }
        /// <summary>
        /// 申请提现页面
        /// </summary>
        /// <returns></returns>
        public JsonResult <Result <dynamic> > GetApplyWithdraw()
        {
            CheckUserLogin();
            var     sitesettings = SiteSettingApplication.SiteSettings;
            dynamic result       = new System.Dynamic.ExpandoObject();
            var     distributor  = DistributionApplication.GetDistributorDTO(CurrentUser.Id);

            result.Balance       = distributor.Balance;                              //账户余额
            result.IsSetPassword = MemberApplication.HasPayPassword(CurrentUser.Id); //是否设置交易密码
            result.MinLimit      = sitesettings.DistributorWithdrawMinLimit;
            result.MaxLimit      = sitesettings.DistributorWithdrawMaxLimit;
            result.Types         = sitesettings.DistributorWithdrawTypes;
            result.EnableCapital = result.Types?.ToLower().Contains("capital") ?? false;
            result.EnableWeChat  = result.Types?.ToLower().Contains("wechat") ?? false;
            result.EnableAlipay  = result.Types?.ToLower().Contains("alipay") ?? false;
            return(JsonResult <dynamic>(result));
        }
Beispiel #25
0
        protected override JsonResult <Result <int> > ChangePassowrdByCertificate(string certificate, string password)
        {
            if (string.IsNullOrWhiteSpace(password))
            {
                return(Json(ErrorResult <int>("密码不能为空")));
            }

            certificate = SecureHelper.AESDecrypt(certificate, _encryptKey);
            long userId = long.TryParse(certificate.Split(':')[0], out userId) ? userId : 0;

            if (userId == 0)
            {
                throw new HimallException("数据异常");
            }

            MemberApplication.ChangePassword(userId, password);
            return(JsonResult <int>(msg: "密码修改成功"));
        }
Beispiel #26
0
        //确认收货
        public object PostConfirmOrder(MemberOrderConfirmOrderModel value)
        {
            CheckUserLogin();
            long orderId = value.orderId;

            ServiceProvider.Instance <IOrderService> .Create.MembeConfirmOrder(orderId, CurrentUser.UserName);

            var data = ServiceProvider.Instance <IOrderService> .Create.GetOrder(orderId);

            if (data.PaymentType == OrderInfo.PaymentTypes.CashOnDelivery)
            {//货到付款的订单,在会员确认收货时
                MemberApplication.UpdateNetAmount(data.UserId, data.OrderTotalAmount);
                MemberApplication.IncreaseMemberOrderNumber(data.UserId);
            }
            //确认收货写入结算表(修改LH的方法)
            // ServiceProvider.Instance<IOrderService>.Create.WritePendingSettlnment(data);
            return(SuccessResult());
        }
        /// <summary>
        /// 下单
        /// </summary>
        /// <param name="id">返回缓存预约单标识</param>
        /// <param name="order">预约单数据实体</param>
        /// <returns>下单结果</returns>
        public static Himall.Web.App_Code.Common.SubmitOrderResult SubmitOrder(OrderCreateModel order, out string id, string payPwd = "")
        {
            id = "";
            if (((order.Capital > 0) && !string.IsNullOrEmpty(payPwd)) && !MemberApplication.VerificationPayPwd(order.CurrentUser.Id, payPwd))
            {
                return(SubmitOrderResult.ErrorPassword);
            }
            if (order == null)
            {
                return(Common.SubmitOrderResult.NoData);
            }
            else if (order.SkuIds == null || order.SkuIds.Count() == 0 || string.IsNullOrEmpty(order.SkuIds.ElementAt(0)))
            {
                return(SubmitOrderResult.NoSkuId);
            }
            if (!_locker.Keys.Contains(order.SkuIds.ElementAt(0)))
            {
                return(SubmitOrderResult.NoLimit);
            }
            string skuid = order.SkuIds.ElementAt(0);

            lock (_locker[skuid])//锁库存
            {
                int sellcount = int.Parse(Cache.Get(LIMIT_COUNT_TAG + skuid).ToString());
                int total     = int.Parse(Cache.Get(LIMIT_TOTAL_TAG + skuid).ToString());
                int buy       = order.Counts.ElementAt(0);
                if (sellcount + buy > total)//判断是否超卖
                {
                    return(SubmitOrderResult.SoldOut);
                }
                sellcount = sellcount + buy;
                Cache.Insert(LIMIT_COUNT_TAG + skuid, sellcount); //更新库存
                OrderIdentity myorder = new OrderIdentity();      //给预约单加标识
                myorder.Id      = Guid.NewGuid().ToString();
                myorder.Order   = order;
                myorder.State   = OrderState.Untreated;
                myorder.Message = "预约单正在处理";
                id = myorder.Id;
                AddOrder(myorder);
                Cache.Send(LIMIT_LIST_TAG + skuid, myorder);//发消息后台处理
                return(SubmitOrderResult.Success);
            }
        }
        /// <summary>
        /// 查询某个会员标签列表
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static QueryPageModel <LabelModel> GetMemberLabelList(long userId)
        {
            var membLabels = MemberApplication.GetMemberLabels(userId);
            var pageModel  = new QueryPageModel <LabelModel>();

            if (membLabels.Count() > 0)
            {
                var ids            = membLabels.Select(e => e.LabelId);
                var labelPageModel = _iMemberLabelService.GetMemberLabelList(new LabelQuery()
                {
                    LabelIds = ids
                });
                pageModel.Models = labelPageModel.Models.Select(e => new LabelModel {
                    LabelName = e.LabelName, Id = e.Id
                }).ToList();
                pageModel.Total = labelPageModel.Total;
            }
            return(pageModel);
        }
Beispiel #29
0
        /// <summary>
        ///账号密码登录
        /// </summary>
        /// <returns></returns>
        public JsonResult <Result <dynamic> > GetLoginByUserName(string openId = "", string userName = "", string password = "", string nickName = "")
        {
            if (!string.IsNullOrEmpty(openId) && !string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password))
            {
                MemberInfo member = null;

                try
                {
                    member = ServiceProvider.Instance <IMemberService> .Create.Login(userName, password);
                }
                catch (Exception ex)
                {
                    return(Json(ErrorResult <dynamic>(ex.Message)));
                }
                if (member == null)
                {
                    return(Json(ErrorResult <dynamic>("用户名或密码错误")));
                }
                else
                {
                    if (member != null)
                    {
                        //如果不是一键登录的 则绑定openId
                        if (!string.IsNullOrEmpty(openId))
                        {
                            MemberOpenIdInfo memberOpenIdInfo = new MemberOpenIdInfo()
                            {
                                UserId          = member.Id,
                                OpenId          = openId,
                                ServiceProvider = SmallProgServiceProvider,
                                AppIdType       = MemberOpenIdInfo.AppIdTypeEnum.Normal,
                                UnionId         = string.Empty
                            };
                            MemberApplication.UpdateOpenIdBindMember(memberOpenIdInfo);
                        }

                        string memberId = UserCookieEncryptHelper.Encrypt(member.Id, CookieKeysCollection.USERROLE_USER);
                        return(GetMember(member, openId));
                    }
                }
            }
            return(Json(ErrorResult <dynamic>(string.Empty)));
        }
Beispiel #30
0
        public static UserMemberInfo GetUser(HttpRequestBase request)
        {
            long id = UserCookieEncryptHelper.Decrypt(WebHelper.GetCookie("Himall-User"), "2");

            if (id == 0L)
            {
                string userIdCookie = request.QueryString["token"];
                id = UserCookieEncryptHelper.Decrypt(userIdCookie, "2");
                if (id != 0L)
                {
                    WebHelper.SetCookie("Himall-User", userIdCookie);
                }
            }
            if (id != 0L)
            {
                return(MemberApplication.GetUserByCache(id));
            }
            return(null);
        }