first commit

This commit is contained in:
Your Name 2024-06-05 14:20:46 +08:00
parent ca32eef513
commit bec6766f03
6 changed files with 25 additions and 31 deletions

View File

@ -59,7 +59,7 @@ class User(models.Model):
member_end_time = models.BigIntegerField(blank=True, null=True) # 存储会员到期时间的时间戳
is_active = models.BooleanField(default=True) # 状态,启用/禁用,默认启用
usage_count = models.IntegerField(default=0, blank=True, null=True) # 用户使用次数
coins = models.IntegerField(default=3, verbose_name='金币数量') # 用户金币数量
coins = models.IntegerField(default=30, verbose_name='金币数量') # 用户金币数量
balance = models.DecimalField(max_digits=10, decimal_places=2, default=0.00, verbose_name='用户余额') # 用户余额
inviter_nickname = models.CharField(max_length=150, blank=True, null=True, verbose_name='邀请人昵称') # 用户邀请人昵称
invitees_count = models.IntegerField(default=0, verbose_name='邀请人数量') # 邀请人数量
@ -237,7 +237,7 @@ class TransactionLog(models.Model):
class IDCounter(models.Model):
count = models.IntegerField(default=10000) # 初始化为0或其他你想开始的数字
count = models.IntegerField(default=30000) # 初始化为0或其他你想开始的数字
@classmethod
def get_next_id(cls):

View File

@ -224,13 +224,6 @@ def miniapp_login(request):
if 'openid' in result:
openid = result['openid']
session_key = result['session_key']
# 解密encryptedData获取用户信息
# pc = WXBizDataCrypt(APPID, session_key)
# decrypted_data = pc.decrypt(encrypted_data, iv)
# token = generate_token_for_user(openid)
# print(decrypted_data)
if openid:
user, created = User.objects.get_or_create(openid=openid)
# 如果是新用户,则设置其它属性 defaultDailyFreeParseNum totalParseNum
@ -268,36 +261,35 @@ def miniapp_login(request):
#获取用户信息
def userinfo(request):
data = json.loads(request.body)
openid = data.get('openid','')
openid = data.get('openid', '')
if contains_sql_or_xss(openid):
logger.error(f'{openid} 用户触发威胁字符检测: {data}')
return JsonResponse({'status': 'error', 'message': '你的国际行为已被记录,我们将保留追责权利'})
if not openid:
return JsonResponse({"status": "erroe",'body': '缺少openid参数'})
else:
return JsonResponse({"status": "error", 'body': '缺少openid参数'})
try:
user = User.objects.get(openid=openid)
except User.DoesNotExist:
return JsonResponse({"status": "error", 'userInfo': None})
increment = -0
function_type = 'luserinfo'
result = update_usage_count(openid, increment, function_type)
membership_types = MembershipType.objects.all().values('type', 'title', 'description', 'price', 'coins','is_quota')
user = User.objects.get(openid=openid)
if user:
membership_types = MembershipType.objects.all().values('type', 'title', 'description', 'price', 'coins', 'is_quota')
user_info = model_to_dict(user)
try:
user_info['member_start_time'] = time.strftime("%Y-%m-%d %H:%M:%S",
time.localtime(user.member_start_time))
user_info['member_end_time'] = time.strftime("%Y-%m-%d %H:%M:%S",
time.localtime(user.member_end_time))
user_info['member_start_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(user.member_start_time))
user_info['member_end_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(user.member_end_time))
except:
user_info['member_start_time'] = user.member_start_time
user_info['member_end_time'] = user.member_end_time
membership_type_list = list(membership_types)
return JsonResponse({"status": "success", 'userInfo': user_info, 'membershipTypeList': membership_type_list})
else:
return JsonResponse({"status": "erroe", 'userInfo': None})
def generate_token_for_user(openid):
# 定义密钥,你应该将其保存在配置文件或环境变量中
@ -564,7 +556,8 @@ def redeem_card(request):
return JsonResponse({'error': '卡密激活失败,请联系管理员'})
elif card.card_type == 'quota':
# 如果是额度卡,调用更新使用次数函数
success = update_usage_count(openid, increment=+card.validity_period)
success = update_usage_count(openid, increment=+card.validity_period,function_type='redeem_card')
if success.get('success'):
card.used_by_openid = openid
card.is_used = True

1
test Submodule

@ -0,0 +1 @@
Subproject commit ca32eef513aade1d80ac5badf5b23f5820f045f5

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 MiB