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')
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')
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')
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')
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')