Exemplo n.º 1
0
        /// <summary>
        /// 发布计划
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <param name="isShare">是否直接分享</param>
        /// <param name="feedModel">职业路径三级信息</param>
        /// <returns></returns>
        public RetJsonModel PostPlan(string userId, int isShare, PlanHeaderModel planModel)
        {
            var db = DBContext.GetInstance;

            try
            {
                DateTime now       = db.GetDate();
                int      timestamp = FunctionHelper.GetTimestamp();

                db.Ado.BeginTran();
                //插入计划头表
                BUS_PLAN_HEADER head = new BUS_PLAN_HEADER();
                head.ID = Guid.NewGuid().ToString();
                head.DATETIME_CREATED = now;
                head.STATE            = "A";
                head.TIMESTAMP_INT    = timestamp;
                head.USER_ID          = userId;
                head.STATUS           = 0;
                head.FAVOUR_COUNT     = 0;
                head.SOURCE_TYPE      = 1;
                head.FIRST_PATH_ID    = planModel.FIRST_PATH_ID;
                head.SHARED_COUNT     = 0;
                head.IS_SHARED        = isShare;
                if (isShare == 1)
                {
                    head.SHARE_VERSION = 1;
                }
                db.Insertable(head).ExecuteCommand();

                int seq = 1;
                foreach (var item in planModel.PLAN_DTL)
                {
                    //插入计划明细表(个人可见)
                    BUS_PLAN_DETAIL dtl1 = new BUS_PLAN_DETAIL();
                    dtl1.ID = Guid.NewGuid().ToString();
                    dtl1.DATETIME_CREATED = now;
                    dtl1.STATE            = "A";
                    dtl1.TIMESTAMP_INT    = timestamp;
                    dtl1.HEADER_ID        = head.ID;
                    dtl1.SEQ          = seq;
                    dtl1.CONTENT      = item.CONTENT;
                    dtl1.STATUS       = 0;
                    dtl1.VISIBLE_TYPE = 1;
                    db.Insertable(dtl1).ExecuteCommand();

                    if (isShare == 1)
                    {
                        //插入计划明细表(全员可见)
                        BUS_PLAN_DETAIL dtl2 = new BUS_PLAN_DETAIL();
                        dtl2.ID = Guid.NewGuid().ToString();
                        dtl2.DATETIME_CREATED = now;
                        dtl2.STATE            = "A";
                        dtl2.TIMESTAMP_INT    = timestamp;
                        dtl2.HEADER_ID        = head.ID;
                        dtl2.SEQ          = seq;
                        dtl2.CONTENT      = item.CONTENT;
                        dtl2.STATUS       = 0;
                        dtl2.VISIBLE_TYPE = 2;
                        db.Insertable(dtl2).ExecuteCommand();
                    }

                    seq++;
                }

                RetJsonModel jsonModel = new RetJsonModel();
                jsonModel.time   = timestamp;
                jsonModel.status = 1;
                jsonModel.msg    = "提交成功";

                db.Ado.CommitTran();

                return(jsonModel);
            }
            catch (Exception ex)
            {
                db.Ado.RollbackTran();
                throw ex;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 修改计划
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <param name="isShare">是否分享</param>
        /// <param name="planId">计划头ID</param>
        /// <param name="planDtlId">计划明细集合</param>
        /// <returns></returns>
        public RetJsonModel UpdatePlan(string userId, int isShare, PlanHeaderModel planModel)
        {
            var db = DBContext.GetInstance;

            try
            {
                DateTime now       = db.GetDate();
                int      timestamp = FunctionHelper.GetTimestamp();

                int           seq    = 1;
                List <string> idList = planModel.PLAN_DTL.Where(x => !string.IsNullOrEmpty(x.PLAN_DTL_ID)).Select(x => x.PLAN_DTL_ID).ToList();
                foreach (var item in planModel.PLAN_DTL)
                {
                    //修改存在的计划
                    if (!string.IsNullOrEmpty(item.PLAN_DTL_ID))
                    {
                        db.Updateable <BUS_PLAN_DETAIL>().SetColumns(x => new BUS_PLAN_DETAIL
                        {
                            DATETIME_MODIFIED = now,
                            CONTENT           = item.CONTENT,
                            SEQ = seq
                        }).Where(x => x.ID == item.PLAN_DTL_ID && x.STATE == "A" && x.VISIBLE_TYPE == 1).ExecuteCommand();
                    }
                    else  //新插如的计划
                    {
                        BUS_PLAN_DETAIL plandtl = new BUS_PLAN_DETAIL();
                        plandtl.ID = Guid.NewGuid().ToString();
                        plandtl.DATETIME_CREATED = now;
                        plandtl.STATE            = "A";
                        plandtl.TIMESTAMP_INT    = timestamp;
                        plandtl.HEADER_ID        = planModel.ID;
                        plandtl.SEQ          = seq;
                        plandtl.CONTENT      = item.CONTENT;
                        plandtl.STATUS       = 0;
                        plandtl.VISIBLE_TYPE = 1;
                        db.Insertable(plandtl).ExecuteCommand();

                        idList.Add(plandtl.ID);
                    }
                    seq++;
                }
                //删除取消的计划
                db.Deleteable <BUS_PLAN_DETAIL>()
                .Where(x => !idList.Contains(x.ID) && x.HEADER_ID == planModel.ID && x.VISIBLE_TYPE == 1 && x.STATE == "A")
                .ExecuteCommand();
                if (isShare == 1)
                {
                    SharePlanFun(db, planModel.ID, now, timestamp);
                }

                RetJsonModel jsonModel = new RetJsonModel();
                jsonModel.time   = timestamp;
                jsonModel.status = 1;
                jsonModel.msg    = "修改成功";

                db.Ado.CommitTran();

                return(jsonModel);
            }
            catch (Exception ex)
            {
                db.Ado.RollbackTran();
                throw ex;
            }
        }