def get(self, request):
        '''
        添加商品评论
        :param request:
        :return:
        '''
        ret = {}

        commodity_id = request.GET['id']

        auth_cookie = WechatUtils.checkMemberLogin(request)
        score = request.GET['score']

        content = request.GET['content']

        member_id = auth_cookie.id
        Comment.objects.create(content=content,
                               joined_date=datetime.datetime.now(),
                               commodity_id=commodity_id,
                               member_id=auth_cookie.id)
        Transaction.objects.filter(
            Q(member_id=member_id)
            & Q(commodity_id=commodity_id)).update(rating=score)
        ret['msg'] = "评论成功"
        return HttpResponse(json.dumps(ret), content_type='application/json')
示例#2
0
    def post(self, request):
        '''
        :param request: 小程序的请求
        :return:  返回成功信息
        '''
        ret = {}
        auth_cookie = WechatUtils.checkMemberLogin(request)
        member_id = auth_cookie.id
        now = datetime.datetime.now()  # 现在的时间
        last_behave = Credit.objects.filter(Q(userid_id=member_id) & Q(behave=2))
        if last_behave:
            last_share_date = last_behave.last().createtime  # 上次分享的时间

            if now.strftime('%Y-%m-%d') != last_share_date.strftime('%Y-%m-%d'):
                ret['first_time_share'] = '恭喜你,今天首次分享获得3积分'
                Credit.objects.create(
                    behave=2,
                    creditpoints=3,
                    credittype=0,
                    createtime=datetime.datetime.now(),
                    userid_id=member_id
                )
        else:
            Credit.objects.create(
                behave=2,
                creditpoints=3,
                credittype=0,
                createtime=datetime.datetime.now(),
                userid_id=member_id
            )
        return HttpResponse(json.dumps(ret), content_type='application/json')
 def post(self, request):
     ret = {}
     commodity_ids = request.POST['goods'].split(',')
     print("goods", request.POST['goods'])
     print("goods", type(commodity_ids))
     auth_cookie = WechatUtils.checkMemberLogin(request)
     member_id = auth_cookie.id
     for commodity_id in commodity_ids:
         Cart.objects.filter(
             Q(commodity_id=commodity_id)
             & Q(member_id=member_id)).delete()
     return HttpResponse(ret, content_type='application/json')
 def get(self, request):
     ret = {}
     fields = ['id', 'imUrl', 'title', 'present_price']
     auth_cookie = WechatUtils.checkMemberLogin(request)
     member_id = auth_cookie.id
     cart_list = Cart.objects.filter(member_id=member_id)
     commodity_list = []
     for cart in cart_list:
         commodity = Commodity.objects.filter(id=cart.commodity_id).values(
             *fields).first()
         commodity_list.append(commodity)
     ret = json.dumps(dict(data=commodity_list), cls=DjangoJSONEncoder)
     return HttpResponse(ret, content_type='application/json')
    def get(self, request):
        ret = {}
        commodity_id = request.GET['id']
        auth_cookie = WechatUtils.checkMemberLogin(request)
        member_id = auth_cookie.id

        cart_list = Cart.objects.filter(
            Q(member_id=member_id) & Q(commodity_id=commodity_id))
        if cart_list:
            ret['msg'] = "已经加入收藏"
        else:
            Cart.objects.create(member_id=member_id, commodity_id=commodity_id)
            ret['msg'] = "加入收藏成功"
        return HttpResponse(json.dumps(ret), content_type='application/json')
    def get(self, request):
        p = int(request.GET['p'])
        user = WechatUtils.checkMemberLogin(request)
        user_id = user.id
        recommendations = Users_AllRecommendations.objects.filter(
            user_id=user_id)
        '''
        ※※※这里有个关键问题,由于后端算法和数据库的链接原因,这边得到的Commodityidlist实际上是String类型(只是看起来像list),不能直接转
        成List使用,所以需要使用split方法把它切分成list。
        '''
        commodityidlist = recommendations[0].products_id
        commodityidlist = commodityidlist.split(',')

        commoditylist = []

        page_size = 10  #每页显示的商品数量
        '''
        前端会返回一个值,p:当前页数,以下代码判断该次Get行为是否会超出列表长度。
        每次只查找page_size个值,性能优秀Perfect。
        '''
        have_been_showed_commodityid = p * page_size
        if (have_been_showed_commodityid + page_size > len(commodityidlist)):
            has_more = False
            for i in range(have_been_showed_commodityid,
                           len(commodityidlist) -
                           have_been_showed_commodityid):

                item_id = commodityidlist[i]
                commodity = Commodity.objects.filter(
                    id=item_id.lstrip()).values().first()
                commoditylist.append(commodity)
        else:
            has_more = True
            for i in range(have_been_showed_commodityid,
                           have_been_showed_commodityid + page_size):
                item_id = commodityidlist[i]
                commodity = Commodity.objects.filter(
                    id=item_id.lstrip()).values().first()
                commoditylist.append(commodity)

        ret = dict(data=commoditylist)
        ret["has_more"] = has_more
        ret = json.dumps(ret, cls=DjangoJSONEncoder)
        return HttpResponse(ret, content_type='application/json')
    def get(self, request):
        user = WechatUtils.checkMemberLogin(request)
        user_id = user.id
        recommendations = Users_Recommendations.objects.filter(user_id=user_id)
        commodityidlist = []

        for i in recommendations:
            commodityidlist.append([
                i.product_id_1, i.product_id_2, i.product_id_3, i.product_id_4,
                i.product_id_5
            ])

        commoditylist = []
        for item_id in commodityidlist[0]:
            commodity = Commodity.objects.filter(id=item_id).values().first()
            commoditylist.append(commodity)

        ret = dict(data=commoditylist)

        ret = json.dumps(ret, cls=DjangoJSONEncoder)
        return HttpResponse(ret, content_type='application/json')
示例#8
0
    def get(self, request):
        ret = {}
        ua = request.META.get("HTTP_AUTHORIZATION")
        print("ua:", ua)

        auth_cookie = WechatUtils.checkMemberLogin(request)
        print('auth_cookie:', auth_cookie)

        ret['id'] = auth_cookie.id
        ret['openid'] = auth_cookie.openid
        ret['pic_name'] = auth_cookie.pic_name
        ret['nickname'] = auth_cookie.nickname
        ret['gender'] = auth_cookie.gender
        ret['city'] = auth_cookie.city
        ret['province'] = auth_cookie.province
        # ret['last_login_date'] = auth_cookie.last_login_date 不能json化
        ret['avatarUrl'] = auth_cookie.avatarUrl
        ret['codeVerify'] = auth_cookie.codeVerify
        ret['type'] = auth_cookie.type

        return HttpResponse(json.dumps(ret), content_type='application/json')
示例#9
0
    def get(self, request):
        print("进入方法")
        user = WechatUtils.checkMemberLogin(request)
        user_id = user.id
        boughtitems = Transaction.objects.filter(member_id=user_id)
        boughtitemkindlist = []

        boughtitemdict = {
            'Baby': 0,
            'Beauty': 0,
            'Grocery_and_Gourmet_Food': 0,
            'Electronics': 0,
            'Office_Products': 0,
            'Pet_Supplies': 0,
            'Sports_and_Outdoors': 0,
            'Home_and_Kitchen': 0,
        }
        commoditylist = []
        sum_of_boughtitem = len(boughtitems)
        for boughtitem in boughtitems:
            boughtitemkindlist.append(
                boughtitem.commodity.categories.type_name)
            boughtitemdict[boughtitem.commodity.categories.type_name] += 1
            '''
            该用户若是购买了两件以上或者25%以上某种类商品,则给他推送该种类下随机五件商品,注意,Order_by方法损耗较大
            但还是最优随机选择方法。
            '''
        for type in boughtitemdict:
            if (boughtitemdict[type] >= 2
                    or boughtitemdict[type] / sum_of_boughtitem >= 0.25):
                recommendations = Commodity.objects.filter(
                    categories__type_name=type).order_by('?')[:5].values()
                commoditylist += recommendations

        random.shuffle(commoditylist)
        ret = dict(data=commoditylist)
        ret = json.dumps(ret, cls=DjangoJSONEncoder)
        return HttpResponse(ret, content_type='application/json')
示例#10
0
    def get(self, request):
        """
        获取会员基本信息,并返回小程序端
        :param request:
        :return:
        """
        ret = {}

        auth_cookie = WechatUtils.checkMemberLogin(request)

        ret['id'] = auth_cookie.id
        ret['openid'] = auth_cookie.openid
        ret['pic_name'] = auth_cookie.pic_name
        ret['nickname'] = auth_cookie.nickname
        ret['gender'] = auth_cookie.gender
        ret['city'] = auth_cookie.city
        ret['province'] = auth_cookie.province
        # ret['last_login_date'] = auth_cookie.last_login_date 不能json化
        ret['avatarUrl'] = auth_cookie.avatarUrl
        ret['codeVerify'] = auth_cookie.codeVerify
        ret['type'] = auth_cookie.type

        return HttpResponse(json.dumps(ret), content_type='application/json')