/// <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); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }