Example #1
0
        public ActionResult <VA_HandleAddResModel> MyDutySign(VA_HandleAddViewModel AddViewModel)
        {
            int Add_Count = 0;
            VA_HandleAddResModel AddResModel = new VA_HandleAddResModel();

            Add_Count = mydutyClaimInfoService.HandleAdd(AddViewModel);

            if (Add_Count == 1)
            {
                AddResModel.IsSuccess                  = true;
                AddResModel.AddCount                   = Add_Count;
                AddResModel.baseViewModel.Message      = "签到成功";
                AddResModel.baseViewModel.ResponseCode = 200;
            }
            else if (Add_Count == 4)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "您未认领当前时段的值班信息。";
                AddResModel.baseViewModel.ResponseCode = 900;
            }
            else if (Add_Count == 5)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "请在有效时间内进行签到签退";
                AddResModel.baseViewModel.ResponseCode = 800;
            }
            else if (Add_Count == 6)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "您还未进行注册请先注册";
                AddResModel.baseViewModel.ResponseCode = 700;
            }
            else if (Add_Count == 7)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "签到地址有误签到失败";
                AddResModel.baseViewModel.ResponseCode = 600;
            }
            else if (Add_Count == 8)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "活动地址有误签到失败";
                AddResModel.baseViewModel.ResponseCode = 500;
            }
            else if (Add_Count == 9)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "签到地址不在活动范围500米内";
                AddResModel.baseViewModel.ResponseCode = 400;
            }
            else
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "签到失败";
                AddResModel.baseViewModel.ResponseCode = 300;
            }
            return(Ok(AddResModel));
        }
Example #2
0
        //值班认领 签到、签退
        public int HandleAdd(VA_HandleAddViewModel AddViewModel)
        {
            int count = 0;
            MydutyClaim_Sign model = new MydutyClaim_Sign();
            //是否注册
            var VolunteerInfo = _IVolunteerInfoRepository.SearchInfoByID(AddViewModel.VID);

            if (VolunteerInfo == null)
            {
                count = 6;
                return(count);
            }

            double points = 0;
            ////认领得 值班信息
            MydutyClaim_Info claim_Info = _IMydutyClaimInfoRepository.GetByUidandID(AddViewModel.VID, AddViewModel.ContentID);

            if (claim_Info != null)
            {
                //判断是否在值班区间内进行打卡 20200622  值班时间前后15 分钟均可签到签退
                DateTime start = DateTime.Parse(claim_Info.StartDutyTime.ToString());
                DateTime end   = DateTime.Parse(claim_Info.EndDutyTime.ToString());

                if ((DateTime.Now >= start.AddMinutes(-15) && DateTime.Now <= start.AddMinutes(15) && AddViewModel.type == "in") ||
                    (DateTime.Now >= end && DateTime.Now <= end.AddMinutes(15) && AddViewModel.type == "out"))
                {
                    OndutyClaims_Info ondutyClaims = _claimsInfoRepository.GetByID(claim_Info.OndutyClaims_InfoId);
                    if (ondutyClaims != null)
                    {
                        Normalization_Info Normalization = _normalizationInfo.NormalizationByID(ondutyClaims.Normalization_InfoId);
                        if (Normalization != null)
                        {
                            points = double.Parse(Normalization.PointsEarned);
                        }

                        model.OndutyClaims_InfoId = ondutyClaims.id;
                        model.MydutyClaim_InfoID  = AddViewModel.ContentID;
                        //获取小区经纬度信息
                        List <User_Depart> departAll = _IVolunteerInfoRepository.GetDepartAll();

                        var departList = _IMapper.Map <List <User_Depart>, List <UserDepartSearchMidModel> >(departAll);

                        List <UserDepartSearchMidModel> result = new List <UserDepartSearchMidModel>();
                        result.AddRange(departList.Where(p => p.Code == ondutyClaims.SubdistrictID).ToList());
                        UserDepartSearchMidModel depart = new UserDepartSearchMidModel();
                        if (result.Count > 0)
                        {
                            depart = result.First();
                        }


                        //获取 经纬度
                        if (!String.IsNullOrEmpty(AddViewModel.Checklongitude) && !String.IsNullOrEmpty(AddViewModel.Checklatitude))
                        {
                            //进行地址判断 活动地址方圆1000米可以签到
                            if (!String.IsNullOrEmpty(depart.longitude) && !String.IsNullOrEmpty(depart.latitude))
                            {
                                var checks = CheckAddress(double.Parse(depart.longitude), double.Parse(depart.latitude), double.Parse(AddViewModel.Checklongitude), double.Parse(AddViewModel.Checklatitude), 1);
                                if (!checks)
                                {
                                    count = 9;
                                    return(count);
                                }
                            }
                            else
                            {
                                count = 8;
                                return(count);
                            }
                        }
                        else
                        {
                            count = 7;
                            return(count);
                        }
                    }
                }
                else
                {
                    count = 5;
                    return(count);
                }
            }
            else
            {
                count = 4;
                return(count);
            }

            DEncrypt encrypt = new DEncrypt();

            //保存签到签退信息
            model.id             = Guid.NewGuid().ToString();
            model.Userid         = AddViewModel.VID;
            model.UserName       = encrypt.Decrypt(VolunteerInfo.Name);
            model.CheckTime      = DateTime.Now;
            model.type           = AddViewModel.type;
            model.CreateUser     = VolunteerInfo.ID;
            model.CreateDate     = DateTime.Now;
            model.CheckAddress   = AddViewModel.CheckAddress;
            model.Checklongitude = AddViewModel.Checklongitude;
            model.Checklatitude  = AddViewModel.Checklatitude;


            _mydutyClaim_Sign.Add(model);
            count = _mydutyClaim_Sign.SaveChanges();
            if (count == 1)
            {
                string id = Guid.NewGuid().ToString();

                //签退 时按时长积分继续计算
                if (AddViewModel.type == "out")
                {
                    Volunteer_Score score = new Volunteer_Score();
                    score.ID         = id;
                    score.ContentID  = AddViewModel.ContentID;
                    score.tableName  = "MydutyClaim_Info";
                    score.VID        = AddViewModel.VID;
                    score.type       = "out";
                    score.Score      = points;
                    score.CreateUser = AddViewModel.VID;
                    score.CreateDate = DateTime.Now;

                    _IVolunteer_ScoreRepository.Add(score);
                    int b = _IVolunteer_ScoreRepository.SaveChanges();
                    if (b > 0)
                    {
                        //插入到  泰便利积分表  20200622
                        ET_points ipointMiddle = new ET_points();

                        ipointMiddle.ID         = id;
                        ipointMiddle.uid        = AddViewModel.VID;
                        ipointMiddle.points     = score.Score;
                        ipointMiddle.type       = "MydutySign";
                        ipointMiddle.tableName  = "TedaVolunteerDB.dbo.Volunteer_Score";
                        ipointMiddle.CreateUser = AddViewModel.VID;
                        ipointMiddle.CreateDate = DateTime.Now;
                        eT_PointsRepository.Add(ipointMiddle);
                        int j = eT_PointsRepository.SaveChanges();
                    }
                }
            }

            return(count);
        }
        public ActionResult <VA_HandleAddResModel> VA_HandleAdd(VA_HandleAddViewModel AddViewModel)
        {
            int Add_Count = 0;
            VA_HandleAddResModel AddResModel = new VA_HandleAddResModel();

            Add_Count = _VolunteerActivityService.HandleAdd(AddViewModel);
            if (Add_Count == 1)
            {
                AddResModel.IsSuccess                  = true;
                AddResModel.AddCount                   = Add_Count;
                AddResModel.baseViewModel.Message      = "操作成功";
                AddResModel.baseViewModel.ResponseCode = 200;
            }
            else if (Add_Count == 4)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "已签退,无法多次签退。";
                AddResModel.baseViewModel.ResponseCode = 900;
            }
            else if (Add_Count == 5)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "必填参数为空。";
                AddResModel.baseViewModel.ResponseCode = 800;
            }
            else if (Add_Count == 6)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "您还未进行注册请先注册。";
                AddResModel.baseViewModel.ResponseCode = 700;
            }
            else if (Add_Count == 7)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "签到地址有误签到失败。";
                AddResModel.baseViewModel.ResponseCode = 600;
            }
            else if (Add_Count == 8)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "活动地址有误签到失败。";
                AddResModel.baseViewModel.ResponseCode = 500;
            }
            else if (Add_Count == 9)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "签到地址不在活动范围500米内。";
                AddResModel.baseViewModel.ResponseCode = 400;
            }
            else if (Add_Count == 3)
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "签退地址不在活动范围500米内。";
                AddResModel.baseViewModel.ResponseCode = 400;
            }
            else
            {
                AddResModel.IsSuccess                  = false;
                AddResModel.AddCount                   = 0;
                AddResModel.baseViewModel.Message      = "操作失败。";
                AddResModel.baseViewModel.ResponseCode = 300;
            }
            return(Ok(AddResModel));
        }