Пример #1
0
        public async Task <MessageModel <List <AllData> > > Post(string openId, string name, DateTime date)
        {
            try
            {
                _userServices.GetAdo().BeginTran();

                var data = new MessageModel <List <AllData> >();

                User user = (await _userServices.Query(q => q.OpenId == openId)).FirstOrDefault();

                if (user != null)
                {
                    user.Version += 1;

                    Info info = new Info()
                    {
                        OpenId = openId,
                        Name   = name
                    };

                    var infoId = (await _infoServices.Add(info));

                    if (infoId > 0)
                    {
                        InfoDetail infoDetail = new InfoDetail()
                        {
                            InfoId = infoId,
                            Date   = date,
                            Count  = 0,
                            Type   = "日"
                        };

                        var infoDetailId = (await _infoDetailServices.Add(infoDetail));

                        if (await _userServices.Update(user) && infoDetailId > 0)
                        {
                            data.success = true;
                        }
                    }

                    if (data.success)
                    {
                        data.response = (await userController.Get(openId)).response;
                        data.msg      = "添加成功";
                        _userServices.GetAdo().CommitTran();
                    }
                    else
                    {
                        _userServices.GetAdo().RollbackTran();
                    }
                }
                return(data);
            }
            catch (Exception ex)
            {
                _userServices.GetAdo().RollbackTran();
                throw ex;
            }
        }
Пример #2
0
        public async Task <MessageModel <List <AllData> > > Post(string openId, int infoId, int addCount, string type)
        {
            try
            {
                _userServices.GetAdo().BeginTran();

                var data = new MessageModel <List <AllData> >();

                if (addCount != 0)
                {
                    User user = (await _userServices.Query(q => q.OpenId == openId)).FirstOrDefault();

                    if (user != null)
                    {
                        user.Version += 1;

                        InfoDetail infoDetailInitail = (await _infoDetailServices.Query(q => q.InfoId == infoId && q.Count == 0 && q.Type == "日")).FirstOrDefault();

                        if (infoDetailInitail != null)
                        {
                            InfoDetail infoDetail = new InfoDetail()
                            {
                                InfoId = infoId,
                                Type   = type,
                                Count  = addCount,
                                Date   = GetDate(infoDetailInitail.Date.Value, addCount, type)
                            };

                            if (await _userServices.Update(user) && await _infoDetailServices.Add(infoDetail) > 0)
                            {
                                data.success = true;
                            }

                            if (data.success)
                            {
                                data.response = (await userController.Get(openId)).response;
                                data.msg      = "添加成功";
                                _userServices.GetAdo().CommitTran();
                            }
                            else
                            {
                                _userServices.GetAdo().RollbackTran();
                            }
                        }
                    }
                }
                return(data);
            }
            catch (Exception ex)
            {
                _userServices.GetAdo().RollbackTran();
                throw ex;
            }
        }
Пример #3
0
        private async Task <List <AllData> > UserInitialAsync(string openId)
        {
            try
            {
                _userServices.GetAdo().BeginTran();

                List <AllData> allDatas = new List <AllData>();

                User newUser = new User
                {
                    OpenId  = openId,
                    Version = 0
                };

                var userId = await _userServices.Add(newUser, false);

                if (userId > 0)
                {
                    Info newInfo = new Info()
                    {
                        OpenId = openId,
                        Name   = "初体验"
                    };

                    var infoId = (await _infoServices.Add(newInfo));

                    if (infoId > 0)
                    {
                        InfoDetail infoDetail0day = new InfoDetail()
                        {
                            InfoId = infoId,
                            Date   = DateTime.Now,
                            Count  = 0,
                            Type   = "日"
                        };

                        List <InfoDetail> newInfoDetails = new List <InfoDetail> {
                            new InfoDetail()
                            {
                                InfoId = infoId,
                                Date   = DateTime.Now.Date,
                                Count  = 0,
                                Type   = "日"
                            },
                            new InfoDetail()
                            {
                                InfoId = infoId,
                                Date   = DateTime.Now.Date.AddDays(100),
                                Count  = 100,
                                Type   = "日"
                            },
                            new InfoDetail()
                            {
                                InfoId = infoId,
                                Date   = DateTime.Now.Date.AddMonths(100),
                                Count  = 100,
                                Type   = "月"
                            },
                            new InfoDetail()
                            {
                                InfoId = infoId,
                                Date   = DateTime.Now.Date.AddYears(100),
                                Count  = 100,
                                Type   = "年"
                            }
                        };

                        bool addSuccess = true;

                        foreach (var infoDetail in newInfoDetails)
                        {
                            var infoDetailId = await _infoDetailServices.Add(infoDetail);

                            if (infoDetailId <= 0)
                            {
                                addSuccess = false;
                                break;
                            }
                        }

                        if (addSuccess)
                        {
                            allDatas.Add(new AllData()
                            {
                                user       = newUser,
                                info       = newInfo,
                                infoDetail = newInfoDetails
                            });
                        }
                    }
                }

                if (allDatas.Count > 0)
                {
                    _userServices.GetAdo().CommitTran();
                }
                else
                {
                    _userServices.GetAdo().RollbackTran();
                }

                return(allDatas);
            }
            catch (Exception ex)
            {
                _userServices.GetAdo().RollbackTran();
                throw ex;
            }
        }