예제 #1
0
 /// <summary>
 /// 更新数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>空</returns>
 /// <remarks>2014-01-08  朱家宏 创建</remarks>
 public override void Update(SpCouponCard entity)
 {
     Context.Update("SpCouponCard", entity)
     .AutoMap(o => o.SysNo)
     .Where("SysNo", entity.SysNo)
     .Execute();
 }
예제 #2
0
 /// <summary>
 /// 插入数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>新增记录编号</returns>
 /// <remarks>2014-01-08  朱家宏 创建</remarks>
 public override int Insert(SpCouponCard entity)
 {
     entity.SysNo = Context.Insert("SpCouponCard", entity)
                    .AutoMap(o => o.SysNo)
                    .ExecuteReturnLastId <int>("SysNo");
     return(entity.SysNo);
 }
예제 #3
0
        /// <summary>
        /// 导入excel
        /// </summary>
        /// <param name="stream">导入的excel stream format</param>
        /// <param name="operatorSysno">操作人员编号</param>
        /// <returns>封装的泛型result对象</returns>
        /// <remarks>2014-01-08 余勇 创建</remarks>
        public Result ImportExcel(Stream stream, int operatorSysno)
        {
            DataTable dt = null;

            var cols = DicColsMapping.Select(p => p.Value).ToArray();

            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (Exception ex)
            {
                //exception happened,some not caughted
                return(new Result
                {
                    Message = string.Format("数据导入错误,请选择正确的excel文件"),
                    Status = false
                });
            }
            if (dt == null)
            {
                //not all the cols mapped
                return(new Result
                {
                    Message = string.Format("请选择正确的excel文件!"),
                    Status = false
                });
            }
            var excellst    = new List <SpCouponCard>();
            var lstToInsert = new List <SpCouponCard>();
            var lstToUpdate = new List <SpCouponCard>();

            for (var i = 0; i < dt.Rows.Count; i++)
            {
                int excelRow = i + 2;
                if (cols.Any(p => (dt.Rows[i][p] == null || string.IsNullOrEmpty(dt.Rows[i][p].ToString()))))
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行数据不能有空值", excelRow),
                        Status = false
                    });
                }
                var cardTypeList  = SpCouponCardBo.Instance.GetAllTypeName().Select(p => p.SysNo);
                int typeSysNo     = 0;
                var cardTypeSysNo = dt.Rows[i][DicColsMapping["CardTypeSysNo"]].ToString();
                if (!int.TryParse(cardTypeSysNo, out typeSysNo))
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行优惠券卡类型ID必须为整数", excelRow),
                        Status = false
                    });
                }
                if (!cardTypeList.Contains(typeSysNo))
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行优惠券卡类型ID不在优惠卡类型范围内", excelRow),
                        Status = false
                    });
                }
                var couponCardNo = dt.Rows[i][DicColsMapping["CouponCardNo"]].ToString().Trim();
                if (couponCardNo.Length > 10)
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行优惠券卡号长度不应大于10", excelRow),
                        Status = false
                    });
                }

                var statusName = dt.Rows[i][DicColsMapping["Status"]].ToString().Trim();
                if (statusName != "启用" && statusName != "禁用")
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行状态的值应为启用或禁用", excelRow),
                        Status = false
                    });
                }
                var status = statusName == "启用" ? 1 : 0;
                var model  = new SpCouponCard
                {
                    CardTypeSysNo = typeSysNo,
                    CouponCardNo  = couponCardNo,
                    Status        = status
                };
                if (excellst.Any(p => p.CouponCardNo == couponCardNo))
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行优惠券卡号重复", excelRow),
                        Status = false
                    });
                }
                excellst.Add(model);
            }
            var lstExisted = DataAccess.Promotion.ISpCouponCardDao.Instance.GetAllSpCouponCard();

            foreach (var excelModel in excellst)
            {
                if (lstExisted.Any(e => e.CouponCardNo == excelModel.CouponCardNo))
                {
                    lstToUpdate.Add(excelModel);
                }
                else //insert
                {
                    lstToInsert.Add(excelModel);
                }
            }
            try
            {
                ISpCouponCardDao.Instance.CreateSpCouponCard(lstToInsert);
                ISpCouponCardDao.Instance.UpdateSpCouponCard(lstToUpdate);
            }
            catch (Exception ex)
            {
                SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Error, LogStatus.系统日志来源.后台, "导入优惠卡号",
                                         LogStatus.系统日志目标类型.促销, 0, ex, null, operatorSysno);
                return(new Result
                {
                    Message = string.Format("数据更新错误:{0}", ex.Message),
                    Status = false
                });
            }
            if (lstToInsert.Count == 0 && lstToUpdate.Count == 0)
            {
                return(new Result
                {
                    Message = "导入的数据为空!",
                    Status = false
                });
            }
            var msg = lstToInsert.Count > 0 ? string.Format("成功导入{0}条数据!", lstToInsert.Count) : "";

            msg += lstToUpdate.Count > 0 ? string.Format("成功修改{0}条数据!", lstToUpdate.Count) : "";
            return(new Result
            {
                Message = msg,
                Status = true
            });
        }
예제 #4
0
 /// <summary>
 /// 更新数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>空</returns>
 /// <remarks>2014-01-08  朱家宏 创建</remarks>
 public abstract void Update(SpCouponCard entity);
예제 #5
0
 /// <summary>
 /// 插入数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>新增记录编号</returns>
 /// <remarks>2014-01-08  朱家宏 创建</remarks>
 public abstract int Insert(SpCouponCard entity);