public JsonResult Save(Wjtc model)
        {
            ReturnModel returnModel;

            if (model.ID.Equals(0))
            {
                returnModel = wjtcService.Insert(model);
                return(Json(returnModel, JsonRequestBehavior.AllowGet));
            }

            returnModel = wjtcService.Update(model);
            return(Json(returnModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult AddOrEdit(int id = 0, string yybh = "")
        {
            Wjtc tc = new Wjtc();

            if (id > 0)
            {
                tc = wjtcService.GetEntity(id);
            }
            //套餐选项
            var tcxx = wjtcService.GetTcSelect(yybh);

            ViewBag.Tcxx = tcxx;
            //标签选项
            var bqxx = new WjbqService().GetAllList();

            ViewBag.Bqxx = bqxx;
            ViewBag.Yybh = yybh;
            return(View(tc));
        }
        /// <summary>
        /// 修改
        /// </summary>
        /// <returns></returns>
        public ReturnModel Update(Wjtc model)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(model.TCID))
                {
                    return(new ReturnModel {
                        Code = 201, Msg = "套餐不能为空"
                    });
                }
                StringBuilder sbSql = new StringBuilder();
                using (IDbConnection conn = new DapperConnection().DbConnection)
                {
                    var transaction = conn.BeginTransaction();
                    try
                    {
                        //判断存在
                        sbSql.Append("SELECT * FROM WJ_TC WHERE Id=@Id AND SFQY=1");
                        Wjbq existModel = conn.QueryFirstOrDefault <Wjbq>(sbSql.ToString(), new { Id = model.ID }, transaction);
                        if (existModel == null)
                        {
                            return(new ReturnModel {
                                Code = 201, Msg = "标签不存在"
                            });
                        }

                        //判断重名
                        sbSql.Clear();
                        sbSql.Append("SELECT * FROM WJ_TC WHERE ID<>@ID AND TCID=@TCID and SFQY=1");
                        Wjbq sameName = conn.QueryFirstOrDefault <Wjbq>(sbSql.ToString(), model, transaction);
                        if (sameName != null)
                        {
                            return(new ReturnModel {
                                Code = 201, Msg = "存在相同名称的套餐"
                            });
                        }

                        //保存更新
                        sbSql.Clear();
                        model.SFQY = 1;
                        sbSql.Append("UPDATE WJ_TC SET TCID = @TCID, SYRQ = @SYRQ, TCZY = @TCZY, SFQY = @SFQY WHERE ID = @ID;");
                        sbSql.Append("DELETE FROM WJ_TCBQ WHERE GLID = @ID;");
                        conn.Execute(sbSql.ToString(), model, transaction);
                        if (!string.IsNullOrWhiteSpace(model.BQIDS))
                        {
                            //标签列表
                            List <string> lstBq = model.BQIDS.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
                            //深度列表
                            List <string> lstSd = model.BQSDS.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
                            foreach (var item in lstBq)
                            {
                                var sd = lstSd[lstBq.IndexOf(item)];
                                sbSql.Clear();
                                sbSql.Append("INSERT INTO WJ_TCBQ(GLID, BQID, JCSD) VALUES (@GLID, @BQID, @JCSD)");
                                conn.Execute(sbSql.ToString(), new { GLID = model.ID, BQID = item, JCSD = sd }, transaction);
                            }
                        }
                        transaction.Commit();
                        return(new ReturnModel {
                            Code = 200, Msg = "保存成功"
                        });
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        Log.WriteLog(e.Message);
                        return(new ReturnModel {
                            Code = 201, Msg = "保存失败"
                        });
                    }
                }
            }
            catch (Exception e)
            {
                Log.WriteLog(e.Message);
                return(new ReturnModel {
                    Code = 201, Msg = "保存失败"
                });
            }
        }
        /// <summary>
        /// 插入
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ReturnModel Insert(Wjtc model)
        {
            try
            {
                //验证参数
                if (string.IsNullOrWhiteSpace(model.TCID))
                {
                    return(new ReturnModel {
                        Code = 201, Msg = "套餐不能为空"
                    });
                }

                //保存
                StringBuilder sbSql = new StringBuilder();
                using (IDbConnection conn = new DapperConnection().DbConnection)
                {
                    var transaction = conn.BeginTransaction();
                    try
                    {
                        //判断重名
                        sbSql.Append("SELECT * FROM WJ_TC WHERE TCID=@TCID and SFQY=1");
                        Wjbq sameName = conn.QueryFirstOrDefault <Wjbq>(sbSql.ToString(), model, transaction);
                        if (sameName != null)
                        {
                            return(new ReturnModel {
                                Code = 201, Msg = "存在相同名称的套餐"
                            });
                        }

                        sbSql.Clear();
                        model.SFQY = 1;
                        sbSql.Append("INSERT INTO WJ_TC(TCID, SYRQ, TCZY, SFQY) VALUES (@TCID, @SYRQ, @TCZY, @SFQY);select @@IDENTITY");
                        int id = Convert.ToInt32(conn.ExecuteScalar(sbSql.ToString(), model, transaction));

                        if (!string.IsNullOrWhiteSpace(model.BQIDS))
                        {
                            //标签列表
                            List <string> lstBq = model.BQIDS.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
                            //深度列表
                            List <string> lstSd = model.BQSDS.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
                            foreach (var item in lstBq)
                            {
                                var sd = lstSd[lstBq.IndexOf(item)];
                                sbSql.Clear();
                                sbSql.Append("INSERT INTO WJ_TCBQ(GLID, BQID, JCSD) VALUES (@GLID, @BQID, @JCSD)");
                                conn.Execute(sbSql.ToString(), new { GLID = id, BQID = item, JCSD = sd }, transaction);
                            }
                        }
                        transaction.Commit();
                        return(new ReturnModel {
                            Code = 200, Msg = "保存成功"
                        });
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        Log.WriteLog(e.Message);
                        return(new ReturnModel {
                            Code = 201, Msg = "保存失败"
                        });
                    }
                }
            }
            catch (Exception e)
            {
                Log.WriteLog(e.Message);
                return(new ReturnModel {
                    Code = 201, Msg = "保存失败"
                });
            }
        }