public async Task <Result> GetOrderList(In inData)
        {
            DBHelper   db            = new DBHelper();
            List <int> position_list = await PositionDao.GetChildId(db, inData.user.position_id);

            position_list.Add(inData.user.position_id);
            position_list = position_list.Distinct().ToList();
            List <t_procurement> order_list = await ProcurementDao.GetList(db, position_list.ToArray());

            List <OrderItemResult> order_result_list = new List <OrderItemResult>();

            foreach (var item in order_list)
            {
                order_result_list.Add(new OrderItemResult
                {
                    add_time        = item.add_time.ToString("yyyy-MM-dd HH:mm:ss"),
                    department_name = await DepartmentDao.GetDepartmentName(db, item.department_id),
                    position_name   = await Dao.User.PositionDao.GetPositionName(db, item.position_id),
                    name            = await UserDao.GetUserRealName(db, item.id),
                    order_sn        = item.order_sn,
                    remark          = item.remark,
                    status          = item.status
                });
            }

            Result <List <OrderItemResult> > result = new Result <List <OrderItemResult> > {
                result = true, msg = "OK", data = order_result_list
            };

            return(result);
        }
        public IHttpActionResult deletePositions(Position c)
        {
            //  Position c1 = new Position(Convert.ToInt32(d),"ztt", "ztt", 0, "1975-06-04 00:00:00.000");
            int changeLine = PositionDao.deletePositions(c);

            return(Ok(changeLine));
        }
        public IHttpActionResult Updatestockprice(dynamic price)
        {
            PriceHistory history = new PriceHistory();

            history.Isin       = price.isin;
            history.OfferPrice = price.OfferPrice;
            history.Type       = "Stock";
            history.BidPrice   = price.BidPrice;
            history.Date       = DateTime.Now;

            int changeline = PriceHistoryDao.setPriceHistory(history);

            List <Position> positions = PositionDao.getPositionsByIsin(history.Isin);
            Portfolio       portfolio = new Portfolio();
            int             changline = 0;

            foreach (Position p in positions)
            {
                portfolio = PortfolioDao.getPortfoliosById(p.PortfolioId);
                double           pnl         = Getportfoliopnl(portfolio.PortfolioId);
                PortfolioHistory porthistory = new PortfolioHistory();
                porthistory.PNL         = pnl;
                porthistory.Date        = DateTime.Now;
                porthistory.PortfolioId = portfolio.PortfolioId;
                int line = PortfolioHistoryDao.setPortfolioHistory(porthistory);
                changline++;
            }

            return(Ok("success"));
        }
        public IHttpActionResult updatePositionById(Position c)
        {
            Position c1 = new Position {
                PositionId = 1, Quantity = 12, Price = 21, Isin = 1, Type = "not"
            };
            int changeLine = PositionDao.updatePositions(c1);

            return(Ok(changeLine));
        }
Beispiel #5
0
        public ActionResult <Response> GetPositions()
        {
            PositionDao position = new PositionDao();

            return(new Response()
            {
                data = position.getPositionList(),
                message = "Ok"
            });
        }
        public ActionResult Delete(string ma)
        {
            if (!new PermissionAttribute().PermissionAuthorization("Delete", "POSITION"))
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
            bool status = new PositionDao().Delete(ma);

            return(Json(new { status = status }, JsonRequestBehavior.AllowGet));
        }
        public IHttpActionResult Get(int id)
        {
            Position p = PositionDao.getPositionsById(id);

            if (p != null)
            {
                return(Ok(p));
            }
            else
            {
                return(NotFound());
            }
        }
        public IHttpActionResult GetPositionsbyPortID(int portfolioid)
        {
            List <Position>     positionlist = PositionDao.getPositionsByPortfolioId(portfolioid);
            List <Positionlist> returnlist   = new List <Positionlist>();

            foreach (Position p in positionlist)
            {
                double porfit = 0;
                porfit = Convert.ToDouble((PriceHistoryDao.getLastPriceHistorysByisin(p.Isin).OfferPrice - p.Price) / p.Price);
                returnlist.Add(new Positionlist(p.PositionId, getSecurityname(p.Isin, p.Type), p.Price, p.Quantity, PriceHistoryDao.getLastPriceHistorysByisin(p.Isin).OfferPrice, porfit.ToString("P"), p.Type, p.Isin));
            }

            return(Ok(returnlist));
        }
        public IHttpActionResult GetPositionsbyPortID(int portfolioid)
        {
            List <Position>     positionlist = PositionDao.getPositionsByPortfolioId(portfolioid);
            List <Positionlist> returnlist   = new List <Positionlist>();

            foreach (Position p in positionlist)
            {
                double porfit = 0;
                porfit = Convert.ToDouble((PriceHistoryDao.getLastPriceHistorysByisin(p.Isin).Price - p.Price) / p.Price);
                returnlist.Add(new Positionlist(p.PositionId, StockDao.getStocksById(p.Isin).Name, p.Quantity, porfit));
            }


            return(Ok(returnlist));
        }
Beispiel #10
0
        public IHttpActionResult GetPercentage(int portid)
        {
            List <Position>           list       = PositionDao.getPositionsByPortfolioId(portid);
            List <PositionPercentage> returnlist = new List <PositionPercentage>();
            var query = from p in list
                        orderby p.Price * p.Quantity
                        select p;

            foreach (Position p in query)
            {
                returnlist.Add(new PositionPercentage(p.Price * p.Quantity, getSecurityname(p.Isin, p.Type)));
            }


            return(Ok(returnlist));
        }
        public static double Getportfoliopnl(int portid)
        {
            decimal         amountbefore = 0;
            decimal         amountafter  = 0;
            double          pnl          = 0;
            List <Position> posilist     = PositionDao.getPositionsByPortfolioId(portid);

            foreach (Position p in posilist)
            {
                string isin = p.Isin;
                amountbefore += p.Quantity * p.Price;
                amountafter  += p.Quantity * PriceHistoryDao.getLastPriceHistorysByisin(isin).OfferPrice;
            }
            pnl = Convert.ToDouble((amountafter - amountbefore) / amountbefore);
            return(pnl);
        }
 public ActionResult Save(PositionModel model)
 {
     if (ModelState.IsValid)
     {
         bool status = false;
         if (model.isUpdate)
         {
             status = new PositionDao().Update(model);
         }
         else
         {
             status = new PositionDao().Save(model);
         }
         return(Json(new { status = status }, JsonRequestBehavior.AllowGet));
     }
     return(PartialView("_DetailPosition", model));
 }
        public IHttpActionResult addPositionlist(dynamic c)
        {
            int      changeline = 0;
            Position position   = new Position();

            foreach (var p in c)
            {
                position.Quantity    = p.Quantity;
                position.PortfolioId = p.PortfolioId;
                position.Isin        = p.Isin;
                position.Type        = p.Type;
                position.Price       = PriceHistoryDao.getLastPriceHistorysByisin(position.Isin).BidPrice;
                int line = PositionDao.setPosition(position);
                changeline += line;
            }
            return(Ok(changeline));
        }
        public IHttpActionResult addPositions(dynamic c)
        {
            Portfolio p = PortfolioDao.getPortfolioBySomething(new Portfolio {
                Name = c.Name, UserId = c.UserId
            });
            Position position = new Position();

            position.Isin        = c.Isin;
            position.PortfolioId = p.PortfolioId;
            position.Price       = PriceHistoryDao.getLastPriceHistorysByisin(position.Isin).BidPrice;
            position.Quantity    = c.Quantity;
            position.Type        = c.Type;

            int changeLine = PositionDao.setPosition(c);

            return(Ok(changeLine));
        }
Beispiel #15
0
        public async Task <Result> Login(In <LoginIn> inData)
        {
            Result result = await VerifyLogin(inData.data);

            if (!result.result)
            {
                return(result);
            }
            DBHelper db   = new DBHelper();
            t_user   user = await UserDao.GetUser(db, inData.data.user_name);

            bool password_flag = VerifyCommon.VerifyPassword(user.id, user.salt, user.password, inData.data.password);

            if (!password_flag)
            {
                db.Close();
                result.msg = "用户名或密码错误";
                return(result);
            }

            LoginResult loginResult = new LoginResult
            {
                user_id         = user.id,
                department_name = await DepartmentDao.GetDepartmentName(db, user.department_id),
                position_name   = await PositionDao.GetPositionName(db, user.position_id),
                department_id   = user.department_id,
                position_id     = user.position_id,
                name            = user.real_name,
                token           = ConcealCommon.EncryptDES(user.id + DateTime.Now.ToString("yyy-MM-dd HH:mm:ss:ms")),
                user_name       = user.user_name,
            };

            db.Close();

            await RedisHelper.Instance.SetStringKeyAsync($"user-multi-token:{loginResult.token}", loginResult, TimeSpan.FromHours(4));

            Result <LoginResult> result1 = new Result <LoginResult>
            {
                data   = loginResult,
                result = true,
                msg    = "登录成功"
            };

            return(result1);
        }
Beispiel #16
0
        public async Task <Result> AddUser(In <AddUserIn> inData)
        {
            Result result = await VerifyAddUser(inData.data);

            if (!result.result)
            {
                return(result);
            }
            DBHelper db = new DBHelper();

            try
            {
                db.BeginTransaction();
                int position_id   = int.Parse(inData.data.position_id);
                int department_id = await PositionDao.GetDepartmentId(db, position_id);

                int user_id = await UserDao.AddUser(db, inData.data, department_id);

                if (user_id <= 0)
                {
                    db.Rollback();
                    result.msg = "用户添加失败[1]";
                    return(result);
                }
                bool update_user_pwd_flag = await UserDao.UpdatePassword(db, user_id, inData.data.password);

                if (!update_user_pwd_flag)
                {
                    db.Rollback();
                    result.msg = "用户添加失败[2]";
                    return(result);
                }

                db.Commit();
                result.msg    = "添加成功";
                result.result = true;
            }
            catch (Exception e)
            {
                db.Rollback();
                result.msg = "用户添加失败[3]";
            }
            return(result);
        }
Beispiel #17
0
        public static double Caculatepnl(int portfolitid)
        {
            decimal         amountbefore = 0;
            decimal         amountafter  = 0;
            double          pnl          = 0;
            List <Position> posilist     = PositionDao.getPositionsByPortfolioId(portfolitid);

            foreach (Position p in posilist)
            {
                if (p.Type == "Stock")
                {
                    int isin = p.Isin;
                    amountafter  += p.Quantity * p.Price;
                    amountbefore += p.Quantity * PriceHistoryDao.getLastPriceHistorysByisin(isin).Price;
                }
                else
                {
                }
            }
            pnl = Convert.ToDouble((amountafter - amountbefore) / amountbefore);
            return(pnl);
        }
        public ActionResult Detail(string ma)
        {
            PositionModel model = new PositionModel();

            if (!string.IsNullOrWhiteSpace(ma))
            {
                if (!new PermissionAttribute().PermissionAuthorization("Update", "POSITION"))
                {
                    return(Json(false, JsonRequestBehavior.AllowGet));
                }

                model          = new PositionDao().detail(ma);
                model.isUpdate = true;
            }
            else
            {
                if (!new PermissionAttribute().PermissionAuthorization("Create", "POSITION"))
                {
                    return(Json(false, JsonRequestBehavior.AllowGet));
                }
            }
            return(PartialView("_DetailPosition", model));
        }
            public List <Application> GetApplicationsByPosition(int positionID)
            {
                Position position = new PositionDao().GetById(positionID, false);

                return(GetApplicationsByPosition(position));
            }
Beispiel #20
0
        /// <summary>
        /// 验证添加用户数据
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private async Task <Result> VerifyAddUser(AddUserIn data)
        {
            Result result = new Result();

            if (data == null)
            {
                result.msg = "参数错误";
                return(result);
            }
            if (string.IsNullOrWhiteSpace(data.name?.Trim()))
            {
                result.msg = "姓名不能为空";
                return(result);
            }
            data.name = data.name?.Trim();
            if (!VerifyCommon.Name(data.name))
            {
                result.msg = "姓名只能为中文";
                return(result);
            }
            if (data.name.Length < 2 || data.name.Length > 4)
            {
                result.msg = "姓名只能为2-4个字符";
                return(result);
            }
            if (string.IsNullOrWhiteSpace(data.user_name?.Trim()))
            {
                result.msg = "用户名不能为空";
                return(result);
            }
            data.user_name = data.user_name?.Trim();
            if (!VerifyCommon.UserName(data.user_name))
            {
                result.msg = "用户名只能由英文、数字、下划线组成";
                return(result);
            }
            if (data.user_name.Length < 5 || data.user_name.Length > 12)
            {
                result.msg = "用户名只能为5-12个字符";
                return(result);
            }
            if (string.IsNullOrWhiteSpace(data.password?.Trim()))
            {
                result.msg = "密码不能为空";
                return(result);
            }
            data.password = data.password?.Trim();
            if (!VerifyCommon.Password(data.password))
            {
                result.msg = "密码只能由英文、数字、下划线组成";
                return(result);
            }
            if (data.password.Length < 6 || data.password.Length > 18)
            {
                result.msg = "密码只能为6-18个字符";
                return(result);
            }
            if (string.IsNullOrWhiteSpace(data.position_id?.Trim()))
            {
                result.msg = "请填写职位";
                return(result);
            }
            if (!int.TryParse(data.position_id, out int position_id) || position_id <= 0)
            {
                result.msg = "职位信息错误";
                return(result);
            }
            DBHelper db = new DBHelper();
            bool     position_exist_flag = await PositionDao.IsExist(db, position_id);

            db.Close();
            if (!position_exist_flag)
            {
                result.msg = "职位不存在";
                return(result);
            }

            result.result = true;
            return(result);
        }
 public IHttpActionResult Get()
 {
     return(Ok(PositionDao.getPositions()));
 }
        public IHttpActionResult addPositions(Position c)
        {

            int changeLine = PositionDao.setPosition(c);
            return Ok(changeLine);
        }
        public IHttpActionResult updatePositionById(Position c)
        {
            int changeLine = PositionDao.updatePositions(c);

            return(Ok(changeLine));
        }
        public ActionResult Load()
        {
            var data = new PositionDao().load();

            return(Json(new { data = data }, JsonRequestBehavior.AllowGet));
        }