/// <summary> /// 赠币 /// author:林辉 /// </summary> /// <returns></returns> public async Task <bool> GiveCurrencyAsync(GiveCurrencyDto giveCurrency) { ZhangYuRequest Request = new ZhangYuRequest(); Request.AppKey = _options.Value.AppKey; Request.Data = _sys.Base64Encode(Encoding.UTF8, JsonHelper.SerializeObject(giveCurrency)); Request.Sign = _sys.Sha512Encode($"{Request.AppKey}{_options.Value.AppSecret}{Request.Data}{Request.Nonce}{Request.Timestamp}"); string strJson = JsonHelper.SerializeObject(Request); string strUrl = string.Format(_options.Value.Url, "v1", "gift"); _log.Info($"用户赠币请求参数{strJson}"); var response = JsonHelper.DeserializeJsonToObject <ZhangYuResponse>(_sys.PostJsonData(strUrl, strJson, Encoding.UTF8)); var result = JsonHelper.DeserializeJsonToObject <CostStatusResult>(_sys.Base64Decode(response.Data)); _log.Info($"用户赠币返回值{JsonHelper.SerializeObject(response)}"); if (result.code == 0) { GiveCurrencyLogDto giveCurrencyLogDto = new GiveCurrencyLogDto { CreateTime = DateTime.Now, Key = giveCurrency.key, Order = giveCurrency.forderId, UserId = long.Parse(giveCurrency.fuserId) }; var entity = _mapper.Map <GiveCurrencyLogDto, GiveCurrencyLogEntity>(giveCurrencyLogDto); _context.giveCurrencyLog.Add(entity); await _context.SaveChangesAsync(); return(true); } return(false); }
public async Task <H5ResponseViewModel <object> > UserNewAward([FromBody] H5RequestViewModel Parameters) { var sysCode = _sys.CheckParameters(Parameters.data, "userverify"); H5ResponseViewModel <object> response = null; if (sysCode == SysCode.Ok) { string token = Parameters.data.token; //token是否有效 bool isLog = _token.VerifyToken(token); if (isLog) { UserLoginDto userLogin = JsonHelper.DeserializeJsonToObject <UserLoginDto>(RedisHelper.StringGet($"{CacheKey.Token}{token}", RedisFolderEnum.token, RedisEnum.Five)); long userId = long.Parse(userLogin.Userid.ToString()); sysCode = _userTask.JudgeUser518(userId); bool isNo = false; GiveCurrencyDto giveCurrency = new GiveCurrencyDto { amount = 518.00, forderId = Guid.NewGuid().ToString(), fuserId = userId.ToString(), key = _currencyKey.Activity }; if (sysCode == SysCode.Ok) { //关闭章鱼赠币 // isNo = await _biz.GiveCurrencyAsync(giveCurrency); //从php赠币 isNo = await _accout.GiveCurrencyAsync_php(giveCurrency); } _log.InfoFormat("H5用户518领取, 用户id:{0},订单号:{1},code:{2},赠送结果{3}", userLogin.Userid, giveCurrency.forderId, sysCode, isNo); } else { sysCode = SysCode.TokenLose; } } response = new H5ResponseViewModel <object>(sysCode, null); return(response); }
public async Task <H5ResponseViewModel <object> > UserEight([FromBody] H5RequestViewModel Parameters) { Thread.Sleep(3000); H5ResponseViewModel <object> response = null; bool isLog = _token.VerifyToken((string)Parameters.data.userOpenId, (string)Parameters.data.sessionToken); var sysCode = SysCode.Ok; if (isLog) { string strJson = RedisHelper.StringGet($"{CacheKey.Token}{(string)Parameters.data.userOpenId}", RedisFolderEnum.token, RedisEnum.Three); var userLog = JsonHelper.DeserializeJsonToObject <UserLoginDto>(strJson); sysCode = _userTask.JudgeUser518(userLog.Userid); GiveCurrencyDto giveCurrency = new GiveCurrencyDto { amount = 518.00, forderId = Guid.NewGuid().ToString(), fuserId = userLog.Userid.ToString(), key = _currencyKey.Activity }; bool isNo = false; if (sysCode == SysCode.Ok) { //关闭章鱼赠币 //isNo = await _biz.GiveCurrencyAsync(giveCurrency); //从php赠币 isNo = await _accout.GiveCurrencyAsync_php(giveCurrency); } _log.InfoFormat("518,用户id:{0},订单号:{1},code:{2},赠送结果{3}", userLog.Userid, giveCurrency.forderId, sysCode, isNo); } else { sysCode = SysCode.SessionTokenLose; } response = new H5ResponseViewModel <object>(sysCode, null); return(response); }
public async Task <H5ResponseViewModel <userSignInfoViewModel> > UserSign_v1([FromBody] H5RequestViewModel Parameters) { H5ResponseViewModel <userSignInfoViewModel> response = null; string userId = _biz.IsNoLogin((string)Parameters.data.token, (string)Parameters.data.userOpenId); var sysCode = SysCode.Ok; userSignInfoViewModel userSignInfo = null; if (userId != "0") { int day = 0; decimal multiple = 0.00m; decimal amout = 0.00m; long user_id = long.Parse(userId); var userSign = await _userTask.QueryUserSignAsync(user_id); UserSignDto userSignDto = null; DateTime nowTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); //当前时间 Random rd = new Random(); int num = rd.Next(10, 16); //随机数 if (userSign != null) { //有签到信息 DateTime time = Convert.ToDateTime(userSign.Createtime.ToString("yyyy-MM-dd")); //用户最后一次签到时间 if (nowTime != time) { if (TimeHelper.Dateday(nowTime, time) == 1) //当前时间和签到时间相差一天 { if (userSign.Number < 6) //小于六天 { multiple = Convert.ToDecimal((userSign.Number * 0.5) + 0.5); //从新计算倍数 amout = num * multiple; } else { multiple = 3; amout = num * multiple; } day = userSign.Number + 1; } else { //签到中断,从第一天开始计算 multiple = Convert.ToDecimal((1 * 0.5) + 0.5);//签到倍数 amout = num * multiple; day = 1; } } else { sysCode = SysCode.RepeatToReceive; } } else { multiple = Convert.ToDecimal((1 * 0.5) + 0.5);//签到倍数 amout = num * multiple; day = 1; } if (sysCode == SysCode.Ok) { userSignDto = new UserSignDto { Amount = amout, Createtime = DateTime.Now, Multiple = multiple, Number = day, UserId = long.Parse(userId) }; if (await _userTask.RecordUserSignAsync(userSignDto)) //记录签到记录 { GiveCurrencyDto giveCurrencyDto = new GiveCurrencyDto { amount = double.Parse(userSignDto.Amount.ToString()), forderId = Guid.NewGuid().ToString(), fuserId = userId.ToString(), key = _currencyKey.Sign, }; bool isNo = false; //关闭章鱼赠币 //isNo = await _biz.GiveCurrencyAsync(giveCurrencyDto); //从php 赠币 isNo = await _accout.GiveCurrencyAsync_php(giveCurrencyDto); userSignInfo = new userSignInfoViewModel { Amount = amout.ToString(), Multiple = multiple.ToString(), SignTime = DateTime.Now, UserSignNumber = userSignDto.Number.ToString() }; _log.InfoFormat("签到,用户id:{0},金额:{1},签到时间{2},订单号:{3},签到结果:{4}" , userId, userSignDto.Amount, userSignDto.Createtime, giveCurrencyDto.forderId, isNo); } } } else { sysCode = SysCode.SessionTokenLose; } response = new H5ResponseViewModel <userSignInfoViewModel>(sysCode, sysCode == SysCode.Ok ? userSignInfo : null); return(response); }
public async Task <H5ResponseViewModel <userSignInfoViewModel> > UserSign([FromBody] H5RequestViewModel Parameters) { var sysCode = _sys.CheckParameters(Parameters.data, "userverify"); H5ResponseViewModel <userSignInfoViewModel> response = null; userSignInfoViewModel userSignInfo = null; if (sysCode == SysCode.Ok) { string token = Parameters.data.token; //token是否有效 bool isLog = _token.VerifyToken(token); if (isLog) { UserLoginDto userLogin = JsonHelper.DeserializeJsonToObject <UserLoginDto>(RedisHelper.StringGet($"{CacheKey.Token}{token}", RedisFolderEnum.token, RedisEnum.Five)); long userId = long.Parse(userLogin.Userid.ToString()); UserSignDto userSign = await _userTask.QueryUserSignAsync(userId); UserSignDto userSignDto = null; DateTime nowTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));//当前时间 Random rd = new Random(); int day = 0; decimal multiple = 0.00m; decimal amout = 0.00m; int num = rd.Next(10, 16);//随机数 if (userSign != null) { //有签到信息 DateTime time = Convert.ToDateTime(userSign.Createtime.ToString("yyyy-MM-dd")); //用户最后一次签到时间 if (nowTime != time) { if (TimeHelper.Dateday(nowTime, time) == 1) //当前时间和签到时间相差一天 { if (userSign.Number < 6) //小于六天 { multiple = Convert.ToDecimal((userSign.Number * 0.5) + 0.5); //从新计算倍数 amout = num * multiple; } else { multiple = 3; amout = num * multiple; } day = userSign.Number + 1; } else { //签到中断,从第一天开始计算 multiple = Convert.ToDecimal((1 * 0.5) + 0.5);//签到倍数 amout = num * multiple; day = 1; } } else { sysCode = SysCode.RepeatToReceive; } } else { multiple = Convert.ToDecimal((1 * 0.5) + 0.5);//签到倍数 amout = num * multiple; day = 1; } if (sysCode == SysCode.Ok) { userSignDto = new UserSignDto { Amount = amout, Createtime = DateTime.Now, Multiple = multiple, Number = day, UserId = userId }; if (await _userTask.RecordUserSignAsync(userSignDto)) //记录签到记录 { GiveCurrencyDto giveCurrencyDto = new GiveCurrencyDto { amount = double.Parse(userSignDto.Amount.ToString()), forderId = Guid.NewGuid().ToString(), fuserId = userId.ToString(), key = _currencyKey.Sign, }; bool isNo = false; //关闭章鱼赠币 //isNo = await _biz.GiveCurrencyAsync(giveCurrencyDto); //从php赠币 isNo = await _accout.GiveCurrencyAsync_php(giveCurrencyDto); userSignInfo = new userSignInfoViewModel { Amount = amout.ToString(), Multiple = multiple.ToString(), SignTime = DateTime.Now, UserSignNumber = userSignDto.Number.ToString() }; _log.InfoFormat("签到,用户id:{0},金额:{1},签到时间{2},订单号:{3},签到结果:{4}" , userId, userSignDto.Amount, userSignDto.Createtime, giveCurrencyDto.forderId, isNo); } } } else { sysCode = SysCode.TokenLose; } } response = new H5ResponseViewModel <userSignInfoViewModel>(sysCode, sysCode == SysCode.Ok ? userSignInfo : null); return(response); }