Ejemplo n.º 1
0
        public object GetDigitDestroy(Dictionary <string, object> dicParas)
        {
            try
            {
                string errMsg      = string.Empty;
                string destroyTime = dicParas.ContainsKey("destroyTime") ? (dicParas["destroyTime"] + "") : string.Empty;
                string iCardID     = dicParas.ContainsKey("iCardID") ? (dicParas["iCardID"] + "") : string.Empty;
                XCCloudUserTokenModel userTokenKeyModel = (XCCloudUserTokenModel)dicParas[Constant.XCCloudUserTokenModel];
                string storeId = (userTokenKeyModel.DataModel as UserDataModel).StoreID;

                if (!string.IsNullOrEmpty(destroyTime))
                {
                    try
                    {
                        Convert.ToDateTime(destroyTime);
                    }
                    catch
                    {
                        errMsg = "销毁时间参数格式不正确";
                        return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg));
                    }
                }

                IData_DigitCoinDestroyService data_DigitCoinDestroyService = BLLContainer.Resolve <IData_DigitCoinDestroyService>();
                var query = data_DigitCoinDestroyService.GetModels(p => p.StoreID.Equals(storeId, StringComparison.OrdinalIgnoreCase));
                if (!string.IsNullOrEmpty(destroyTime))
                {
                    var dt = Convert.ToDateTime(destroyTime);
                    query = query.Where(w => DbFunctions.DiffDays(w.DestroyTime, dt) == 0);
                }

                if (!string.IsNullOrEmpty(iCardID))
                {
                    query = query.Where(w => w.ICCardID.Contains(iCardID));
                }

                IBase_UserInfoService base_UserInfoService = BLLContainer.Resolve <IBase_UserInfoService>();
                var linq = base_UserInfoService.GetModels(p => p.UserType == (int)UserType.Store).Select(o => new { UserID = o.UserID, LogName = o.LogName, RealName = o.RealName });

                var result = query.ToList().Select(o => new
                {
                    ID          = o.ID,
                    StoreID     = o.StoreID,
                    ICardID     = o.ICCardID,
                    DestroyTime = o.DestroyTime,
                    UserID      = o.UserID,
                    Note        = o.Note,
                    LogName     = linq.SingleOrDefault(p => p.UserID == o.UserID).LogName,
                    RealName    = linq.SingleOrDefault(p => p.UserID == o.UserID).RealName
                });

                return(ResponseModelFactory.CreateSuccessModel(isSignKeyReturn, result.ToList()));
            }
            catch (Exception e)
            {
                return(ResponseModelFactory.CreateReturnModel(isSignKeyReturn, Return_Code.F, e.Message));
            }
        }
Ejemplo n.º 2
0
        public object AddDigitDestroy(Dictionary <string, object> dicParas)
        {
            try
            {
                string errMsg  = string.Empty;
                string iCardID = dicParas.ContainsKey("iCardID") ? (dicParas["iCardID"] + "") : string.Empty;
                XCCloudUserTokenModel userTokenKeyModel = (XCCloudUserTokenModel)dicParas[Constant.XCCloudUserTokenModel];
                string storeId = (userTokenKeyModel.DataModel as UserDataModel).StoreID;
                int    userId  = Convert.ToInt32(userTokenKeyModel.LogId);

                if (string.IsNullOrEmpty(iCardID))
                {
                    errMsg = "数字币编号不能为空";
                    return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg));
                }

                if (iCardID.Length > 16)
                {
                    errMsg = "数字币编号长度不能超过16位";
                    return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg));
                }

                IData_DigitCoinService data_DigitCoinService = BLLContainer.Resolve <IData_DigitCoinService>();
                if (!data_DigitCoinService.Any(a => a.ICardID.Equals(iCardID, StringComparison.OrdinalIgnoreCase)))
                {
                    errMsg = "该卡档案不存在";
                    return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg));
                }

                //开启EF事务
                using (TransactionScope ts = new TransactionScope())
                {
                    try
                    {
                        var data_DigitCoin = data_DigitCoinService.GetModels(p => p.ICardID.Equals(iCardID, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                        data_DigitCoin.Status = (int)DigitStatus.Cancel;
                        if (!data_DigitCoinService.Update(data_DigitCoin))
                        {
                            errMsg = "更新数字币档案失败";
                            return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg));
                        }

                        IData_DigitCoinDestroyService data_DigitCoinDestroyService = BLLContainer.Resolve <IData_DigitCoinDestroyService>();
                        Data_DigitCoinDestroy         data_DigitCoinDestroy        = new Data_DigitCoinDestroy();
                        data_DigitCoinDestroy.DestroyTime = DateTime.Now;
                        data_DigitCoinDestroy.ICCardID    = iCardID;
                        data_DigitCoinDestroy.StoreID     = storeId;
                        data_DigitCoinDestroy.UserID      = userId;
                        if (!data_DigitCoinDestroyService.Add(data_DigitCoinDestroy))
                        {
                            errMsg = "更新数据库失败";
                            return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg));
                        }

                        ts.Complete();
                    }
                    catch (Exception ex)
                    {
                        return(ResponseModelFactory.CreateReturnModel(isSignKeyReturn, Return_Code.F, ex.Message));
                    }
                }

                return(ResponseModelFactory.CreateSuccessModel(isSignKeyReturn));
            }
            catch (Exception e)
            {
                return(ResponseModelFactory.CreateReturnModel(isSignKeyReturn, Return_Code.F, e.Message));
            }
        }