Esempio n. 1
0
        /// <summary>
        /// 根据手机号码查询会员信息,主要用于h5分享页面判断当前手机号码是否存在
        /// 如果存在则返回会员ID,不存在返回 false
        /// </summary>
        /// <param name="mobile"></param>
        /// <returns></returns>
        public Ptcp <string> QueryMemberInfoByMobile(string mobile)
        {
            var ptcp = new Ptcp <string>();

            if (string.IsNullOrEmpty(mobile))
            {
                ptcp.DoResult = "手机号码不能为空";
                return(ptcp);
            }

            Logger.Write(LoggerLevel.Error, "QueryMemberInfoByMobile_in", "", mobile, "");

            var member = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                Mobile = mobile
            }).FirstOrDefault();

            if (member.IsNull() || member.SysNo <= 0)
            {
                ptcp.DoResult = "没有此会员信息";
                return(ptcp);
            }
            else
            {
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = member.SysNo.ToString();

                return(ptcp);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 查询会员信息
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_QueryMemberInfoRes> QueryMemberInfo(M_QueryMemberInfoReq req)
        {
            var ptcp = new Ptcp <M_QueryMemberInfoRes>();

            if (req.IsNull() || req.UserId <= 0)
            {
                ptcp.DoResult = "查询会员标识错误";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "QueryMemberInfo_in", "", jsonParam, "");

            var member = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                SysNo = req.UserId
            }).FirstOrDefault();

            if (member.IsNull() || member.SysNo <= 0)
            {
                ptcp.DoResult = "没有此会员信息";
                return(ptcp);
            }

            ptcp.ReturnValue = new M_QueryMemberInfoRes();
            ptcp.ReturnValue.MemberEntity = TableT_MemberToM_MemberEntity(member);
            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "查询成功";
            return(ptcp);
        }
Esempio n. 3
0
        /// <summary>
        /// 修改会员性别
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="sex"></param>
        /// <returns></returns>
        public Ptcp <string> UpdateMemberSex(int userid, int sex)
        {
            var ptcp = new Ptcp <string>();

            if (userid <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (sex != (int)Enums.Sex.men && sex != (int)Enums.Sex.women)
            {
                ptcp.DoResult = "请选择性别";
                return(ptcp);
            }

            DbSession.MLT.T_MemberRepository.Update(new T_Member()
            {
                Sex        = sex,
                InforType  = sex,
                ModifyTime = DateTime.Now
            }, new T_Member()
            {
                SysNo = userid
            });
            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "修改成功";
            return(ptcp);
        }
Esempio n. 4
0
        /// <summary>
        /// 查询所有的区域信息
        /// </summary>
        /// <returns></returns>
        public Ptcp <M_QueryRegionInfoRes> QueryRegionInfo()
        {
            var ptcp = new Ptcp <M_QueryRegionInfoRes>();

            string cacheKey = string.Format("{0}.QueryRegionInfo", GetType().Name);
            var    allReg   = CacheClientSession.LocalCacheClient.Get(cacheKey, () =>
            {
                var regions = DbSession.MLT.Base_RegionRepository.QueryBy(new Base_Region()
                {
                    IsEnable = true
                }).ToList();

                if (regions.IsNotNull() && regions.IsHasRow())
                {
                    return(Mapper.MapperGeneric <Base_Region, M_RegionEntity>(regions).ToList());
                }

                return(null);
            }, new TimeSpan(1, 0, 0, 0));

            ptcp.ReturnValue          = new M_QueryRegionInfoRes();
            ptcp.ReturnValue.Entities = allReg;

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "查询成功";
            return(ptcp);
        }
Esempio n. 5
0
        /// <summary>
        /// 获取所有的分类信息
        /// </summary>
        /// <returns></returns>
        public Ptcp <M_QueryCategoryRes> QueryCategory()
        {
            var ptcp = new Ptcp <M_QueryCategoryRes>();

            string cacheKey = string.Format("{0}.QueryCategory", GetType().Name);
            var    cates    = CacheClientSession.LocalCacheClient.Get(cacheKey, () =>
            {
                var cateDBs = DbSession.MLT.B_CategoryRepository.QueryBy(new B_Category()
                {
                    IsEnable = true
                }, " ORDER BY IntSort DESC").ToList();

                if (cateDBs.IsNotNull() && cateDBs.IsHasRow())
                {
                    return(Mapper.MapperGeneric <B_Category, M_CategoryEntity>(cateDBs).ToList());
                }

                return(null);
            }, new TimeSpan(0, 10, 0));

            ptcp.ReturnValue          = new M_QueryCategoryRes();
            ptcp.ReturnValue.Entities = cates;
            ptcp.DoFlag = PtcpState.Success;
            return(ptcp);
        }
Esempio n. 6
0
        /// <summary>
        /// 获取首页的红点(APP logo 上面的红点)
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        public Ptcp <int> QueryIndexRedDot(int userid)
        {
            var ptcp = new Ptcp <int>();

            if (userid <= 0)
            {
                ptcp.DoResult = "会员ID不能为空";
                return(ptcp);
            }

            var recCount = DbSession.MLT.B_RecommendConfigureRepository.QueryCountBy(new B_RecommendConfigure()
            {
                UserId    = userid,
                DataType  = 1,
                PushState = 0,
                IsEnable  = true,
            });

            ptcp.DoFlag      = PtcpState.Success;
            ptcp.DoResult    = "成功";
            ptcp.ReturnValue = new int();
            ptcp.ReturnValue = (int)recCount;

            return(ptcp);
        }
Esempio n. 7
0
        /// <summary>
        /// 查询所有的区域信息,分好三级的
        /// </summary>
        /// <returns></returns>
        public Ptcp <M_QueryRegionThreeRes> QueryRegionThree()
        {
            var ptcp = new Ptcp <M_QueryRegionThreeRes>();

            string cacheKey = string.Format("{0}.QueryRegionThree", GetType().Name);

            var treeReg = CacheClientSession.LocalCacheClient.Get(cacheKey, () =>
            {
                var allReg = QueryRegionInfo();
                if (allReg.DoFlag == PtcpState.Success && allReg.ReturnValue.IsNotNull() &&
                    allReg.ReturnValue.Entities.IsHasRow())
                {
                    var oneRegs = allReg.ReturnValue.Entities.Where(c => c.RegionType == 1).ToList();
                    if (oneRegs.IsNotNull() && oneRegs.IsHasRow())
                    {
                        List <M_RegionEntity> mRegion = new List <M_RegionEntity>();
                        mRegion.AddRange(oneRegs);

                        foreach (var mr in mRegion)
                        {
                            var twoReg = allReg.ReturnValue.Entities.Where(c => c.ParentId == mr.RegionId).ToList();
                            if (twoReg.IsNotNull() && twoReg.IsHasRow())
                            {
                                mr.Entities = new List <M_RegionEntity>();
                                mr.Entities.AddRange(twoReg);

                                foreach (var ent in mr.Entities)
                                {
                                    if (mr.RegionName == ent.RegionName)
                                    {
                                        mr.RegionName = mr.RegionName.Substring(0, mr.RegionName.Length - 1);
                                    }

                                    var threeReg = allReg.ReturnValue.Entities.Where(c => c.ParentId == ent.RegionId).ToList();
                                    if (threeReg.IsNotNull() && threeReg.IsHasRow())
                                    {
                                        ent.Entities = new List <M_RegionEntity>();
                                        ent.Entities.AddRange(threeReg);
                                    }
                                }
                            }
                        }

                        return(mRegion);
                    }
                }

                return(null);
            }, new TimeSpan(1, 0, 0, 0));

            ptcp.ReturnValue          = new M_QueryRegionThreeRes();
            ptcp.ReturnValue.Entities = treeReg;

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "查询成功";

            return(ptcp);
        }
Esempio n. 8
0
        /// <summary>
        /// 检查短信验证码是否有效并更新短信验证码状态
        /// </summary>
        /// <param name="smsType"></param>
        /// <param name="mobile"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public Ptcp <string> CheckSmsCode(int smsType, string mobile, string code)
        {
            var ptcp = new Ptcp <string>();

            if (string.IsNullOrEmpty(mobile))
            {
                ptcp.DoResult = "手机号码不能为空";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(code))
            {
                ptcp.DoResult = "验证码不能为空";
                return(ptcp);
            }

            var smsRes = DbSession.MLT.T_SmsRepository.QueryBy(new T_Sms()
            {
                SmsType = smsType,
                Mobile  = mobile,
                SmsCode = code,
            }, " ORDER BY SysNo DESC").FirstOrDefault();

            if (smsRes.IsNull() || smsRes.SysNo <= 0)
            {
                ptcp.DoResult = "验证码无效,请重新获取";
                return(ptcp);
            }

            if (smsRes.SmsStatus != (int)Enums.SmsStatus.No)
            {
                ptcp.DoResult = "验证码无效,请重新获取";
                return(ptcp);
            }

            if (smsRes.ExpireTime < DateTime.Now)
            {
                ptcp.DoResult = "验证码已过期,请重新获取";
                return(ptcp);
            }

            //更新验证码
            DbSession.MLT.T_SmsRepository.Update(new T_Sms()
            {
                SmsStatus = (int)Enums.SmsStatus.OK,
                VerifTime = DateTime.Now
            }, new T_Sms()
            {
                SysNo = smsRes.SysNo
            });
            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "操作成功";
            return(ptcp);
        }
Esempio n. 9
0
        /// <summary>
        /// 检查会员是否存在
        /// </summary>
        /// <param name="selectCustomer"></param>
        /// <param name="value"></param>
        /// <returns>DoFlag = True 存在,DoFlag = False 不存在</returns>
        public Ptcp <string> CheckMemberIsExist(Enums.SelectCustomer selectCustomer, string value)
        {
            var ptcp = new Ptcp <string>();

            if (string.IsNullOrEmpty(value))
            {
                ptcp.DoResult = "查询标识错误";
                return(ptcp);
            }

            T_Member tMember = null;

            switch (selectCustomer)
            {
            case Enums.SelectCustomer.UserId:

                int userid = Converter.ParseInt(value, 0);
                if (userid > 0)
                {
                    //根据会员ID查询
                    tMember = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
                    {
                        SysNo = userid
                    }).FirstOrDefault();
                }
                break;

            case Enums.SelectCustomer.Mobile:
                //根据手机号码查询
                tMember = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
                {
                    Mobile = value
                }, " ORDER BY SysNo ASC").FirstOrDefault();
                break;
            }

            if (tMember.IsNotNull() && tMember.SysNo > 0)
            {
                //当前会员存在
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = "当前会员已存在";
            }
            else
            {
                //当前会员不存在
                ptcp.DoFlag   = PtcpState.Failed;
                ptcp.DoResult = "当前会员不存在";
            }

            return(ptcp);
        }
Esempio n. 10
0
        /// <summary>
        /// 保存操作日志
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> AddOperationLog(M_AddOperationLogReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "AddOperationLog_in", "", jsonParam, "");

            if (req.OperType <= 0)
            {
                ptcp.DoResult = "操作类型错误";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.ClientIp))
            {
                ptcp.DoResult = "IP为空";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.DeviceCode))
            {
                ptcp.DoResult = "设备码为空";
                return(ptcp);
            }

            DbSession.MLT.T_OperationLogRepository.Add(new T_OperationLog()
            {
                UserId          = req.UserId,
                OperType        = req.OperType,
                IdentityId      = req.IdentityId,
                ClientIp        = req.ClientIp,
                DeviceCode      = req.DeviceCode,
                SourceTypeSysNo = req.SourceTypeSysNo,
                RowCeateDate    = DateTime.Now
            });
            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "保存成功";
            return(ptcp);
        }
Esempio n. 11
0
        /// <summary>
        /// 清空全部缓存
        /// </summary>
        /// <returns></returns>
        public Ptcp <string> LocalCacheAll()
        {
            var ptcp = new Ptcp <string>();

            try
            {
                CacheClientSession.LocalCacheClient.FlushAll();
                ptcp.DoResult = "清空缓存成功";
                ptcp.DoFlag   = PtcpState.Success;
            }
            catch (Exception exception)
            {
                ptcp.DoResult = "清空缓存失败,异常信息:" + exception.ToString();
            }

            return(ptcp);
        }
Esempio n. 12
0
        /// <summary>
        /// 修改会员昵称
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> UpdateMembereNickName(M_UpdateMembereNickNameReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "UpdateMembereNickName_in", "", jsonParam, "");

            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员标识有误";
                return(ptcp);
            }
            if (string.IsNullOrEmpty(req.NickName))
            {
                ptcp.DoResult = "会员昵称不能为空";
                return(ptcp);
            }

            DbSession.MLT.T_MemberRepository.Update(new T_Member()
            {
                NickName   = req.NickName,
                ModifyTime = DateTime.Now
            }, new T_Member()
            {
                SysNo = req.UserId
            });
            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "修改昵称成功";
            return(ptcp);
        }
Esempio n. 13
0
        /// <summary>
        /// 查询订单支付状态
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="orderNo"></param>
        /// <returns></returns>
        public Ptcp <string> QueryPayState(int userid, int orderNo)
        {
            var ptcp = new Ptcp <string>();

            if (userid <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (orderNo <= 0)
            {
                ptcp.DoResult = "订单号错误";
                return(ptcp);
            }

            var orderInfo = DbSession.MLT.T_RechargeRepository.QueryBy(new T_Recharge()
            {
                SysNo    = orderNo,
                UserId   = userid,
                IsEnable = true
            }).FirstOrDefault();

            if (orderInfo.IsNull() || orderInfo.SysNo <= 0)
            {
                ptcp.DoResult = "没有订单信息";
                return(ptcp);
            }

            if (orderInfo.PayState == (int)Enums.PayState.Complete)
            {
                ptcp.DoResult = "已支付成功";
                ptcp.DoFlag   = PtcpState.Success;
                return(ptcp);
            }

            return(ptcp);
        }
Esempio n. 14
0
        /// <summary>
        /// 提现 2017-12-11改版新的提现接口
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="amount">提现金额</param>
        /// <returns></returns>
        public Ptcp <string> MemberWithdrawalsTwo(int userid, decimal amount)
        {
            var ptcp = new Ptcp <string>();

            if (userid <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (amount < 1)
            {
                //ptcp.DoResult = "提现金额不能小于1元";
                ptcp.DoResult = "提现金额不足";
                return(ptcp);
            }

            //获取会员信息
            var memberInfo = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                SysNo = userid
            }).FirstOrDefault();

            if (memberInfo.IsNull() || memberInfo.SysNo <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            //低佣金转为金额
            decimal scoreRmb = memberInfo.Score.GetValueOrDefault() / (int)Enums.TiXianProportion;

            if (scoreRmb < 1)
            {
                //ptcp.DoResult = "账户金额小于1元,不能提现";
                ptcp.DoResult = "提现金额不足";
                return(ptcp);
            }

            if (amount > scoreRmb)
            {
                //ptcp.DoResult = string.Format("账户金额不足,可提现金额{0}元", scoreRmb);
                ptcp.DoResult = "账户金额不足";
                return(ptcp);
            }

            //当前账户配置的最低提现额度
            if (amount < memberInfo.MinWithdrawals)
            {
                //ptcp.DoResult = string.Format("您的账户提现额度最低{0}元起", memberInfo.MinWithdrawals);
                ptcp.DoResult = "提现金额不足";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(memberInfo.OpenidWxOpen))
            {
                ptcp.DoResult = "微信账号未关联,无法提现";
                return(ptcp);
            }

            DateTime dtNow = DateTime.Now;

            //持久化数据
            //更新会员主表提现记录
            DbSession.MLT.T_MemberRepository.Update(new T_Member()
            {
                Score          = memberInfo.Score - (amount * 100),          //账户剩余低佣金
                ScoreWithdrawn = memberInfo.ScoreWithdrawn + (amount * 100), //累计提现金额
                ModifyTime     = dtNow
            }, new T_Member()
            {
                SysNo = userid
            });

            //保存提交记录
            DbSession.MLT.T_WithdrawalsRepository.Add(new T_Withdrawals()
            {
                UserId           = userid,
                OpenidWxOpen     = memberInfo.OpenidWxOpen,
                WithdrawalsMoney = amount,
                WithdrawalsState = (int)Enums.WithdrawalsState.Untreated,
                RowCeateDate     = dtNow,
                IsEnable         = true
            });

            //保存账户流水交易
            AddAccountRecord(new M_AddAccountRecordReq()
            {
                TranType  = (int)Enums.TranType.TiXian,
                TranNum   = amount,
                UserId    = userid,
                InRemarks = ""
            });

            DbSession.MLT.SaveChange();
            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "现金将在24小时通过微信红包发放,尽请查收";
            return(ptcp);
        }
Esempio n. 15
0
        /// <summary>
        /// 忘记密码,找回密码
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> ForgotPassWord(M_ForgotPassWordReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "ForgotPassWord_in", "", jsonParam, "");

            if (string.IsNullOrEmpty(req.Mobile))
            {
                ptcp.DoResult = "手机号码不能为空";
                return(ptcp);
            }

            if (req.Mobile.Length != 11)
            {
                ptcp.DoResult = "手机号码格式有误";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.PassWord))
            {
                ptcp.DoResult = "密码不能为空";
                return(ptcp);
            }

            if (req.PassWord.Length > 20 || req.PassWord.Length < 6)
            {
                ptcp.DoResult = "密码长度不能小于6位,大于20位";
                return(ptcp);
            }
            if (string.IsNullOrEmpty(req.SmsCode))
            {
                ptcp.DoResult = "短信验证码不能为空";
                return(ptcp);
            }

            //判断当前手机号码是否存在
            var resMem = CheckMemberIsExist(Enums.SelectCustomer.Mobile, req.Mobile);

            if (resMem.IsNotNull() && resMem.DoFlag == PtcpState.Failed)
            {
                ptcp.DoResult = "输入的手机号码有误,请核实";
                return(ptcp);
            }

            //校验短信验证码
            var smsRes = sms.CheckSmsCode((int)Enums.SmsType.PwdBack, req.Mobile, req.SmsCode);

            if (smsRes.DoFlag == PtcpState.Failed)
            {
                if (!string.IsNullOrEmpty(smsRes.DoResult))
                {
                    ptcp.DoResult = smsRes.DoResult;
                    return(ptcp);
                }
                else
                {
                    ptcp.DoResult = "系统异常,请稍后再试";
                    return(ptcp);
                }
            }

            //更新密码
            DbSession.MLT.T_MemberRepository.Update(new T_Member()
            {
                MemPassWord = EncryptionExt.MD5Encrypt(req.PassWord.Trim(), 16),
                ModifyTime  = DateTime.Now
            }, new T_Member()
            {
                Mobile = req.Mobile
            });
            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "更新密码成功";
            return(ptcp);
        }
Esempio n. 16
0
        /// <summary>
        /// 更新微信openid
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="openidWxOpen"></param>
        /// <returns></returns>
        public Ptcp <string> UpdateWxOpenid(int userid, string openidWxOpen)
        {
            var ptcp = new Ptcp <string>();

            if (userid <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(openidWxOpen))
            {
                ptcp.DoResult = "微信开放平台标示不能为空";
                return(ptcp);
            }

            var memberInfo = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                SysNo = userid
            }).FirstOrDefault();

            if (memberInfo.IsNull() || memberInfo.SysNo <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (!string.IsNullOrEmpty(openidWxOpen))
            {
                if (!string.IsNullOrEmpty(memberInfo.OpenidWxOpen))
                {
                    ptcp.DoResult = "微信开放平台标示已存在";
                    return(ptcp);
                }

                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    OpenidWxOpen = openidWxOpen, ModifyTime = DateTime.Now
                },
                                                        new T_Member()
                {
                    SysNo = userid
                });
                DbSession.MLT.SaveChange();
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = "更新成功";
            }

            //if (!string.IsNullOrEmpty(openidWxMp))
            //{
            //    if (!string.IsNullOrEmpty(memberInfo.OpenidWxMp))
            //    {
            //        ptcp.DoResult = "微信公众号标示已存在";
            //        return ptcp;
            //    }
            //    DbSession.MLT.T_MemberRepository.Update(new T_Member() { OpenidWxMp = openidWxMp, ModifyTime = DateTime.Now },
            //        new T_Member() { SysNo = userid });
            //    DbSession.MLT.SaveChange();
            //    ptcp.DoFlag = PtcpState.Success;
            //    ptcp.DoResult = "更新成功";
            //}

            return(ptcp);
        }
Esempio n. 17
0
        /// <summary>
        /// 保存客户手机上面其他的APP信息
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> AddApp(M_AddAppReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "AddApp_in", "", jsonParam, "");

            if (string.IsNullOrEmpty(req.Mobile))
            {
                ptcp.DoResult = "手机号码不能为空";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.DeviceCode))
            {
                ptcp.DoResult = "设备码不能为空";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.ClientIp))
            {
                ptcp.DoResult = "客户端IP不能为空";
                return(ptcp);
            }

            if (req.SourceTypeSysNo <= 0)
            {
                ptcp.DoResult = "来源渠道错误";
                return(ptcp);
            }

            if (req.AppName.IsNull() || !req.AppName.IsHasRow())
            {
                ptcp.DoResult = "APP信息为空";
                return(ptcp);
            }

            DateTime dtNow = DateTime.Now;

            foreach (var an in req.AppName)
            {
                DbSession.MLT.Base_SaveAppRepository.Add(new Base_SaveApp()
                {
                    Mobile          = req.Mobile,
                    UserId          = req.UserId,
                    DeviceCode      = req.DeviceCode,
                    ClientIp        = req.ClientIp,
                    AppName         = an,
                    SourceTypeSysNo = req.SourceTypeSysNo,
                    RowCeateDate    = dtNow,
                    IsEnable        = true
                });
            }

            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "保存成功";
            return(ptcp);
        }
Esempio n. 18
0
        /// <summary>
        /// 发起支付,预下单,构建订单数据
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_CreatePaymentRes> CreatePayment(M_CreatePaymentReq req)
        {
            var ptcp = new Ptcp <M_CreatePaymentRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "CreatePayment_in", "", jsonParam, "");

            #region 基础参数校验,生成订单信息

            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (req.GoodsSysNo <= 0)
            {
                ptcp.DoResult = "商品ID错误";
                return(ptcp);
            }

            if (req.RechargeAmount <= 0)
            {
                ptcp.DoResult = "充值金额不能小于等于0";
                return(ptcp);
            }

            //获取商品信息
            var goodsInfo = DbSession.MLT.T_ShopGoodsRepository.QueryBy(new T_ShopGoods()
            {
                SysNo    = req.GoodsSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (goodsInfo.IsNull() || goodsInfo.SysNo <= 0)
            {
                ptcp.DoResult = "当前商品不存在,请重试";
                return(ptcp);
            }

            if (goodsInfo.OverCouponCount <= 0)
            {
                ptcp.DoResult = "很抱歉,已全部抢光了";
                return(ptcp);
            }

            //获取抵用劵的新
            var couponInfo = DbSession.MLT.T_CouponInfoRepository.QueryBy(new T_CouponInfo()
            {
                SysNo    = goodsInfo.ExcCouponSysNo,
                IsEnable = true
            }).FirstOrDefault();
            if (couponInfo.IsNull() || couponInfo.SysNo <= 0)
            {
                ptcp.DoResult = "当前抵用劵不存在,请重试";
                return(ptcp);
            }

            //获取会员信息
            var memInfo = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                SysNo = req.UserId
            }).FirstOrDefault();
            if (memInfo.IsNull() || memInfo.SysNo <= 0)
            {
                ptcp.DoResult = "会员信息获取失败,请重试";
                return(ptcp);
            }

            if ((couponInfo.ExcAmount - memInfo.Score) / Enums.CashProportion != req.RechargeAmount)
            {
                ptcp.DoResult = "充值金额校验失败";
                return(ptcp);
            }

            string goodsName = string.Format("趣赞-{0}", goodsInfo.GoodsName);
            //构建充值订单信息
            string sql =
                string.Format(
                    @"INSERT INTO T_Recharge(UserId,ShopSysNo,GoodsSysNo,GoodsName,RechargeAmount,PaymentNumber,PayTime,PayState,IsUse,RowCeateDate,ModifyTime,IsEnable) OUTPUT INSERTED.SysNo VALUES
                    ({0},{1},{2},'{3}',{4},NULL,NULL,0,0,GETDATE(),NULL,1)",
                    req.UserId, goodsInfo.ShopSysNo, req.GoodsSysNo, goodsName, req.RechargeAmount);
            int sysNo = DbSession.MLT.ExecuteSql <int>(sql).FirstOrDefault();
            if (sysNo <= 0)
            {
                ptcp.DoResult = "构建订单信息失败";
                return(ptcp);
            }

            #endregion

            #region 调用微信预下单,生成 预支付交易会话标识

            var wxRes = wx.GetWxPayRequestData(new M_GetWxPayRequestDataReq()
            {
                UserId         = req.UserId,
                OrderNo        = sysNo,
                RechargeAmount = req.RechargeAmount,
                GoodsName      = goodsName
            });
            if (wxRes.DoFlag == PtcpState.Failed)
            {
                if (!string.IsNullOrEmpty(wxRes.DoResult))
                {
                    ptcp.DoResult = wxRes.DoResult;
                    return(ptcp);
                }

                ptcp.DoResult = "支付失败,请稍后重试";
                return(ptcp);
            }

            #endregion

            ptcp.ReturnValue          = new M_CreatePaymentRes();
            ptcp.ReturnValue.ApiParam = wxRes.DoResult;
            ptcp.ReturnValue.OrderNo  = sysNo;
            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "构建微信APP支付预处理统一下单成功";

            return(ptcp);
        }
Esempio n. 19
0
        /// <summary>
        /// 会员登录
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_MemberLoginRes> MemberLogin(M_MemberLoginReq req)
        {
            var ptcp = new Ptcp <M_MemberLoginRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请正确填写账号和密码";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "MemberLogin_in", "", jsonParam, "");

            if (string.IsNullOrEmpty(req.Mobile) || string.IsNullOrEmpty(req.MemPassWord))
            {
                ptcp.DoResult = "账号和密码不能为空";
                return(ptcp);
            }

            if (req.Mobile.Length != 11)
            {
                ptcp.DoResult = "账号格式有误";
                return(ptcp);
            }

            if (req.MemPassWord.Length > 20 || req.MemPassWord.Length < 6)
            {
                ptcp.DoResult = "密码长度不能小于6位,大于20位";
                return(ptcp);
            }

            if (req.SourceTypeSysNo <= 0)
            {
                ptcp.DoResult = "来源渠道不能为空";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.DeviceCode))
            {
                ptcp.DoResult = "设备码不能为空";
                return(ptcp);
            }

            var memInfo = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                Mobile = req.Mobile
            }, " ORDER BY SysNo ASC").FirstOrDefault();

            if (memInfo.IsNull() || memInfo.SysNo <= 0)
            {
                ptcp.DoResult = "账号或密码错误";
                return(ptcp);
            }

            #region 校验

            //校验密码
            if (memInfo.MemPassWord == EncryptionExt.MD5Encrypt(req.MemPassWord.Trim(), 16))
            {
                //登录成功
                M_MemberEntity entity = TableT_MemberToM_MemberEntity(memInfo);

                //保存操作日志
                AddOperationLog(new M_AddOperationLogReq()
                {
                    OperType        = (int)Enums.OperationLog.Login,
                    UserId          = memInfo.SysNo.GetValueOrDefault(),
                    ClientIp        = req.ClientIp,
                    DeviceCode      = req.DeviceCode,
                    SourceTypeSysNo = req.SourceTypeSysNo
                });

                //更新最后一次登录的时间
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    LastLoginTime = DateTime.Now
                }, new T_Member()
                {
                    SysNo = memInfo.SysNo
                });
                DbSession.MLT.SaveChange();

                ptcp.ReturnValue = new M_MemberLoginRes();
                ptcp.ReturnValue.MemberEntity = entity;
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = "登录成功";
            }
            else
            {
                ptcp.DoResult = "账号或密码错误";
                return(ptcp);
            }

            #endregion

            return(ptcp);
        }
Esempio n. 20
0
        /// <summary>
        /// 根据文章ID查询文章信息,用于从首页点击进入阅读文章页面,根据返回数据前端判断是否可以直接阅读或者需要遮罩付费
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_QueryArticleByIdRes> QueryArticleById(M_QueryArticleByIdReq req)
        {
            var ptcp = new Ptcp <M_QueryArticleByIdRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.ArticleSysNo <= 0)
            {
                ptcp.DoResult = "文章ID错误";
                return(ptcp);
            }

            //获取当前文章信息
            var artciclInfo = DbSession.MLT.T_SelfMediaArticleRepository.QueryBy(new T_SelfMediaArticle()
            {
                SysNo    = req.ArticleSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (artciclInfo.IsNull() || artciclInfo.SysNo <= 0)
            {
                ptcp.DoResult = "未能获取到信息";
                return(ptcp);
            }

            //获取当前作者信息
            var authorInfo = DbSession.MLT.T_SelfMediaAuthorRepository.QueryBy(new T_SelfMediaAuthor()
            {
                SysNo    = artciclInfo.AuthorSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (authorInfo.IsNull() || authorInfo.SysNo <= 0)
            {
                ptcp.DoResult = "未能获取到作者信息";
                return(ptcp);
            }

            int payCount = 0;

            if (req.UserId > 0)
            {
                var payDbCount = DbSession.MLT.T_SelfMediaPayRecordRepository.QueryCountBy(new T_SelfMediaPayRecord()
                {
                    UserId       = req.UserId,
                    ArticleSysNo = artciclInfo.SysNo,
                    AuthorSysNo  = authorInfo.SysNo,
                    IsEnable     = true
                });

                payCount = Converter.ParseInt(payDbCount, 0);
            }

            var artciclCount = DbSession.MLT.T_SelfMediaArticleRepository.QueryCountBy(new T_SelfMediaArticle()
            {
                AuthorSysNo = authorInfo.SysNo,
                IsHot       = true,
                IsEnable    = true
            });

            M_ArticleEntity articleEntity = new M_ArticleEntity();

            if (payCount > 0)
            {
                articleEntity.IsRead = true;
            }

            articleEntity.ReadScore = artciclInfo.ReadScore.GetValueOrDefault();
            articleEntity.SysNo     = artciclInfo.SysNo.GetValueOrDefault();
            articleEntity.Title     = artciclInfo.Title;
            articleEntity.HeadPic   = artciclInfo.HeadPic;
            articleEntity.Subtitle  = artciclInfo.Subtitle;
            articleEntity.Content   = artciclInfo.Content;
            //articleEntity.StartDateTime = artciclInfo.StartDateTime.GetValueOrDefault();
            //articleEntity.EndDateTime = artciclInfo.EndDateTime.GetValueOrDefault();
            articleEntity.SortId          = artciclInfo.SortId.GetValueOrDefault();
            articleEntity.RowCeateDate    = artciclInfo.RowCeateDate.GetValueOrDefault();
            articleEntity.StrRowCeateDate = articleEntity.RowCeateDate.ToString("yyyy-MM-dd");

            M_AuthorEntity author = new M_AuthorEntity();

            author.AuthorSysNo     = authorInfo.SysNo.GetValueOrDefault();
            author.AuthorName      = authorInfo.AuthorName;
            author.Portrait        = authorInfo.Portrait;
            author.Describe        = authorInfo.Describe;
            author.HotArticleCount = Converter.ParseInt(artciclCount, 0);

            ptcp.ReturnValue = new M_QueryArticleByIdRes();
            ptcp.ReturnValue.ArticleEntity = articleEntity;
            ptcp.ReturnValue.AuthorEntity  = author;
            ptcp.DoFlag = PtcpState.Success;

            return(ptcp);
        }
Esempio n. 21
0
        /// <summary>
        /// 保存账号交易流水
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> AddAccountRecord(M_AddAccountRecordReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "AddAccountRecord_in", "", jsonParam, "");

            if (req.TranType <= 0)
            {
                ptcp.DoResult = "交易类型错误";
                return(ptcp);
            }

            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            //获取账号信息
            var memberInfo = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                SysNo = req.UserId
            }).FirstOrDefault();

            if (memberInfo.IsNull() || memberInfo.SysNo <= 0)
            {
                ptcp.DoResult = "获取会员信息失败";
                return(ptcp);
            }

            T_AccountRecord tRecord = new T_AccountRecord();

            tRecord.TranType     = req.TranType;
            tRecord.UserId       = req.UserId;
            tRecord.RowCeateDate = DateTime.Now;
            tRecord.IsPushIn     = 0;
            tRecord.IsEnable     = true;
            tRecord.InRemarks    = req.InRemarks;


            //极光推送消息
            M_SendPushReq sendPush = new M_SendPushReq();

            sendPush.UserId = req.UserId;

            #region 处理逻辑

            decimal?scoreDb          = 0;
            decimal?scoreWithdrawnDb = 0;

            DateTime dtNow = DateTime.Now;
            switch (req.TranType)
            {
                #region 一版的

            case (int)Enums.TranType.Partic:
                //参与互动
                tRecord.PlusReduce = 1;       //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = "参与互动";
                tRecord.TranNum    = req.TranNum;

                //sendPush.MsgTitle = "参与互动积分增加-Title";
                //sendPush.MsgAlert = "参与互动积分增加-Alert";
                //sendPush.MsgContent = string.Format("恭喜您参与互动,获得{0}元奖励金。", req.TranNum);

                sendPush.MsgTitle   = string.Format("参与互动{0}增加", Enums.ScoreName);
                sendPush.MsgAlert   = string.Format("恭喜您参与互动,获得{0}{1}元。", Enums.ScoreName, req.TranNum);
                sendPush.MsgContent = string.Format("参与互动{0}增加", Enums.ScoreName);

                #region 更新账户积分信息

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Score      = (memberInfo.Score + req.TranNum),
                    ModifyTime = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.Share:
                //邀请好友,分享好友
                tRecord.PlusReduce = 1;       //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = "邀请好友";
                tRecord.TranNum    = req.TranNum;

                sendPush.MsgTitle   = string.Format("邀请好友{0}增加", Enums.ScoreName);
                sendPush.MsgAlert   = string.Format("恭喜您成功邀请好友,获得{0}{1}元。", Enums.ScoreName, req.TranNum);
                sendPush.MsgContent = string.Format("邀请好友{0}增加", Enums.ScoreName);

                #region 更新账户积分信息

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Score      = (memberInfo.Score + req.TranNum),
                    ModifyTime = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.PurchaseScore:
                //转出积分
                tRecord.PlusReduce = 2;       //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = string.Format("转出{0}", Enums.ScoreName);
                tRecord.TranNum    = req.TranNum;

                sendPush.MsgTitle   = string.Format("申请转出{0}", Enums.ScoreName);
                sendPush.MsgAlert   = string.Format("申请转让{0}成功!", Enums.ScoreName);
                sendPush.MsgContent = string.Format("申请{0}转出", Enums.ScoreName);

                #region 更新账户积分信息

                scoreDb          = memberInfo.Score - req.TranNum;
                scoreWithdrawnDb = 0;

                if (scoreDb < 0)
                {
                    scoreDb = 0;
                }

                if (scoreDb < memberInfo.ScoreWithdrawn)
                {
                    scoreWithdrawnDb = scoreDb;
                }
                else
                {
                    scoreWithdrawnDb = memberInfo.ScoreWithdrawn;
                }

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Score          = scoreDb,
                    ScoreWithdrawn = scoreWithdrawnDb,
                    ModifyTime     = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.Sell:
                //转入积分
                tRecord.PlusReduce = 1;       //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = string.Format("转入{0}", Enums.ScoreName);
                tRecord.TranNum    = req.TranNum;

                sendPush.MsgTitle   = string.Format("转入{0}增加", Enums.ScoreName);
                sendPush.MsgAlert   = string.Format("恭喜你获得{0}元现金。", req.TranNum);
                sendPush.MsgContent = string.Format("转入{0}增加", Enums.ScoreName);

                #region 更新账户积分信息

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Score      = (memberInfo.Score + req.TranNum),
                    ModifyTime = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.TiXian:
                //提现
                tRecord.PlusReduce = 2;       //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = "提现";
                tRecord.TranNum    = -req.TranNum;

                sendPush.MsgTitle = "提现操作";
                sendPush.MsgAlert = string.Format("恭喜您成功提现{0}元。现金将在24小时通过微信红包发放,尽请查收!", req.TranNum);

                sendPush.MsgContent = "提现操作";

                #region

                //持久化数据
                //更新会员主表提现记录
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Account = 0,
                    //AccountWithdrawn = memberInfo.Account,
                    AccountWithdrawn = 0,
                    ModifyTime       = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.ExcGoods:
                //兑换抵用劵
                tRecord.PlusReduce = 2;       //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = "兑换抵用劵";
                tRecord.TranNum    = -req.TranNum;

                sendPush.MsgTitle   = "兑换抵用劵";
                sendPush.MsgAlert   = string.Format("恭喜您成功兑换抵用劵,扣除{1}{0}元。", Enums.ScoreName, req.TranNum);
                sendPush.MsgContent = "兑换抵用劵";

                #region 更新账户积分信息

                scoreDb          = memberInfo.Score - req.TranNum;
                scoreWithdrawnDb = 0;

                if (scoreDb < 0)
                {
                    scoreDb = 0;
                }

                if (scoreDb < memberInfo.ScoreWithdrawn)
                {
                    scoreWithdrawnDb = scoreDb;
                }
                else
                {
                    scoreWithdrawnDb = memberInfo.ScoreWithdrawn;
                }

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Score          = scoreDb,
                    ScoreWithdrawn = scoreWithdrawnDb,
                    ModifyTime     = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.ReadArticle:
                //付费,阅读文章
                tRecord.PlusReduce = 2;        //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = "阅读文章";
                tRecord.TranNum    = -req.TranNum;

                sendPush.MsgTitle   = string.Format("阅读文章{0}扣除", Enums.ScoreName);
                sendPush.MsgAlert   = string.Format("阅读文章,扣除{0}{1}元。", Enums.ScoreName, req.TranNum);
                sendPush.MsgContent = string.Format("阅读文章{0}扣除", Enums.ScoreName);

                #region 更新账户积分信息

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Score      = (memberInfo.Score - req.TranNum),
                    ModifyTime = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.SaveSelfMedia:
                //自媒体分享,注册手机号码,获取低佣金
                tRecord.PlusReduce = 1;       //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                //tRecord.TranName = "自媒体分享注册";
                tRecord.TranName = "阅读体验";
                tRecord.TranNum  = req.TranNum;

                sendPush.MsgTitle   = string.Format("转入{0}增加", Enums.ScoreName);
                sendPush.MsgAlert   = string.Format("恭喜你获得{0}元现金。", req.TranNum);
                sendPush.MsgContent = string.Format("转入{0}增加", Enums.ScoreName);

                #region 更新账户积分信息

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Score      = (memberInfo.Score + req.TranNum),
                    ModifyTime = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

                #endregion

            case (int)Enums.TranType.Share_New:
                //参与互动
                tRecord.PlusReduce = 1;               //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = "参与互动";
                tRecord.TranNum    = req.TranNum;

                sendPush.MsgTitle   = "参与互动,现金红包增加";
                sendPush.MsgAlert   = string.Format("恭喜您参与互动成功,获得 {0} 元现金红包。", req.TranNum);
                sendPush.MsgContent = "参与互动,现金红包增加";

                #region 更新账户积分信息

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Account    = (memberInfo.Account + req.TranNum),
                    ModifyTime = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            case (int)Enums.TranType.RecCoupon:
                //领取优惠劵
                tRecord.PlusReduce = 1;               //交易获取或者使用 1增加 2 使用(减)
                tRecord.Company    = Enums.Rmb;
                tRecord.TranName   = "领取优惠劵";
                tRecord.TranNum    = req.TranNum;

                sendPush.MsgTitle   = "领取优惠劵,现金红包增加";
                sendPush.MsgAlert   = string.Format("恭喜您领取优惠劵成功,获得 {0} 元现金红包。", req.TranNum);
                sendPush.MsgContent = "领取优惠劵,现金红包增加";

                #region 更新账户积分信息

                //更新账户积分信息
                DbSession.MLT.T_MemberRepository.Update(new T_Member()
                {
                    Account    = (memberInfo.Account + req.TranNum),
                    ModifyTime = dtNow
                }, new T_Member()
                {
                    SysNo = req.UserId
                });

                #endregion

                break;

            default:
                ptcp.DoResult = "交易类型错误";
                return(ptcp);
            }

            DbSession.MLT.T_AccountRecordRepository.Add(tRecord);
            DbSession.MLT.SaveChange();

            if (req.TranNum > 0)
            {
                //极光推送消息
                jg.SendPush(sendPush);
            }

            #endregion

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "保存成功";
            return(ptcp);
        }
Esempio n. 22
0
        /// <summary>
        /// 自媒体文章分享保存手机号码信息,用于注册处理数据
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="authorSysNo"></param>
        /// <param name="articleSysNo"></param>
        /// <returns></returns>
        public Ptcp <string> AddSelfMediaSaveRecord(string mobile, int authorSysNo, int articleSysNo)
        {
            var ptcp = new Ptcp <string>();

            if (string.IsNullOrEmpty(mobile))
            {
                ptcp.DoResult = "手机号码不能为空";
                return(ptcp);
            }

            if (mobile.Length != 11)
            {
                ptcp.DoResult = "手机号码格式不正确";
                return(ptcp);
            }

            //Regex regex = new Regex(RegexExt.mobileRegex);
            //if (!regex.IsMatch(mobile))
            if (mobile.Length != 11)
            {
                ptcp.DoResult = "手机号码格式不正确";
                return(ptcp);
            }

            if (authorSysNo <= 0)
            {
                ptcp.DoResult = "作者ID不能为空";
                return(ptcp);
            }

            if (articleSysNo <= 0)
            {
                ptcp.DoResult = "文章ID不能为空";
                return(ptcp);
            }

            DateTime dtNow = DateTime.Now;
            //判断当前手机号码是否已经注册过了
            var memInfo = mem.QueryMemberInfoByMobile(mobile);

            if (memInfo.DoFlag == PtcpState.Success)
            {
                //会员已经存在 直接关注
                int userid = Converter.ParseInt(memInfo.DoResult, 0);

                //自动关注作者
                ForSelfMediaImpl forSelf = new ForSelfMediaImpl();
                forSelf.SetFollow(new M_SetFollowReq()
                {
                    UserId      = userid,
                    AuthorSysNo = authorSysNo,
                    IsFollow    = true
                });
            }
            else
            {
                //新用户,等注册的时候处理
                DbSession.MLT.T_SelfMediaSaveRecordRepository.Add(new T_SelfMediaSaveRecord()
                {
                    Mobile       = mobile,
                    AuthorSysNo  = authorSysNo,
                    ArticleSysNo = articleSysNo,
                    IsTransfer   = 0,
                    RowCeateDate = dtNow,
                    ModifyTime   = dtNow,
                    IsEnable     = true
                });
                DbSession.MLT.SaveChange();
            }

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "保存成功";
            return(ptcp);
        }
Esempio n. 23
0
        /// <summary>
        /// 获取首页的红点数量
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_QueryHomePageRedDotRes> QueryHomePageRedDot(M_QueryHomePageRedDotReq req)
        {
            var ptcp = new Ptcp <M_QueryHomePageRedDotRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.UserId <= 0)
            {
                ptcp.ReturnValue          = new M_QueryHomePageRedDotRes();
                ptcp.ReturnValue.RedCount = 0;
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = "查询成功";
                return(ptcp);
            }

            //获取关注列表
            var folloList = DbSession.MLT.T_SelfMediaFollowRecordRepository.QueryBy(new T_SelfMediaFollowRecord()
            {
                UserId   = req.UserId,
                IsFollow = true,
                IsEnable = true
            }).ToList();

            if (folloList.IsNull() || !folloList.IsHasRow())
            {
                ptcp.ReturnValue          = new M_QueryHomePageRedDotRes();
                ptcp.ReturnValue.RedCount = 0;
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = "查询成功";
                return(ptcp);
            }

            List <int> authorSysNos    = folloList.Select(c => c.AuthorSysNo.GetValueOrDefault()).Distinct().ToList();
            string     strAuthorSysNos = string.Join(",", authorSysNos);

            string sqlAuthor       = string.Format("SELECT * FROM dbo.T_SelfMediaArticle WHERE AuthorSysNo IN ({0}) AND IsEnable = 1", strAuthorSysNos);
            var    articleInfoList = DbSession.MLT.ExecuteSql <T_SelfMediaArticle>(sqlAuthor).ToList();

            if (articleInfoList.IsNull() || !articleInfoList.IsHasRow())
            {
                ptcp.ReturnValue          = new M_QueryHomePageRedDotRes();
                ptcp.ReturnValue.RedCount = 0;
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = "查询成功";
                return(ptcp);
            }

            DateTime dtNow = DateTime.Now;
            //取的读取记录
            string sqlRead  = string.Format("SELECT * FROM dbo.T_SelfMediaRedDotRecord WHERE UserId = {0} AND AuthorSysNo IN ({1}) AND IsEnable = 1", req.UserId, strAuthorSysNos);
            var    readList = DbSession.MLT.ExecuteSql <T_SelfMediaRedDotRecord>(sqlRead).ToList();

            if (readList.IsNull() || !readList.IsHasRow())
            {
                foreach (var art in articleInfoList)
                {
                    //添加记录
                    DbSession.MLT.T_SelfMediaRedDotRecordRepository.Add(new T_SelfMediaRedDotRecord()
                    {
                        UserId       = req.UserId,
                        AuthorSysNo  = art.AuthorSysNo,
                        ArticleSysNo = art.SysNo,
                        RowCeateDate = dtNow,
                        ModifyTime   = dtNow,
                        IsEnable     = true
                    });
                }
                DbSession.MLT.SaveChange();

                ptcp.ReturnValue          = new M_QueryHomePageRedDotRes();
                ptcp.ReturnValue.RedCount = articleInfoList.Count;
                ptcp.DoFlag   = PtcpState.Success;
                ptcp.DoResult = "查询成功";
                return(ptcp);
            }

            int redCount = articleInfoList.Count - readList.Count;

            if (redCount < 0)
            {
                redCount = 0;
            }

            foreach (var art in articleInfoList)
            {
                if (!readList.Any(c => c.UserId == req.UserId && c.AuthorSysNo == art.AuthorSysNo &&
                                  c.ArticleSysNo == art.SysNo))
                {
                    //添加记录
                    DbSession.MLT.T_SelfMediaRedDotRecordRepository.Add(new T_SelfMediaRedDotRecord()
                    {
                        UserId       = req.UserId,
                        AuthorSysNo  = art.AuthorSysNo,
                        ArticleSysNo = art.SysNo,
                        RowCeateDate = dtNow,
                        ModifyTime   = dtNow,
                        IsEnable     = true
                    });
                }
            }
            DbSession.MLT.SaveChange();


            ptcp.ReturnValue          = new M_QueryHomePageRedDotRes();
            ptcp.ReturnValue.RedCount = redCount;
            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "查询成功";

            return(ptcp);
        }
Esempio n. 24
0
        /// <summary>
        /// 支付回调,更新订单状态
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> UpdatePayState(M_UpdatePayStateReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "UpdatePayState_in", "", jsonParam, "");

            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (req.OrderNo <= 0)
            {
                ptcp.DoResult = "订单号错误";
                return(ptcp);
            }

            if (req.PayTime == null)
            {
                ptcp.DoResult = "支付时间不能为空";
                return(ptcp);
            }

            //校验订单金额
            var orderInfo = DbSession.MLT.T_RechargeRepository.QueryBy(new T_Recharge()
            {
                SysNo    = req.OrderNo,
                IsEnable = true
            }).FirstOrDefault();

            if (orderInfo.IsNull() || orderInfo.SysNo <= 0)
            {
                ptcp.DoResult = "订单号错误";
                return(ptcp);
            }

            if (orderInfo.RechargeAmount != req.RechargeAmount)
            {
                ptcp.DoResult = "支付金额校验失败";
                return(ptcp);
            }

            if (orderInfo.PayState == (int)Enums.PayState.Complete)
            {
                ptcp.DoResult = "已支付成功";
                ptcp.DoFlag   = PtcpState.Success;
                return(ptcp);
            }

            DbSession.MLT.T_RechargeRepository.Update(new T_Recharge()
            {
                PaymentNumber = req.PaymentNumber,
                PayTime       = req.PayTime,
                PayState      = req.PayState,
                ModifyTime    = DateTime.Now
            }, new T_Recharge()
            {
                SysNo = req.OrderNo
            });
            DbSession.MLT.SaveChange();

            ptcp.DoResult = "修改支付状态成功";
            ptcp.DoFlag   = PtcpState.Success;
            return(ptcp);
        }
Esempio n. 25
0
        /// <summary>
        /// 关注/取消关注
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> SetFollow(M_SetFollowReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.AuthorSysNo <= 0)
            {
                ptcp.DoResult = "作者ID错误";
                return(ptcp);
            }

            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            DateTime dtNow = DateTime.Now;

            if (req.IsFollow)
            {
                //取消原来的关注
                DbSession.MLT.T_SelfMediaFollowRecordRepository.Update(new T_SelfMediaFollowRecord()
                {
                    IsFollow   = false,
                    ModifyTime = dtNow
                }, new T_SelfMediaFollowRecord()
                {
                    UserId      = req.UserId,
                    AuthorSysNo = req.AuthorSysNo,
                    IsFollow    = true,
                    IsEnable    = true
                });
                DbSession.MLT.SaveChange();

                //去除这个作者的文章信息,将这些作者的文章信息记录到已读红点表,用于首页显示红点的判断
                var articleList = DbSession.MLT.T_SelfMediaArticleRepository.QueryBy(new T_SelfMediaArticle()
                {
                    AuthorSysNo = req.AuthorSysNo,
                    IsEnable    = true
                }).ToList();

                if (articleList.IsNotNull() && articleList.IsHasRow())
                {
                    //获取红点记录
                    var redList = DbSession.MLT.T_SelfMediaRedDotRecordRepository.QueryBy(new T_SelfMediaRedDotRecord()
                    {
                        UserId      = req.UserId,
                        AuthorSysNo = req.AuthorSysNo,
                        IsEnable    = true
                    }).ToList();


                    if (redList.IsNotNull() && redList.IsHasRow())
                    {
                        foreach (var art in articleList)
                        {
                            if (!redList.Any(c => c.ArticleSysNo.GetValueOrDefault() == art.SysNo.GetValueOrDefault()))
                            {
                                DbSession.MLT.T_SelfMediaRedDotRecordRepository.Add(new T_SelfMediaRedDotRecord()
                                {
                                    UserId       = req.UserId,
                                    AuthorSysNo  = req.AuthorSysNo,
                                    ArticleSysNo = art.SysNo,
                                    RowCeateDate = dtNow,
                                    ModifyTime   = dtNow,
                                    IsEnable     = true
                                });
                            }
                        }
                    }
                    else
                    {
                        foreach (var art in articleList)
                        {
                            DbSession.MLT.T_SelfMediaRedDotRecordRepository.Add(new T_SelfMediaRedDotRecord()
                            {
                                UserId       = req.UserId,
                                AuthorSysNo  = req.AuthorSysNo,
                                ArticleSysNo = art.SysNo,
                                RowCeateDate = dtNow,
                                ModifyTime   = dtNow,
                                IsEnable     = true
                            });
                        }
                    }
                }


                //关注
                DbSession.MLT.T_SelfMediaFollowRecordRepository.Add(new T_SelfMediaFollowRecord()
                {
                    UserId       = req.UserId,
                    AuthorSysNo  = req.AuthorSysNo,
                    IsFollow     = true,
                    RowCeateDate = dtNow,
                    ModifyTime   = dtNow,
                    IsEnable     = true
                });
            }
            else
            {
                //取消关注
                DbSession.MLT.T_SelfMediaFollowRecordRepository.Update(new T_SelfMediaFollowRecord()
                {
                    IsFollow   = false,
                    ModifyTime = dtNow
                }, new T_SelfMediaFollowRecord()
                {
                    UserId      = req.UserId,
                    AuthorSysNo = req.AuthorSysNo,
                    IsFollow    = true,
                    IsEnable    = true
                });
            }

            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "操作成功";

            return(ptcp);
        }
Esempio n. 26
0
        /// <summary>
        /// 我的关注列表
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_QueryMyFollowRes> QueryMyFollow(M_QueryMyFollowReq req)
        {
            var ptcp = new Ptcp <M_QueryMyFollowRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            //取出我的关注
            var myFollows = DbSession.MLT.T_SelfMediaFollowRecordRepository.QueryBy(new T_SelfMediaFollowRecord()
            {
                UserId   = req.UserId,
                IsFollow = true,
                IsEnable = true
            }, " ORDER BY SysNo DESC").ToList();

            if (myFollows.IsNull() || !myFollows.IsHasRow())
            {
                ptcp.DoResult = "没有关注信息";
                return(ptcp);
            }

            //取出作者
            List <int> authIdList = myFollows.Select(c => c.AuthorSysNo.GetValueOrDefault()).ToList();
            string     strAuthor  = string.Join(",", authIdList);

            string sqlArt    = string.Format(@"SELECT * FROM T_SelfMediaArticle WHERE AuthorSysNo IN ({0}) AND IsEnable = 1", strAuthor);
            string sqlPay    = string.Format(@"SELECT * FROM T_SelfMediaPayRecord WHERE UserId = {0} AND IsEnable = 1 ", req.UserId);
            string sqlAuthor = string.Format(@"SELECT * FROM T_SelfMediaAuthor WHERE SysNo IN ({0}) AND IsEnable = 1", strAuthor);

            var artList    = DbSession.MLT.ExecuteSql <T_SelfMediaArticle>(sqlArt).ToList();
            var authorList = DbSession.MLT.ExecuteSql <T_SelfMediaAuthor>(sqlAuthor).ToList();

            if (artList.IsNull() || !artList.IsHasRow() || authorList.IsNull() || !authorList.IsHasRow())
            {
                ptcp.DoResult = "没有关注信息";
                return(ptcp);
            }

            var payList = DbSession.MLT.ExecuteSql <T_SelfMediaPayRecord>(sqlPay).ToList();

            List <M_AuthorEntity> authorEntities = new List <M_AuthorEntity>();

            foreach (var myf in myFollows)
            {
                M_AuthorEntity author = new M_AuthorEntity();
                author.IsFollow = true;

                var authorInfo = authorList.Where(c => c.SysNo == myf.AuthorSysNo).FirstOrDefault();
                if (authorInfo.IsNotNull() && authorInfo.SysNo > 0)
                {
                    #region

                    author.AuthorSysNo = authorInfo.SysNo.GetValueOrDefault();
                    author.AuthorName  = authorInfo.AuthorName;
                    author.Portrait    = authorInfo.Portrait;
                    author.Describe    = authorInfo.Describe;

                    //取出当前作者的文章
                    var nowAuthorArts = artList.Where(c => c.AuthorSysNo == author.AuthorSysNo).ToList();
                    //取出当前会员已读取当前作者的文章
                    if (payList.IsNotNull() && payList.IsHasRow())
                    {
                        #region

                        var payActs = payList.Where(c => c.UserId == req.UserId && c.AuthorSysNo == author.AuthorSysNo).ToList();
                        if (payActs.IsNotNull() && payActs.IsHasRow())
                        {
                            int allCount  = nowAuthorArts.Count;
                            int readCount = payActs.Count;
                            int notCount  = allCount - readCount;
                            if (notCount <= 0)
                            {
                                author.NotReadCount    = 0;
                                author.StrNotReadCount = "0";
                            }
                            else
                            {
                                author.NotReadCount = notCount;
                                if (notCount > 9)
                                {
                                    author.StrNotReadCount = "9+";
                                }
                                else
                                {
                                    author.StrNotReadCount = notCount.ToString();
                                }
                            }
                        }
                        else
                        {
                            author.NotReadCount    = 0;
                            author.StrNotReadCount = "0";
                        }

                        #endregion
                    }
                    else
                    {
                        if (nowAuthorArts.IsNotNull() && nowAuthorArts.IsHasRow())
                        {
                            author.NotReadCount = nowAuthorArts.Count;
                            if (nowAuthorArts.Count > 9)
                            {
                                author.StrNotReadCount = "9+";
                            }
                            else
                            {
                                author.StrNotReadCount = nowAuthorArts.Count.ToString();
                            }
                        }
                        else
                        {
                            author.NotReadCount    = 0;
                            author.StrNotReadCount = "0";
                        }
                    }

                    //取出最新一个的文章标题
                    if (nowAuthorArts.IsNotNull() && nowAuthorArts.IsHasRow())
                    {
                        author.Title = nowAuthorArts.OrderByDescending(c => c.SysNo).FirstOrDefault().Title;
                    }

                    authorEntities.Add(author);

                    #endregion
                }
            }

            ptcp.ReturnValue = new M_QueryMyFollowRes();
            ptcp.ReturnValue.AuthorEntities = authorEntities;
            ptcp.DoFlag = PtcpState.Success;

            return(ptcp);
        }
Esempio n. 27
0
        /// <summary>
        /// 积分转让
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> ScoreTurn(M_ScoreTurnReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "请求错误";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);

            Logger.Write(LoggerLevel.Error, "ScoreTurn_in", "", jsonParam, "");


            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (req.ScoreTurn <= 0)
            {
                ptcp.DoResult = "申请的金额不能小于0";
                return(ptcp);
            }

            //获取会员信息
            var memberInfo = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                SysNo = req.UserId
            }).FirstOrDefault();

            if (memberInfo.IsNull() || memberInfo.SysNo <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (memberInfo.Score - req.ScoreTurn < 0)
            {
                ptcp.DoResult = string.Format("金额不足,您最多只能转让{0}元", memberInfo.Score);
                return(ptcp);
            }

            DateTime dtNow = DateTime.Now;

            //持久化数据
            //更新会员主表,积分信息
            DbSession.MLT.T_MemberRepository.Update(new T_Member()
            {
                ScoreWithdrawn = req.ScoreTurn,
                ModifyTime     = dtNow
            }, new T_Member()
            {
                SysNo = req.UserId
            });

            ////保存积分转让记录 不要了
            //DbSession.MLT.T_ScoreTurnRecordRepository.Add(new T_ScoreTurnRecord()
            //    {
            //        UserId = req.UserId,
            //        FatherId = 0,
            //        TurnScore = req.ScoreTurn,
            //        TurnState = (int)Enums.TurnState.Untreated,
            //        RowCeateDate = dtNow,
            //        IsEnable = true
            //    });

            //保存账户流水交易
            //AddAccountRecord(new M_AddAccountRecordReq()
            //{
            //    TranType = (int)Enums.TranType.PurchaseScore,
            //    TranNum = req.ScoreTurn,
            //    UserId = req.UserId,
            //    InRemarks = ""
            //});

            DbSession.MLT.SaveChange();
            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "申请成功";
            return(ptcp);
        }
Esempio n. 28
0
        /// <summary>
        /// 查询作者下面所有的文章信息
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_QueryAuthorArticleRes> QueryAuthorArticle(M_QueryAuthorArticleReq req)
        {
            var ptcp = new Ptcp <M_QueryAuthorArticleRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.AuthorSysNo <= 0)
            {
                ptcp.DoResult = "作者ID错误";
                return(ptcp);
            }

            if (req.PageIndex <= 0 || req.PageIndex > 10000)
            {
                req.PageIndex = 1;
            }

            if (req.PageSize <= 0 || req.PageSize > 100)
            {
                req.PageSize = 10;
            }

            //获取当前作者信息
            var authorInfo = DbSession.MLT.T_SelfMediaAuthorRepository.QueryBy(new T_SelfMediaAuthor()
            {
                SysNo    = req.AuthorSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (authorInfo.IsNull() || authorInfo.SysNo <= 0)
            {
                ptcp.DoResult = "未能获取到作者信息";
                return(ptcp);
            }

            //获取作者文章信息
            var artciclListCount = DbSession.MLT.T_SelfMediaArticleRepository.QueryCountBy(new T_SelfMediaArticle()
            {
                AuthorSysNo = req.AuthorSysNo,
                IsEnable    = true
            });
            var artciclList = DbSession.MLT.T_SelfMediaArticleRepository.QueryPageBy(req.PageIndex, req.PageSize, new T_SelfMediaArticle()
            {
                AuthorSysNo = req.AuthorSysNo,
                IsEnable    = true
            }, " ORDER BY SysNo DESC").ToList();

            int follow = 0;

            if (req.UserId > 0)
            {
                //是否关注
                var followDb = DbSession.MLT.T_SelfMediaFollowRecordRepository.QueryCountBy(new T_SelfMediaFollowRecord()
                {
                    UserId      = req.UserId,
                    AuthorSysNo = req.AuthorSysNo,
                    IsFollow    = true,
                    IsEnable    = true
                });

                follow = Converter.ParseInt(followDb, 0);
            }

            M_AuthorEntity author = new M_AuthorEntity();

            author.AuthorSysNo = authorInfo.SysNo.GetValueOrDefault();
            author.AuthorName  = authorInfo.AuthorName;
            author.Portrait    = authorInfo.Portrait;
            author.Describe    = authorInfo.Describe;

            if (follow > 0)
            {
                author.IsFollow = true;
            }

            List <M_ArticleEntity> articleEntities = new List <M_ArticleEntity>();

            if (artciclList.IsNotNull() && artciclList.IsHasRow())
            {
                foreach (var art in artciclList)
                {
                    M_ArticleEntity articleEntity = new M_ArticleEntity();

                    articleEntity.ReadScore       = art.ReadScore.GetValueOrDefault();
                    articleEntity.SysNo           = art.SysNo.GetValueOrDefault();
                    articleEntity.HeadPic         = art.HeadPic;
                    articleEntity.Title           = art.Title;
                    articleEntity.Subtitle        = art.Subtitle;
                    articleEntity.Content         = art.Content;
                    articleEntity.SortId          = art.SortId.GetValueOrDefault();
                    articleEntity.RowCeateDate    = art.RowCeateDate.GetValueOrDefault();
                    articleEntity.StrRowCeateDate = articleEntity.RowCeateDate.ToString("yyyy-MM-dd");

                    articleEntities.Add(articleEntity);
                }
            }

            ptcp.ReturnValue = new M_QueryAuthorArticleRes();
            ptcp.ReturnValue.ArticleEntities = articleEntities;
            ptcp.ReturnValue.AuthorEntity    = author;
            ptcp.ReturnValue.Total           = Converter.ParseInt(artciclListCount, 0);
            ptcp.DoFlag = PtcpState.Success;

            return(ptcp);
        }
Esempio n. 29
0
        /// <summary>
        /// 付费阅读
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <string> PayRead(M_PayReadReq req)
        {
            var ptcp = new Ptcp <string>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.UserId <= 0)
            {
                ptcp.DoResult = "会员ID错误";
                return(ptcp);
            }

            if (req.ArticleSysNo <= 0)
            {
                ptcp.DoResult = "文章ID错误";
                return(ptcp);
            }

            var payRecord = DbSession.MLT.T_SelfMediaPayRecordRepository.QueryBy(new T_SelfMediaPayRecord()
            {
                UserId       = req.UserId,
                ArticleSysNo = req.ArticleSysNo,
                IsEnable     = true
            }).FirstOrDefault();

            if (payRecord.IsNotNull() && payRecord.SysNo.GetValueOrDefault() > 0)
            {
                ptcp.DoResult = "已经付过费了,请直接阅读";
                ptcp.DoFlag   = PtcpState.Success;
                return(ptcp);
            }

            //获取文章付费阅读的积分、低佣金
            var article = DbSession.MLT.T_SelfMediaArticleRepository.QueryBy(new T_SelfMediaArticle()
            {
                SysNo    = req.ArticleSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (article.IsNull() || article.SysNo <= 0)
            {
                ptcp.DoResult = "当前文章不存在或者已下架";
                return(ptcp);
            }

            //获取会员的积分
            var member = DbSession.MLT.T_MemberRepository.QueryBy(new T_Member()
            {
                SysNo = req.UserId
            }).FirstOrDefault();

            if (member.IsNull() || member.SysNo <= 0)
            {
                ptcp.DoResult = "未能获取到会员信息";
                return(ptcp);
            }

            if (member.Score < article.ReadScore)
            {
                //ptcp.DoResult = string.Format("抵用金不足,账户抵用金{0}元,阅读当前文章需要{1}元抵用金", member.Score, article.ReadScore);
                //ptcp.DoResult = "抵用金不足";
                ptcp.DoResult = "参与互动获取更多奖励金";
                return(ptcp);
            }

            //插入付费记录
            DbSession.MLT.T_SelfMediaPayRecordRepository.Add(new T_SelfMediaPayRecord()
            {
                UserId       = req.UserId,
                AuthorSysNo  = article.AuthorSysNo,
                ArticleSysNo = article.SysNo.GetValueOrDefault(),
                PayScore     = article.ReadScore,
                RowCeateDate = DateTime.Now,
                IsEnable     = true
            });

            //扣减账户低佣金
            //账号新增流水,插入抵用金
            fb.AddAccountRecord(new M_AddAccountRecordReq()
            {
                TranType = (int)Enums.TranType.ReadArticle,
                UserId   = req.UserId,
                TranNum  = Convert.ToDecimal(article.ReadScore)
            });

            DbSession.MLT.SaveChange();
            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "付费成功";

            return(ptcp);
        }
Esempio n. 30
0
        /// <summary>
        /// 会员注册
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_MemberRegisterRes> MemberRegister(M_MemberRegisterReq req)
        {
            var ptcp = new Ptcp <M_MemberRegisterRes>();

            #region 基础数据验证

            if (req.IsNull())
            {
                ptcp.DoResult = "请求数据非法";
                return(ptcp);
            }

            string jsonParam = JsonConvert.SerializeObject(req);
            Logger.Write(LoggerLevel.Error, "MemberRegister_in", "", jsonParam, "");

            if (string.IsNullOrEmpty(req.ClientIp))
            {
                //ptcp.DoResult = "IP不能为空";
                //return ptcp;
                req.ClientIp = "127.0.0.1";
            }

            if (string.IsNullOrEmpty(req.DeviceCode))
            {
                //    ptcp.DoResult = "设备码不能为空";
                //    return ptcp;
                req.DeviceCode = "-1";
            }

            if (req.SourceTypeSysNo != (int)Enums.SourceTypeSysNo.AndroIdApp && req.SourceTypeSysNo != (int)Enums.SourceTypeSysNo.IosApp)
            {
                //ptcp.DoResult = "来源渠道不能为空";
                //return ptcp;

                req.SourceTypeSysNo = (int)Enums.SourceTypeSysNo.Default;
            }

            if (string.IsNullOrEmpty(req.Mobile))
            {
                ptcp.DoResult = "手机号码不能为空";
                return(ptcp);
            }

            if (req.Mobile.Length != 11)
            {
                ptcp.DoResult = "手机号码格式不正确";
                return(ptcp);
            }

            //Regex regex = new Regex(RegexExt.mobileRegex);
            //if (!regex.IsMatch(req.Mobile))
            if (req.Mobile.Length != 11)
            {
                ptcp.DoResult = "手机号码格式不正确";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.MemPassWord))
            {
                ptcp.DoResult = "密码不能为空";
                return(ptcp);
            }

            if (req.MemPassWord.Length > 20 || req.MemPassWord.Length < 6)
            {
                ptcp.DoResult = "密码长度不能小于6位,大于20位";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.Portrait))
            {
                ptcp.DoResult = "头像不能为空";
                return(ptcp);
            }

            if (string.IsNullOrEmpty(req.NickName))
            {
                ptcp.DoResult = "昵称不能为空";
                return(ptcp);
            }

            if (req.NickName.Length > 10)
            {
                ptcp.DoResult = "昵称不能超过10个字符";
                return(ptcp);
            }

            if (req.Sex != (int)Enums.Sex.men && req.Sex != (int)Enums.Sex.women)
            {
                //IOS审核性别、生日、区域不可强制,如果客户没有选择默认给 0  保密
                req.Sex = 0;
            }

            //IOS审核性别、生日、区域不可强制,如果客户没有选择默认给 null
            if (req.Birthday != null)
            {
                if (Convert.ToDateTime(req.Birthday) > DateTime.Now)
                {
                    ptcp.DoResult = "请正确的选择生日";
                    return(ptcp);
                }
            }

            if (req.RegProvince <= 0)
            {
                //IOS审核性别、生日、区域不可强制
                req.RegProvince = 0;
                req.RegCity     = 0;
                req.RegArea     = 0;
            }

            if (req.RegCity <= 0)
            {
                //IOS审核性别、生日、区域不可强制
                req.RegProvince = 0;
                req.RegCity     = 0;
                req.RegArea     = 0;
            }

            if (req.RegArea <= 0)
            {
                //IOS审核性别、生日、区域不可强制
                req.RegProvince = 0;
                req.RegCity     = 0;
                req.RegArea     = 0;
            }

            if (string.IsNullOrEmpty(req.SmsCode))
            {
                ptcp.DoResult = "短信验证码不能为空";
                return(ptcp);
            }

            #endregion

            //检查会员是否已经存在
            var isExtRes = CheckMemberIsExist(Enums.SelectCustomer.Mobile, req.Mobile);
            if (isExtRes.IsNotNull() && isExtRes.DoFlag == PtcpState.Success)
            {
                ptcp.DoResult = "手机号码已经存在,请直接登录";
                return(ptcp);
            }

            //不存在,更新验证码,并插入会员
            var sendRes = sms.CheckSmsCode((int)Enums.SmsType.Reg, req.Mobile, req.SmsCode);
            if (sendRes.IsNull() || sendRes.DoFlag == PtcpState.Failed)
            {
                if (!string.IsNullOrEmpty(sendRes.DoResult))
                {
                    ptcp.DoResult = sendRes.DoResult;
                    return(ptcp);
                }
                else
                {
                    ptcp.DoResult = "注册失败,请稍后再试";
                    return(ptcp);
                }
            }

            DateTime dtNow = DateTime.Now;

            //计算资讯类型
            //2017-12-16调整为根据性别计算  0 没有选择性别  1 男  2 女
            int inforType = req.Sex;

            #region 老的计算逻辑  不要了

            //if (req.Birthday != null)
            //{
            //    #region

            //    DateTime birthdy = Convert.ToDateTime(req.Birthday);
            //    int year = birthdy.Year;
            //    int yearNow = dtNow.Year;

            //    int ageMem = yearNow - year;
            //    if (ageMem > 30)
            //    {
            //        if (req.Sex == (int) Enums.Sex.men)
            //        {
            //            //30岁以上男
            //            inforType = (int) Enums.InforType.Man30Up;
            //        }
            //        else
            //        {
            //            //30岁以下男
            //            inforType = (int)Enums.InforType.Man30Lower;
            //        }
            //    }
            //    else
            //    {
            //        if (req.Sex == (int)Enums.Sex.women)
            //        {
            //            //30岁以上女
            //            inforType = (int)Enums.InforType.Woman30Up;
            //        }
            //        else
            //        {
            //            //30岁以下女
            //            inforType = (int)Enums.InforType.Woman30Lower;
            //        }
            //    }

            //    #endregion
            //}

            #endregion

            string sql = "";

            if (req.Birthday != null)
            {
                sql = string.Format(
                    @"INSERT INTO T_Member (Mobile,Portrait,MemPassWord,NickName,Sex,RegProvince,RegCity,RegArea,Birthday,InforType,Account,AccountWithdrawn,Score,ScoreWithdrawn,OpenidWxOpen,LastLoginTime,SourceTypeSysNo,DeviceCode,MobileModel,ClientIp,MinWithdrawals,RowCeateDate,ModifyTime,timestamp) OUTPUT INSERTED.SysNo VALUES ('{0}','{1}','{2}','{3}',{4},{5},{6},{7},'{8}',{9},0,0,0,0,NULL,'{10}',{11},'{12}','{13}','{14}',1,'{15}',NULL,DEFAULT)",
                    req.Mobile, req.Portrait, EncryptionExt.MD5Encrypt(req.MemPassWord.Trim(), 16), req.NickName,
                    req.Sex, req.RegProvince, req.RegCity, req.RegArea, req.Birthday, inforType, dtNow,
                    req.SourceTypeSysNo, req.DeviceCode, req.MobileModel, req.ClientIp, dtNow);
            }
            else
            {
                sql = string.Format(
                    @"INSERT INTO T_Member (Mobile,Portrait,MemPassWord,NickName,Sex,RegProvince,RegCity,RegArea,Birthday,InforType,Account,AccountWithdrawn,Score,ScoreWithdrawn,OpenidWxOpen,LastLoginTime,SourceTypeSysNo,DeviceCode,MobileModel,ClientIp,MinWithdrawals,RowCeateDate,ModifyTime,timestamp) OUTPUT INSERTED.SysNo VALUES ('{0}','{1}','{2}','{3}',{4},{5},{6},{7},NULL,{8},0,0,0,0,NULL,'{9}',{10},'{11}','{12}','{13}',1,'{14}',NULL,DEFAULT)",
                    req.Mobile, req.Portrait, EncryptionExt.MD5Encrypt(req.MemPassWord.Trim(), 16), req.NickName,
                    req.Sex, req.RegProvince, req.RegCity, req.RegArea, inforType, dtNow,
                    req.SourceTypeSysNo, req.DeviceCode, req.MobileModel, req.ClientIp, dtNow);
            }

            int sysNo = DbSession.MLT.ExecuteSql <int>(sql).FirstOrDefault();

            #region 处理个人账户中心默认欢迎页面 约定 T_InforConfigure 表的 SysNo = 1 为欢迎页面的消息

            DbSession.MLT.T_AccountRecommendRepository.Add(new T_AccountRecommend()
            {
                UserId       = sysNo,
                InforSysNo   = 1,
                IsPushIn     = 0,
                RowCeateDate = dtNow,
                ModifyTime   = dtNow,
                IsEnable     = true
            });

            #endregion

            #region 处理会员邀请

            //检查当前会员手机号码是否存在要求记录里面
            var share = DbSession.MLT.T_ShareRegisterRepository.QueryBy(new T_ShareRegister()
            {
                CoverMobile = req.Mobile,
                IsEnable    = true
            }, " ORDER BY SysNo DESC").FirstOrDefault();

            //获取答题记录
            var answers = DbSession.MLT.T_ShareAnswerRecordRepository.QueryBy(new T_ShareAnswerRecord()
            {
                Mobile     = req.Mobile,
                IsTransfer = 0,
                IsEnable   = true
            }).ToList();

            if (share.IsNotNull() && share.SysNo > 0 && answers.IsHasRow())
            {
                //未发送奖励金
                if (share.IsReceive == false)
                {
                    #region

                    //获取最新的一道题的奖励金
                    var answersneow = answers.Where(c => c.AnswerMoney > 0).OrderByDescending(c => c.SysNo).FirstOrDefault();
                    if (answersneow.IsNotNull() && answersneow.SysNo > 0)
                    {
                        //给分享人发送奖励金 新增流水
                        fb.AddAccountRecord(new M_AddAccountRecordReq()
                        {
                            UserId   = share.ShareUserId.GetValueOrDefault(),
                            TranNum  = answersneow.AnswerMoney.GetValueOrDefault(),
                            TranType = (int)Enums.TranType.Share
                        });

                        //给被分享人(当前注册的会员)发送奖励金 新增流水
                        fb.AddAccountRecord(new M_AddAccountRecordReq()
                        {
                            UserId   = sysNo,
                            TranNum  = answersneow.AnswerMoney.GetValueOrDefault(),
                            TranType = (int)Enums.TranType.Partic
                        });

                        //更新发送状态
                        DbSession.MLT.T_ShareRegisterRepository.Update(new T_ShareRegister()
                        {
                            CoverUserId = sysNo,
                            ModifyTime  = dtNow,
                            IsReceive   = true
                        }, new T_ShareRegister()
                        {
                            SysNo = share.SysNo
                        });

                        //更新分享答题记录
                        //将分享答题记录迁移到答题记录表
                        foreach (var a in answers)
                        {
                            DbSession.MLT.T_AnswerRecordRepository.Add(new T_AnswerRecord()
                            {
                                UserId       = sysNo,
                                AnsSysNo     = a.AnsSysNo,
                                SubSysNo     = a.SubSysNo,
                                AnswerMoney  = a.AnswerMoney,
                                RowCeateDate = a.RowCeateDate,
                                ModifyTime   = dtNow,
                                IsEnable     = true
                            });

                            DbSession.MLT.T_ShareAnswerRecordRepository.Update(new T_ShareAnswerRecord()
                            {
                                ModifyTime = dtNow,
                                IsTransfer = 1
                            }, new T_ShareAnswerRecord()
                            {
                                SysNo = a.SysNo
                            });
                        }
                    }

                    #endregion

                    //DbSession.MLT.SaveChange();
                }
            }

            #endregion

            #region 处理自媒体分享注册

            var selfMediaList = DbSession.MLT.T_SelfMediaSaveRecordRepository.QueryBy(new T_SelfMediaSaveRecord()
            {
                Mobile     = req.Mobile,
                IsTransfer = 0,
                IsEnable   = true
            }, " order by SysNo desc").ToList();
            if (selfMediaList.IsNotNull() && selfMediaList.IsHasRow())
            {
                ForSelfMediaImpl forSelf = new ForSelfMediaImpl();
                foreach (var selfMedia in selfMediaList)
                {
                    //更新记录
                    DbSession.MLT.T_SelfMediaSaveRecordRepository.Update(new T_SelfMediaSaveRecord()
                    {
                        TranNum    = 15,
                        IsTransfer = 1,
                        ModifyTime = dtNow
                    }, new T_SelfMediaSaveRecord()
                    {
                        SysNo  = selfMedia.SysNo,
                        Mobile = req.Mobile
                    });

                    //自动关注作者
                    forSelf.SetFollow(new M_SetFollowReq()
                    {
                        UserId      = sysNo,
                        AuthorSysNo = selfMedia.AuthorSysNo.GetValueOrDefault(),
                        IsFollow    = true
                    });
                }

                //给当前会员发送低佣金  不给作者奖励金
                fb.AddAccountRecord(new M_AddAccountRecordReq()
                {
                    UserId   = sysNo,
                    TranNum  = 15,
                    TranType = (int)Enums.TranType.SaveSelfMedia
                });

                ptcp.ReturnValue              = new M_MemberRegisterRes();
                ptcp.ReturnValue.AuthorSysNo  = selfMediaList[0].AuthorSysNo.GetValueOrDefault();
                ptcp.ReturnValue.ArticleSysNo = selfMediaList[0].ArticleSysNo.GetValueOrDefault();
            }

            #endregion

            DbSession.MLT.SaveChange();

            ptcp.DoFlag   = PtcpState.Success;
            ptcp.DoResult = "注册成功";
            return(ptcp);
        }