Example #1
0
        public ActionResult Save(int?id)
        {
            //支付方式
            List <TradersPayChannel> TradersPayChannelList = new List <TradersPayChannel>();
            //商户资料
            Traders traders = new Traders();
            var     obj     = new TradersPaySecretKey
            {
                SecretKey = CommonService.GUID.ToUpper()
            };

            if (id.HasValue)
            {
                obj = tradersPaySecretKeyService.GetEntityById(id.Value);
                TradersPayChannelList = tradersPaySecretKeyService.GetTradersPayChannel(Convert.ToInt32(id));
                traders = tradersService.GetEntityByWhere(o => o.CID == obj.CID);
            }
            //指派人
            ViewBag.user = ListToSelect(tradersService.getUserList().Select(o => new SelectListItem()
            {
                Value = o.UserId, Text = o.FullName
            }), emptyTitle: "请选择");
            //支付通道
            ViewBag.ClNo = ListToSelect(tradersPaySecretKeyService.GetPayChannelManage().Select(o => new SelectListItem()
            {
                Value = o.ChannelNo.ToString(), Text = o.ChannelCode
            }), emptyTitle: "请选择");
            //支付方式
            ViewBag.Channel = TradersPayChannelList;
            //商户资料
            ViewBag.Tra = traders;
            return(View(obj.IsNullThrow()));
        }
        public ActionResult Save(int?id)
        {
            var obj = new Realm
            {
            };

            if (id.HasValue)
            {
                obj = realmService.GetEntityById(Convert.ToInt32(id));
                if (obj.CID > 0)
                {
                    Traders traders = tradersService.GetEntityByWhere(o => o.CID == obj.CID && o.Status == 1);
                    if (traders != null)
                    {
                        obj.TradersFullTitle = traders.FullTitle;
                    }
                }
            }
            //一级域名
            ViewBag.d1 = ListToSelect(tradersService.getDataList(600).Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");
            return(View(obj.IsNullThrow()));
        }
        public ActionResult AddTrader(Traders obj)
        {
            string msg = "";

            if (!UserService.CheckUserByCode(obj.Assigner, obj.AssignerUID, ref msg))
            {
                return(new OpActionResult(Utility.OpResult.Fail(msg)));
            }
            if (TraderService.ExistsTitle(obj.Title, obj.FullTitle))
            {
                return(new OpActionResult(Utility.OpResult.Fail("客户简称或全称已存在!")));
            }
            obj.TraderTypeId    = "";
            obj.Pay             = Request["Pay"];
            obj.BusinessScopeId = Request["BusinessScopeId"];
            var citys = obj.Cities;

            if (!citys.IsNullOrEmpty())
            {
                var cs = citys.Split(',').Select(o => short.Parse(o)).ToList();
                if (cs.Count == 3)
                {
                    obj.CurrentProvinceId = cs[0];
                    obj.CurrentCityId     = cs[1];
                    obj.CurrentCounty     = cs[2];
                }
            }
            Session["traders"] = obj;
            return(new OpActionResult(Utility.OpResult.Success()));
        }
Example #4
0
        public Trader GetCurrentTraderInfo()
        {
            var userId = GetUserIdForContext(OperationContext.Current);

            return(userId.HasValue ?
                   Traders.GetOrAdd(userId.Value, new Trader(userId.Value)) :
                   Trader.Empty);
        }
        public int Register([FromBody] Traders trader, string orderList, short way, short openVersionId, string storeProper, string posMinorDisp, string appProper, string machine)
        {
            //throw new Exception("test");
            //trader.Source = 2;
            trader.TrackStautsId = 206;
            var op = TradersService.Save(trader, orderList, way, openVersionId, storeProper, posMinorDisp, appProper, machine);

            return(Convert.ToInt32(op.Successed));
        }
        /// <summary>
        /// 获取商户资料
        /// </summary>
        /// <param name="CID"></param>
        /// <returns></returns>
        public string GetEntityTraders(int CID = 0)
        {
            Traders traders = tradersService.GetTraderByCID(CID);

            if (traders == null)
            {
                traders = new Traders();
            }
            return(traders.ToJson());
        }
Example #7
0
        /// <summary>
        /// 获取商户资料
        /// </summary>
        /// <param name="CID"></param>
        /// <returns></returns>
        public string GetEntityTraders(int CID = 0)
        {
            Traders    traders    = new Traders();
            PayLicense payLicense = payLicenseService.GetEntityByWhere(o => o.CID == CID);

            if (payLicense != null)
            {
                traders = tradersService.GetTraderByCID(CID);
            }
            return(traders.ToJson());
        }
Example #8
0
        public Dictionary <Guid, string> GetTraderNames(IEnumerable <Guid> traderIds)
        {
            var currentUser = GetCurrentTraderInfo();
            var ret         = new Dictionary <Guid, string>();

            foreach (var traderId in traderIds.Distinct())
            {
                if (Traders.TryGetValue(traderId, out Trader trader))
                {
                    ret.Add(traderId, trader.Name);
                }
            }

            Log.Information("Retrieved {count} trader names for user {UserId}", ret.Count, currentUser.Id);
            return(ret);
        }
Example #9
0
        /// <summary>
        /// 创建委托
        /// </summary>
        /// <param name="who"></param>
        /// <param name="contract"></param>
        /// <param name="dir"></param>
        /// <param name="pos"></param>
        /// <param name="orderType"></param>
        /// <param name="policy"></param>
        /// <param name="count"></param>
        /// <param name="price"></param>
        /// <returns></returns>
        public Order CreateOrder(int who, int contract, TradeDirectType dir, OrderType orderType, OrderPolicy policy, int count, decimal price)
        {
            var w = Traders.Where(a => a.Id == who).FirstOrDefault();

            if (w == null)
            {
                return(null);
            }
            var c = Contracts.Where(a => a.Id == contract).FirstOrDefault();

            if (c == null)
            {
                return(null);
            }

            return(EntityFactory.CreateOrder(w, c, dir, orderType, policy, count, price));
        }
        /// <summary>
        /// 获取商户全称
        /// </summary>
        /// <param name="CID"></param>
        /// <returns></returns>
        public string getTradersFullTitle(int CID)
        {
            string TradersFullTitle = "";
            bool   isCID            = tradersStoreService.isExistByWhere(o => o.CID == CID && o.State == 1);

            if (isCID)
            {
                Traders traders = tradersService.GetEntityByWhere(o => o.CID == CID);
                if (traders != null)
                {
                    TradersFullTitle = traders.FullTitle;
                }
                else
                {
                    TradersFullTitle = new Traders().FullTitle;
                }
            }
            return(TradersFullTitle);
        }
Example #11
0
        public ActionResult OutRegister(Traders traders, string h_OrderList, string way, string openVersionId, string storeProper, string posMinorDisp, string appProper)
        {
            traders.BusinessScopeId = Request["BusinessScopeId"];
            storeProper             = storeProper == "Y" ? "Y" : "N";
            posMinorDisp            = posMinorDisp == "Y" ? "Y" : "N";
            appProper = appProper == "Y" ? "Y" : "N";
            var omsurl = Authorize.OmsUrl + "api/outerapi/Register";

            omsurl += string.Format("?orderList={0}&way={1}&storeProper={2}&posMinorDisp={3}&appProper={4}&openVersionId={5}&machine={6}", h_OrderList, way, storeProper, posMinorDisp, appProper, openVersionId, Machine.GetMAC);
            var rt = Pharos.Utility.HttpClient.HttpPost(omsurl, traders.ToJson());
            var op = new OpResult();

            op.Successed = rt == "1";//todo:异常时处理
            op.Message   = "";
            if (op.Successed)
            {
                Authorize.RemoveCurrentAuth();
            }
            return(Content(op.ToJson()));
        }
Example #12
0
        public Task SaveTraderAsync(Trader trader)
        {
            var items = Traders.Where(x => x.Identifier == trader.Identifier).ToList();

            if (items.Count > 0)
            {
                foreach (var item in items)
                {
                    Traders.Remove(item);
                }

                Traders.Add(trader);
            }
            else
            {
                Traders.Add(trader);
            }

            return(Task.FromResult(true));
        }
Example #13
0
        /// <summary>
        /// 获取商户全称
        /// </summary>
        /// <param name="CID"></param>
        /// <returns></returns>
        public string getTradersFullTitle(int CID)
        {
            var query = CompanyAuthorizeRepository.GetQuery(o => o.CID == CID && o.Status == 1);

            if (!query.Any())
            {
                return("");
            }
            if (!tradersService.isExistByWhere(o => o.CID == CID && o.Status == 1))
            {
                return("");
            }
            Traders traders = tradersService.GetEntityByWhere(o => o.CID == CID);

            if (traders != null)
            {
                return(traders.FullTitle);
            }
            else
            {
                return("");
            }
        }
Example #14
0
 public Task <List <Trader> > GetBusyTradersAsync()
 {
     return(Task.FromResult(Traders.Where(x => x.IsBusy).ToList()));
 }
Example #15
0
 public void Add(Trader trader) => Traders.Add(trader);
        public ActionResult Save(int?id, int BankState = 0)
        {
            //省市名称
            string ProCitName = "";
            //一二级类目名称
            string BusName = "";
            //商户资料
            Traders traders = new Traders();
            //商家结算账户
            BankAccount bankAccount = new BankAccount();
            //审核日志
            List <ViewApproveLog> logList = new List <ViewApproveLog>();
            //资质或证件
            string url1 = "";
            //企业证件
            string url2 = "";
            //身份证正面
            string url3 = "";
            //身份证反面
            string url4 = "";
            var    obj  = new PayLicense
            {
            };

            if (id.HasValue)
            {
                obj        = payLicenseService.GetEntityById(id.Value);
                ProCitName = areaService.GetOne(obj.ProvinceId).Title + "/" + areaService.GetOne(obj.CityId).Title;
                Business business1 = businessService.GetOneByWhere(o => o.ById == obj.BusinessId1);
                Business business2 = businessService.GetOneByWhere(o => o.ById == obj.BusinessId2);
                if (business1 != null)
                {
                    BusName = business1.Title;
                    if (business2 != null)
                    {
                        BusName = BusName + "/" + business2.Title;
                    }
                }
                traders     = tradersService.GetEntityByWhere(o => o.CID == obj.CID);
                bankAccount = bankAccountService.GetEntityByWhere(o => o.LicenseId == obj.LicenseId);
                bankAccount.BankCityName = payLicenseService.getCityTitle(bankAccount.BankCityId);
                short moduleNum = Convert.ToInt16(ApproveLogNum.支付许可);
                logList = approveLogService.getList(obj.LicenseId);
                url1    = Tool.getPLicensePicPath(obj.LicenseId, 1) + obj.ECertificateUrl1;
                url2    = Tool.getPLicensePicPath(obj.LicenseId, 2) + obj.ECertificateUrl2;
                url3    = Tool.getPLicensePicPath(obj.LicenseId, 3) + obj.IDCardUrl1;
                url4    = Tool.getPLicensePicPath(obj.LicenseId, 4) + obj.IDCardUrl2;
            }
            //指派人
            ViewBag.user = ListToSelect(tradersService.getUserList().Select(o => new SelectListItem()
            {
                Value = o.UserId, Text = o.FullName
            }), emptyTitle: "请选择");
            //经营类目
            ViewBag.BusinessScopeId = tradersService.getBusinessList();
            //所属体系
            ViewBag.SourceT = EnumToSelect(typeof(PaySourceType), emptyTitle: "请选择");
            //省市名称
            ViewBag.ProvinceCityName = ProCitName;
            //企业性质
            ViewBag.Nature = ListToSelect(tradersService.getDataList(500).Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");
            //一二级类目名称
            ViewBag.Bus1Bus2Name = BusName;
            //商户资料
            ViewBag.Tra = traders;
            //商家结算账户
            ViewBag.bank = bankAccount;
            //审核日志
            ViewBag.logList = logList;
            //资质或证件
            ViewBag.url1 = url1;
            //企业证件
            ViewBag.url2 = url2;
            //身份证正面
            ViewBag.url3 = url3;
            //身份证反面
            ViewBag.url4 = url4;
            //结算账户状态
            ViewBag.BankState = BankState;
            return(View(obj.IsNullThrow()));
        }
Example #17
0
        //[SysPermissionValidate(67)]
        public ActionResult Save(int?id, int all = 0)
        {
            //0是全部显示,1是部分显示
            ViewBag.all = all;

            //商户分类
            ViewBag.TraderType = ListToSelect(tradersService.getTraderTypeList().Select(o => new SelectListItem()
            {
                Value = o.TraderTypeId.ToString(), Text = o.Title
            }), emptyTitle: "请选择");

            //经营模式
            ViewBag.ModeId = ListToSelect(tradersService.getDataList().Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");

            //经营类目
            ViewBag.BusinessScopeId = tradersService.getBusinessList();

            //跟踪状态
            ViewBag.StautsId = ListToSelect(tradersService.getDataList(205).Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");

            var obj = new Traders {
                BusinessScopeId   = "",
                Pay               = "",
                CurrentProvinceId = 15
            };

            if (id.HasValue)
            {
                obj = tradersService.GetOne(id.Value);
                obj.BusinessScopeId = obj.BusinessScopeId.IsNullOrEmpty() ? "" : obj.BusinessScopeId;
                obj.Pay             = obj.Pay.IsNullOrEmpty() ? "" : obj.Pay;
            }
            //登记人ID
            obj.CreateUID = obj.CreateUID.IsNullOrEmpty() ? CurrentUser.UID : obj.CreateUID;
            //登记人
            ViewBag.Create = tradersService.getFullName(obj.CreateUID);
            //采购意向清单
            ViewBag.OrderList = tradersService.getOrderList(obj.CID);

            //测试
            List <ViewOrderList> llwefe = tradersService.getOrderList(obj.CID);

            //回访小结
            ViewBag.VisitTrack = visitTrackService.getVisitTrackList(obj.CID);
            //设备分类
            ViewBag.DeviceClass = ListToSelect(tradersService.getDataList(197).Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");
            //业务员
            ViewBag.user = ListToSelect(tradersService.getUserList().Select(o => new SelectListItem()
            {
                Value = o.UserId, Text = o.FullName, Selected = (o.UserId == CurrentUser.UID && all > 0)
            }), emptyTitle: "请选择");
            //支付方式
            ViewBag.pay = tradersService.getDataList(300);
            //现有门店数量
            ViewBag.storeNum = ListToSelect(tradersService.getDataList(320).Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");
            //每门店人均数
            ViewBag.averageNum = ListToSelect(tradersService.getDataList(340).Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");
            //采购意向清单单位
            ViewBag.OrderUnit = ListToSelect(tradersService.getDataList(360).Select(o => new SelectListItem()
            {
                Value = o.DicSN.ToString(), Text = o.Title
            }), emptyTitle: "请选择");
            return(View(obj.IsNullThrow()));
        }
Example #18
0
        public ActionResult Save(Traders traders, string h_OrderList, string h_VisitTrack, string[] BusinessScopeId, string[] Pay)
        {
            var op = tradersService.Save(traders, h_OrderList, h_VisitTrack, BusinessScopeId, Pay);

            return(new OpActionResult(op));
        }
Example #19
0
        public bool AcceptTrade(Guid offerId)
        {
            var buyer = GetCurrentTraderInfo();

            if (buyer == null)
            {
                Log.Warning("Failed to accept trade offer {TradeOfferId} for session {SessionId} because no user is logged on", offerId, OperationContext.Current.SessionId);
            }

            if (!TradeOffers.TryGetValue(offerId, out TradeOffer tradeOffer))
            {
                Log.Information("Trader {UserId} attempted to accept trade offer {TradeOfferId} but it was not available", buyer.Id, offerId);
                return(false);
            }

            if (!Traders.TryGetValue(tradeOffer.SellerId, out Trader seller))
            {
                Log.Information("Trader {UserId} attempted to accept trade offer {TradeOfferId} but seller ({UserId}) was not found.", buyer.Id, offerId, tradeOffer.SellerId);
                return(false);
            }

            // Lock the buyer to make sure that they don't make multiple transactions at once, potentially overspending
            lock (buyer)
            {
                if (!TraderHasFunds(buyer, tradeOffer.Asking))
                {
                    Log.Information("Trader {UserId} attempted to accept trade offer {TradeOfferId} but had insufficient funds", buyer.Id, offerId);
                    return(false);
                }

                // If all else checks out (buyer funds, seller presence, etc.), attempt to grab the trade offer and remove
                // it from availabilty
                if (!TradeOffers.TryRemove(offerId, out tradeOffer))
                {
                    Log.Information("Trader {UserId} attempted to accept trade offer {TradeOfferId} but it was not available (2)", buyer.Id, offerId);
                    return(false);
                }

                // Transfer beans
                RemoveBeans(buyer, tradeOffer.Asking);
            }

            // Beans can be added without locking. Nested locks for the buyer and seller would cause deadlocks.
            AddBeans(buyer, tradeOffer.Offering);
            AddBeans(seller, tradeOffer.Asking);
            Log.Information("Trader {UserId} has accepted trade offer {TradeOfferId} from seller {UserId}", buyer.Id, offerId, tradeOffer.SellerId);

            // Alert traders that the trade has been accepted and is no longer available
            var invalidCallbacks = new List <string>();

            foreach (var callback in Callbacks)
            {
                try
                {
                    callback.Value?.TradeAccepted(tradeOffer, buyer.Id);
                    callback.Value?.RemoveTradeOffer(offerId);
                }
                catch (CommunicationException)
                {
                    Log.Warning("Session {SessionId}'s channel closed unexpectedly; will remove from callback list", callback.Key);
                    invalidCallbacks.Add(callback.Key);
                }
            }
            foreach (var id in invalidCallbacks)
            {
                Callbacks.TryRemove(id, out _);
            }

            return(true);
        }