Ejemplo n.º 1
0
def signin(request):
    result = {}
    today = date.today()
    signin_last = UserSignIn.objects.filter(user=request.user).first()
    if signin_last and signin_last.date == today:
        result['code'] = 1
    else:
        signed_conse_days = 1
        if signin_last and signin_last.date == today - timedelta(days=1):
            signed_conse_days += signin_last.signed_conse_days
        UserSignIn.objects.create(user=request.user,
                                  date=date.today(),
                                  signed_conse_days=signed_conse_days)
        charge_score(request.user, '0', 5, u"签到奖励")
        if signed_conse_days % 7 == 0:
            charge_score(request.user, '0', 20, u"连续签到7天奖励")
        result['code'] = 0
    first_day_of_month = today - timedelta(today.day - 1)
    sign_days = UserSignIn.objects.filter(
        user=request.user, date__gte=first_day_of_month).values('date')
    records = []
    for day in sign_days:
        records.append(day.get('date').day)
    result['records'] = records
    #     result.update(scores=request.user.scores, userimg=request.user.id%4)
    return JsonResponse(result)
Ejemplo n.º 2
0
def get_lottery(request):
    if request.method != "POST" or not request.is_ajax():
        logger.warning("Experience refused no-ajax request!!!")
        raise Http404
    result = {}
    if not request.user.is_authenticated() and not is_authenticated_app(
            request):
        result['code'] = -1
        result['url'] = reverse('login') + "?next=" + reverse(
            'activity_lottery')
        return JsonResponse(result)
    if request.user.scores < 10:
        result['code'] = -2
        return JsonResponse(result)
    trans = charge_score(request.user, '1', 10, u"积分抽奖")
    if not trans:
        result['code'] = -3
        logger.error("lottery 10 scores charge error!")
        return JsonResponse(result)
    event = UserEvent.objects.create(user=request.user,
                                     event_type='7',
                                     audit_state='1')
    trans.user_event = event
    trans.save(update_fields=['user_event'])
    award_list = [
        (1, 61),
        (2, 30),
        (3, 6),
        (4, 2),
        (5, 1),
        (6, 0),
    ]
    itemid = weighted_random(award_list)
    translist = None
    if itemid == 2:
        translist = charge_score(request.user, '0', 10, u'抽奖获奖')
    elif itemid == 3:
        translist = charge_score(request.user, '0', 50, u'抽奖获奖')
    elif itemid == 4:
        translist = charge_money(request.user, '0', 80, u'抽奖获奖')
    elif itemid == 5:
        translist = charge_money(request.user, '0', 200, u'抽奖获奖')
    if itemid != 1 and not translist:
        result['code'] = 4
        logger.error("Get lottery award charge error!")
        result['msg'] = "记账失败!"
    else:
        result['code'] = 0
        result['itemid'] = itemid
        if itemid != 1:
            LotteryRecord.objects.create(user=request.user,
                                         award=AwardTable.get(itemid, u'未知'))
            translist.user_event = event
            translist.save(update_fields=['user_event'])
    return JsonResponse(result)
Ejemplo n.º 3
0
def submit_order(request):
    if not request.is_ajax():
        raise Http404
    result={'code':-1, 'url':''}
    if not request.user.is_authenticated():
        result['code'] = -1
        return JsonResponse(result)   
    name = request.GET.get("name", '')
    tel = request.GET.get("tel", '')
    addr = request.GET.get("addr", '')
    remark= request.GET.get("remark", '')
    good_id= request.GET.get("id", '')
    postcode = request.GET.get("postcode", '')
    if not (name and tel and addr and good_id):
        raise Http404
    try:
        good_id = int(good_id)
    except ValueError:
        raise Http404
    commodity = Commodity.objects.get(pk=good_id)
    ret = charge_score(request.user, '1', commodity.price, commodity.name)
    if ret is not None:
        logger.debug('Exchanging scores is successfully reduced!')
        exg_obj = ExchangeRecord.objects.create(tranlist=ret,commodity=commodity,
                                      name=name,tel=tel,addr=addr,postcode=postcode,message=remark)
        event = UserEvent.objects.create(user=request.user, event_type='3',invest_amount=commodity.price,
                         audit_state='1',remark=remark, content_object=exg_obj)
        ret.user_event = event
        ret.save(update_fields=['user_event'])
        result['code'] = 0
    else:
        logger.debug('Exchanging scores is failed to reduce!!!')
        result['code'] = 1
    return JsonResponse(result)
Ejemplo n.º 4
0
def submit_order(request):
    result = {'code': 0, 'url': ''}
    name = request.GET.get("name", '')
    tel = request.GET.get("tel", '')
    addr = request.GET.get("addr", '')
    remark = request.GET.get("remark", '')
    good_id = request.GET.get("id", '')
    good_id = int(good_id)
    commodity = Commodity.objects.get(pk=good_id)
    ret = charge_score(request.user, '1', commodity.price, commodity.name)
    if ret is not None:
        logger.debug('Exchanging scores is successfully reduced!')
        exg_obj = ExchangeRecord.objects.create(tranlist=ret,
                                                commodity=commodity,
                                                name=name,
                                                tel=tel,
                                                addr=addr,
                                                message=remark)
        event = UserEvent.objects.create(user=request.user,
                                         event_type='3',
                                         invest_amount=commodity.price,
                                         audit_state='1',
                                         remark=remark,
                                         content_object=exg_obj)
        ret.user_event = event
        ret.save(update_fields=['user_event'])
        result['code'] = 0
    else:
        logger.debug('Exchanging scores is failed to reduce!!!')
        result['code'] = 1
    return JsonResponse(result)
Ejemplo n.º 5
0
def submit_order(request):
    if not request.is_ajax():
        raise Http404
    result={'code':-1, 'url':''}
    if not request.user.is_authenticated():
        result['code'] = -1
        result['url'] = reverse('login') + "?next=" + reverse('account_score')
        return JsonResponse(result)
    name = request.GET.get("name", '')
    tel = request.GET.get("tel", '')
    addr = request.GET.get("addr", '')
    remark= request.GET.get("remark", '')
    good_id= request.GET.get("id", '')
    if not (name and tel and addr and good_id):
        return Http404
    try:
        good_id = int(good_id)
    except ValueError:
        return Http404
    commodity = Commodity.objects.get(pk=good_id)
    ret = charge_score(request.user, '1', commodity.price, commodity.name)
    if ret is not None:
        logger.debug('Exchanging scores is successfully reduced!')
        exg_obj = ExchangeRecord.objects.create(tranlist=ret,commodity=commodity,
                                      name=name,tel=tel,addr=addr,message=remark)
        event = UserEvent.objects.create(user=request.user, event_type='3',invest_amount=commodity.price,
                         audit_state='1',remark=remark, content_object=exg_obj)
        ret.user_event = event
        ret.save(update_fields=['user_event'])
        result['code'] = 0
    else:
        logger.debug('Exchanging scores is failed to reduce!!!')
        result['code'] = 1
    return JsonResponse(result)
Ejemplo n.º 6
0
def admin_score(request):
    admin_user = request.user
    if request.method == "GET":
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(
                reverse('admin:login') + "?next=" + reverse('admin_score'))
        return render(request, "admin_score.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('003'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse(
                'admin_user')
            return JsonResponse(res)
        event_id = request.POST.get('id', None)
        type = request.POST.get('type', None)
        if not event_id or not type:
            res['code'] = -2
            res['res_msg'] = u'传入参数不足,请联系技术人员!'
            return JsonResponse(res)
        type = int(type)
        event_id = int(event_id)
        event = UserEvent.objects.get(id=event_id)
        log = AuditLog(user=admin_user, item=event)
        if event.audit_state != '1':
            res['code'] = -3
            res['res_msg'] = u'该项目已审核过,不要重复审核!'
            return JsonResponse(res)
        if type == 1:
            event.audit_state = '0'
            log.audit_result = True
            res['code'] = 0
        elif type == 2:
            reason = request.POST.get('reason', '')
            if not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            event.audit_state = '2'
            log.reason = reason
            log.audit_result = False
            scoretranslist = charge_score(event.user, '0', event.invest_amount,
                                          u'冲账')
            if scoretranslist:
                scoretranslist.user_event = event
                scoretranslist.save(update_fields=['user_event'])
                res['code'] = 0
            else:
                logger.critical(u"Charging score is failed!!!")
                res['code'] = -2
                res['res_msg'] = u"现金记账失败,请检查输入合法性后再次提交!"
                return JsonResponse(res)
        admin_event = AdminEvent.objects.create(admin_user=admin_user,
                                                custom_user=event.user,
                                                event_type='8')
        log.admin_item = admin_event
        log.save()
        event.audit_time = log.time
        event.save(update_fields=['audit_state', 'audit_time'])
        return JsonResponse(res)
Ejemplo n.º 7
0
def admin_withdraw(request):
    admin_user = request.user
    if request.method == "GET":
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(
                reverse('admin:login') + "?next=" + reverse('admin_withdraw'))
        return render(request, "admin_withdraw.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('004'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse(
                'admin_user')
            return JsonResponse(res)
        event_id = request.POST.get('id', None)
        type = request.POST.get('type', None)
        if not event_id or not type:
            res['code'] = -2
            res['res_msg'] = u'传入参数不足,请联系技术人员!'
            return JsonResponse(res)
        type = int(type)
        event_id = int(event_id)
        event = UserEvent.objects.get(id=event_id)
        if event.audit_state != '1':
            res['code'] = -3
            res['res_msg'] = u'该项目已审核过,不要重复审核!'
            return JsonResponse(res)
        log = AuditLog(user=admin_user, item=event)
        if type == 1:
            event.audit_state = '0'
            log.audit_result = True
            res['code'] = 0
            #用户提现成功,立即发放邀请人100积分奖励
            inviter = event.user.inviter
            if inviter:
                if not UserEvent.objects.filter(user=event.user,
                                                event_type='2',
                                                audit_state='0').exists():
                    invite_award_scores = settings.AWARD_SCORES
                    inviter.invite_scores += invite_award_scores
                    translist = charge_score(inviter, '0', invite_award_scores,
                                             u"邀请奖励")
                    if translist:
                        logger.debug(
                            'Inviting Award scores is successfully payed!')
                        inviter.save(update_fields=['invite_scores'])
                        translist.user_event = event
                        translist.save(update_fields=['user_event'])
                    else:
                        logger.debug(
                            'Inviting Award scores is failed to pay!!!')

        elif type == 2:
            reason = request.POST.get('reason', '')
            if not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            event.audit_state = '2'
            log.reason = reason
            log.audit_result = False
            translist = charge_money(event.user, '0', event.invest_amount,
                                     u'冲账')
            if translist:
                translist.user_event = event
                translist.save(update_fields=['user_event'])
                res['code'] = 0
            else:
                logger.critical(u"Charging cash is failed!!!")
                res['code'] = -2
                res['res_msg'] = u"现金记账失败,请检查输入合法性后再次提交!"
                return JsonResponse(res)

        admin_event = AdminEvent.objects.create(admin_user=admin_user,
                                                custom_user=event.user,
                                                event_type='2')
        log.admin_item = admin_event
        log.save()
        event.audit_time = log.time
        event.save(update_fields=['audit_state', 'audit_time'])
        return JsonResponse(res)
Ejemplo n.º 8
0
def admin_user(request):
    admin_user = request.user
    if request.method == "GET":
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(
                reverse('admin:login') + "?next=" + reverse('admin_user'))
        return render(request, "admin_user.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('005'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse(
                'admin_user')
            return JsonResponse(res)
        user_id = request.POST.get('id', None)
        type = request.POST.get('type', None)
        type = int(type)
        #         if not user_id or type==1 and not (cash and score) or type==2 and not reason or type!=1 and type!=2:
        #             res['code'] = -2
        #             res['res_msg'] = u'传入参数不足,请联系技术人员!'
        #             return JsonResponse(res)
        obj_user = MyUser.objects.get(id=user_id)
        if type == 1:
            pcash = request.POST.get('pcash', 0)
            mcash = request.POST.get('mcash', 0)
            if not pcash:
                pcash = 0
            if not mcash:
                mcash = 0
            reason = request.POST.get('reason', '')
            if not pcash and not mcash or pcash and mcash or not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            try:
                pcash = Decimal(pcash)
                mcash = Decimal(mcash)
            except:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if pcash < 0 or mcash < 0:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            translist = None
            if pcash > 0:
                translist = charge_money(obj_user, '0', pcash, reason)
            elif mcash > 0:
                translist = charge_money(obj_user, '1', mcash, reason)
            if translist:
                admin_event = AdminEvent.objects.create(admin_user=admin_user,
                                                        custom_user=obj_user,
                                                        remark=reason,
                                                        event_type='4')
                translist.admin_event = admin_event
                translist.save(update_fields=['admin_event'])
                res['code'] = 0
            else:
                res['code'] = -4
                res['res_msg'] = "现金记账失败,请检查输入合法性后再次提交!"
        elif type == 2:
            pscore = request.POST.get('pscore', 0)
            mscore = request.POST.get('mscore', 0)
            if not pscore:
                pscore = 0
            if not mscore:
                mscore = 0
            reason = request.POST.get('reason', '')
            if not pscore and not mscore or pscore and mscore or not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            try:
                pscore = int(pscore)
                mscore = int(mscore)
            except:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if pscore < 0 or mscore < 0:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)

            scoretranslist = None
            if pscore > 0:
                scoretranslist = charge_score(obj_user, '0', pscore, reason)
            elif mscore > 0:
                scoretranslist = charge_score(obj_user, '1', mscore, reason)
            if scoretranslist:
                admin_event = AdminEvent.objects.create(admin_user=admin_user,
                                                        custom_user=obj_user,
                                                        remark=reason,
                                                        event_type='5')
                scoretranslist.admin_event = admin_event
                scoretranslist.save(update_fields=['admin_event'])
                res['code'] = 0
            else:
                res['code'] = -4
                res['res_msg'] = "积分记账失败,请检查输入合法性后再次提交!"
        elif type == 3:
            obj_user.is_active = False
            obj_user.save(update_fields=['is_active'])
            admin_event = AdminEvent.objects.create(admin_user=admin_user,
                                                    custom_user=obj_user,
                                                    event_type='6',
                                                    remark=u"加黑")
            res['code'] = 0
        elif type == 4:
            obj_user.is_active = True
            obj_user.save(update_fields=['is_active'])
            admin_event = AdminEvent.objects.create(admin_user=admin_user,
                                                    custom_user=obj_user,
                                                    event_type='6',
                                                    remark=u"去黑")
            res['code'] = 0
        return JsonResponse(res)
Ejemplo n.º 9
0
def admin_return(request):
    admin_user = request.user
    if request.method == "GET":
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(
                reverse('admin:login') + "?next=" + reverse('admin_return'))
        return render(request, "admin_return.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('002'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not (admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse(
                'admin_return')
            return JsonResponse(res)

        event_id = request.POST.get('id', None)
        cash = request.POST.get('cash', None)
        score = request.POST.get('score', None)
        type = request.POST.get('type', None)
        reason = request.POST.get('reason', None)
        type = int(type)
        if not event_id or type == 1 and not (
                cash and
                score) or type == 2 and not reason or type != 1 and type != 2:
            res['code'] = -2
            res['res_msg'] = u'传入参数不足,请联系技术人员!'
            return JsonResponse(res)
        event = UserEvent.objects.get(id=event_id)
        event_user = event.user
        log = AuditLog(user=admin_user, item=event)
        translist = None
        scoretranslist = None
        if type == 1:
            try:
                cash = Decimal(cash)
                score = int(score)
            except:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if cash < 0 or score < 0:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if event.audit_state != '1':
                res['code'] = -3
                res['res_msg'] = u'该项目已审核过,不要重复审核!'
                return JsonResponse(res)
            if event.translist.exists():
                logger.critical("Returning cash is repetitive!!!")
                res['code'] = -3
                res['res_msg'] = u"操作失败,返现重复!"
            else:
                log.audit_result = True
                translist = charge_money(event_user, '0', cash, u'福利返现')
                scoretranslist = charge_score(event_user, '0', score,
                                              u'福利返现(积分)')
                if translist and scoretranslist:
                    event.audit_state = '0'
                    translist.user_event = event
                    translist.save(update_fields=['user_event'])
                    scoretranslist.user_event = event
                    scoretranslist.save(update_fields=['user_event'])
                    res['code'] = 0
                else:
                    res['code'] = -4
                    res['res_msg'] = "注意,重复提交时只提交失败项目,成功的可以输入0。\n"
                    if not translist:
                        logger.error(u"Charging cash is failed!!!")
                        res['res_msg'] += u"现金记账失败,请检查输入合法性后再次提交!"
                    if not scoretranslist:
                        logger.error(u"Charging score is failed!!!")
                        res['res_msg'] += u"积分记账失败,请检查输入合法性后再次提交!"
        else:
            event.audit_state = '2'
            log.audit_result = False
            log.reason = reason
            res['code'] = 0

        if res['code'] == 0:
            admin_event = AdminEvent.objects.create(admin_user=admin_user,
                                                    custom_user=event_user,
                                                    event_type='1')
            if translist:
                translist.admin_event = admin_event
                translist.save(update_fields=['admin_event'])
            if scoretranslist:
                scoretranslist.admin_event = admin_event
                scoretranslist.save(update_fields=['admin_event'])
            log.admin_item = admin_event
            log.save()
            event.audit_time = log.time
            event.save(update_fields=['audit_state', 'audit_time'])
        return JsonResponse(res)
Ejemplo n.º 10
0
def admin_score(request):
    admin_user = request.user
    if request.method == "GET":
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(reverse('admin:login') + "?next=" + reverse('admin_score'))
        return render(request,"admin_score.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('003'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse('admin_user')
            return JsonResponse(res)
        event_id = request.POST.get('id', None)
        type = request.POST.get('type', None)
        if not event_id or not type:
            res['code'] = -2
            res['res_msg'] = u'传入参数不足,请联系技术人员!'
            return JsonResponse(res)
        type = int(type)
        event_id = int(event_id)
        event = UserEvent.objects.get(id=event_id)
        log = AuditLog(user=admin_user,item=event)
        if event.audit_state != '1':
            res['code'] = -3
            res['res_msg'] = u'该项目已审核过,不要重复审核!'
            return JsonResponse(res)
        if type==1:
            event.audit_state = '0'
            log.audit_result = True
            res['code'] = 0
        elif type == 2:
            reason = request.POST.get('reason', '')
            if not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            event.audit_state = '2'
            log.reason = reason
            log.audit_result = False
            scoretranslist = charge_score(event.user, '0', event.invest_amount, u'冲账')
            if scoretranslist:
                scoretranslist.user_event = event
                scoretranslist.save(update_fields=['user_event'])
                res['code'] = 0
            else:
                logger.critical(u"Charging score is failed!!!")
                res['code'] = -2
                res['res_msg'] = u"现金记账失败,请检查输入合法性后再次提交!"
                return JsonResponse(res)
        admin_event = AdminEvent.objects.create(admin_user=admin_user, custom_user=event.user, event_type='8')
        log.admin_item = admin_event
        log.save()
        event.audit_time = log.time
        event.save(update_fields=['audit_state','audit_time'])
        return JsonResponse(res)
Ejemplo n.º 11
0
def admin_withdraw(request):
    admin_user = request.user
    if request.method == "GET":
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(reverse('admin:login') + "?next=" + reverse('admin_withdraw'))
        return render(request,"admin_withdraw.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('004'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse('admin_user')
            return JsonResponse(res)
        event_id = request.POST.get('id', None)
        type = request.POST.get('type', None)
        if not event_id or not type:
            res['code'] = -2
            res['res_msg'] = u'传入参数不足,请联系技术人员!'
            return JsonResponse(res)
        type = int(type)
        event_id = int(event_id)
        event = UserEvent.objects.get(id=event_id)
        if event.audit_state != '1':
            res['code'] = -3
            res['res_msg'] = u'该项目已审核过,不要重复审核!'
            return JsonResponse(res)
        log = AuditLog(user=admin_user,item=event)
        if type==1:
            event.audit_state = '0'
            log.audit_result = True
            res['code'] = 0
            #用户提现成功,立即发放邀请人100积分奖励   
            inviter = event.user.inviter
            if inviter:
                if not UserEvent.objects.filter(user=event.user, event_type='2', audit_state='0').exists():
                    invite_award_scores = settings.AWARD_SCORES
                    inviter.invite_scores += invite_award_scores
                    translist = charge_score(inviter, '0', invite_award_scores, u"邀请奖励")
                    if translist:
                        logger.debug('Inviting Award scores is successfully payed!')
                        inviter.save(update_fields=['invite_scores'])
                        translist.user_event = event
                        translist.save(update_fields=['user_event'])
                    else:
                        logger.debug('Inviting Award scores is failed to pay!!!')
                        
        elif type == 2:
            reason = request.POST.get('reason', '')
            if not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            event.audit_state = '2'
            log.reason = reason
            log.audit_result = False
            translist = charge_money(event.user, '0', event.invest_amount, u'冲账')
            if translist:
                translist.user_event = event
                translist.save(update_fields=['user_event'])
                res['code'] = 0
            else:
                logger.critical(u"Charging cash is failed!!!")
                res['code'] = -2
                res['res_msg'] = u"现金记账失败,请检查输入合法性后再次提交!"
                return JsonResponse(res)
        
        admin_event = AdminEvent.objects.create(admin_user=admin_user, custom_user=event.user, event_type='2')
        log.admin_item = admin_event
        log.save()
        event.audit_time = log.time
        event.save(update_fields=['audit_state','audit_time'])
        return JsonResponse(res)
Ejemplo n.º 12
0
def admin_user(request):
    admin_user = request.user
    if request.method == "GET":
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(reverse('admin:login') + "?next=" + reverse('admin_user'))
        return render(request,"admin_user.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('005'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse('admin_user')
            return JsonResponse(res)
        user_id = request.POST.get('id', None)
        type = request.POST.get('type', None)
        type = int(type)
#         if not user_id or type==1 and not (cash and score) or type==2 and not reason or type!=1 and type!=2:
#             res['code'] = -2
#             res['res_msg'] = u'传入参数不足,请联系技术人员!'
#             return JsonResponse(res)
        obj_user = MyUser.objects.get(id=user_id) 
        if type==1:
            pcash = request.POST.get('pcash', 0)
            mcash = request.POST.get('mcash', 0)
            if not pcash:
                pcash = 0
            if not mcash:
                mcash = 0
            reason = request.POST.get('reason', '')
            if not pcash and not mcash or pcash and mcash or not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            try:
                pcash = Decimal(pcash)
                mcash = Decimal(mcash)
            except:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if pcash < 0 or mcash < 0:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            translist = None
            if pcash > 0:
                translist = charge_money(obj_user, '0', pcash, reason)
            elif mcash > 0:
                translist = charge_money(obj_user, '1', mcash, reason)
            if translist:
                admin_event = AdminEvent.objects.create(admin_user=admin_user, custom_user=obj_user, remark=reason, event_type='4')
                translist.admin_event = admin_event
                translist.save(update_fields=['admin_event'])
                res['code'] = 0
            else:
                res['code'] = -4
                res['res_msg'] = "现金记账失败,请检查输入合法性后再次提交!"
        elif type == 2:
            pscore = request.POST.get('pscore', 0)
            mscore = request.POST.get('mscore', 0)
            if not pscore:
                pscore = 0
            if not mscore:
                mscore = 0
            reason = request.POST.get('reason', '')
            if not pscore and not mscore or pscore and mscore or not reason:
                res['code'] = -2
                res['res_msg'] = u'传入参数不足,请联系技术人员!'
                return JsonResponse(res)
            try:
                pscore = int(pscore)
                mscore = int(mscore)
            except:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if pscore < 0 or mscore < 0:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            
            scoretranslist = None
            if pscore > 0:
                scoretranslist = charge_score(obj_user, '0', pscore, reason)
            elif mscore > 0:
                scoretranslist = charge_score(obj_user, '1', mscore, reason)
            if scoretranslist:
                admin_event = AdminEvent.objects.create(admin_user=admin_user, custom_user=obj_user, remark=reason,event_type='5')
                scoretranslist.admin_event = admin_event
                scoretranslist.save(update_fields=['admin_event'])
                res['code'] = 0
            else:
                res['code'] = -4
                res['res_msg'] = "积分记账失败,请检查输入合法性后再次提交!"
        elif type == 3:
            obj_user.is_active = False
            obj_user.save(update_fields=['is_active'])
            admin_event = AdminEvent.objects.create(admin_user=admin_user, custom_user=obj_user, event_type='6', remark=u"加黑")
            res['code'] = 0
        elif type == 4:
            obj_user.is_active = True
            obj_user.save(update_fields=['is_active'])
            admin_event = AdminEvent.objects.create(admin_user=admin_user, custom_user=obj_user, event_type='6', remark=u"去黑")
            res['code'] = 0
        return JsonResponse(res)
Ejemplo n.º 13
0
def admin_return(request):
    admin_user = request.user
    if request.method == "GET":
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            return redirect(reverse('admin:login') + "?next=" + reverse('admin_return'))
        return render(request,"admin_return.html")
    if request.method == "POST":
        res = {}
        if not admin_user.has_admin_perms('002'):
            res['code'] = -5
            res['res_msg'] = u'您没有操作权限!'
            return JsonResponse(res)
        if not request.is_ajax():
            raise Http404
        if not ( admin_user.is_authenticated() and admin_user.is_staff):
            res['code'] = -1
            res['url'] = reverse('admin:login') + "?next=" + reverse('admin_return')
            return JsonResponse(res)
         
        event_id = request.POST.get('id', None)
        cash = request.POST.get('cash', None)
        score = request.POST.get('score', None)
        type = request.POST.get('type', None)
        reason = request.POST.get('reason', None)
        type = int(type)
        if not event_id or type==1 and not (cash and score) or type==2 and not reason or type!=1 and type!=2:
            res['code'] = -2
            res['res_msg'] = u'传入参数不足,请联系技术人员!'
            return JsonResponse(res)
        event = UserEvent.objects.get(id=event_id)
        event_user = event.user
        log = AuditLog(user=admin_user,item=event)
        translist = None
        scoretranslist = None
        if type==1:
            try:
                cash = Decimal(cash)
                score = int(score)
            except:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if cash < 0 or score < 0:
                res['code'] = -2
                res['res_msg'] = u"操作失败,输入不合法!"
                return JsonResponse(res)
            if event.audit_state != '1':
                res['code'] = -3
                res['res_msg'] = u'该项目已审核过,不要重复审核!'
                return JsonResponse(res)
            if event.translist.exists():
                logger.critical("Returning cash is repetitive!!!")
                res['code'] = -3
                res['res_msg'] = u"操作失败,返现重复!"
            else:
                log.audit_result = True
                translist = charge_money(event_user, '0', cash, u'福利返现')
                scoretranslist = charge_score(event_user, '0', score, u'福利返现(积分)')
                if translist and scoretranslist:
                    event.audit_state = '0'
                    translist.user_event = event
                    translist.save(update_fields=['user_event'])
                    scoretranslist.user_event = event
                    scoretranslist.save(update_fields=['user_event'])
                    res['code'] = 0
                else:
                    res['code'] = -4
                    res['res_msg'] = "注意,重复提交时只提交失败项目,成功的可以输入0。\n"
                    if not translist:
                        logger.error(u"Charging cash is failed!!!")
                        res['res_msg'] += u"现金记账失败,请检查输入合法性后再次提交!"
                    if not scoretranslist:
                        logger.error(u"Charging score is failed!!!")
                        res['res_msg'] += u"积分记账失败,请检查输入合法性后再次提交!"
        else:
            event.audit_state = '2'
            log.audit_result = False
            log.reason = reason
            res['code'] = 0
        
        
        if res['code'] == 0:
            admin_event = AdminEvent.objects.create(admin_user=admin_user, custom_user=event_user, event_type='1')
            if translist:
                translist.admin_event = admin_event
                translist.save(update_fields=['admin_event'])
            if scoretranslist:
                scoretranslist.admin_event = admin_event
                scoretranslist.save(update_fields=['admin_event'])
            log.admin_item = admin_event
            log.save()
            event.audit_time = log.time
            event.save(update_fields=['audit_state','audit_time'])
        return JsonResponse(res)