Beispiel #1
0
    def list(self, request, *args, **kwargs):
        ret = BaseResonse()
        try:
            shopping_car_course_list = []
            pattern = settings.LUFFY_SHAOPPING_CAR % (USER_ID, '*')

            user_key_list = CONN.keys(pattern)

            for key in user_key_list:
                temp = {
                    'id':
                    CONN.hget(key, 'id').decode('utf-8'),
                    'name':
                    CONN.hget(key, 'name').decode('utf-8'),
                    'img':
                    CONN.hget(key, 'img').decode('utf-8'),
                    'default_price_id':
                    CONN.hget(key, 'default_price_id').decode('utf-8'),
                    'price_policy_dict':
                    json.loads(
                        CONN.hget(key, 'price_policy_dict').decode('utf-8')),
                }
                shopping_car_course_list.append(temp)

                ret.data = shopping_car_course_list
        except Exception as e:
            ret.code = 105
            ret.error = '获取购物车失败'

        return Response(ret.dict)
Beispiel #2
0
 def get(self, request, pk,*args, **kwargs):
     ret = BaseResonse()
     try:
         degree_course = models.DegreeCourse.objects.filter(id=pk)
         ser = DegreeCourseModuleModelSerializer(instance=degree_course, many=True)
         ret.data = ser.data
     except Exception as e:
         ret.code = 500
         ret.error = '获取数据失败'
     return Response(ret.dict)
Beispiel #3
0
 def get(self,request,*args,**kwargs):
     ret=BaseResonse()
     try:
         course_scholarship=models.DegreeCourse.objects.all()
         ser=DegreeCourseScholarshipModelSerializer(instance=course_scholarship,many=True)
         ret.data=ser.data
     except Exception as e:
         ret.code = 500
         ret.error = '获取数据失败'
     return Response(ret.dict)
Beispiel #4
0
 def get(self, request, pk, *args, **kwargs):
     ret = BaseResonse()
     try:
         course = models.Course.objects.get(id=pk)
         ser = CourseModelSerializer(instance=course)
         ret.data = ser.data
     except Exception as e:
         ret.code = 500
         ret.error = '获取数据失败'
     return Response(ret.dict)
Beispiel #5
0
 def get(self, request,pk,*args, **kwargs):
     ret = BaseResonse()
     # try:
     course = models.Course.objects.filter(id=pk)
     ser = CourseFourSerializer(instance=course, many=True)
     ret.data = ser.data
     # except Exception as e:
     #     ret.code = 500
     #     ret.error = '获取数据失败'
     return Response(ret.dict)
Beispiel #6
0
    def update(self, request, *args, **kwargs):
        response = BaseResonse()
        try:
            course_id = request.data.get('courseid')
            policy_id = str(request.data.get('policyid')) if request.data.get(
                'policyid') else None

            key = settings.LUFFY_SHOPPING_CAR % (
                USER_ID,
                course_id,
            )

            if not CONN.exists(key):
                response.code = 10007
                response.error = '课程不存在'
                return Response(response.dict)

            price_policy_dict = json.loads(
                CONN.hget(key, 'price_policy_dict').decode('utf-8'))
            if policy_id not in price_policy_dict:
                response.code = 10008
                response.error = '价格策略不存在'
                return Response(response.dict)

            CONN.hset(key, 'default_price_id', policy_id)
            CONN.expire(key, 20 * 60)
            response.data = '修改成功'
        except Exception as e:
            response.code = 10009
            response.error = '修改失败'

        return Response(response.dict)
Beispiel #7
0
    def get(self, request, *args, **kwargs):
        ret = BaseResonse()
        try:
            queryset = models.Course.objects.all()
            # 分页
            # page = PageNumberPagination()
            # course_list = page.paginate_queryset(queryset, request, self)

            ser = CourseModelSerializer(instance=queryset, many=True)
            ret.data = ser.data
        except Exception as e:
            ret.code = 500
            ret.error = '获取数据失败'

        return Response(ret.dict)
Beispiel #8
0
    def destory(self, request, *args, **kwargs):
        response = BaseResonse()
        try:
            courseid = request.GET.get('courseid')
            # key = "shopping_car_%s_%s" % (USER_ID,courseid)
            key = settings.LUFFY_SHOPPING_CAR % (
                USER_ID,
                courseid,
            )

            CONN.delete(key)
            response.data = '删除成功'
        except Exception as e:
            response.code = 10006
            response.error = '删除失败'
        return Response(response.dict)
Beispiel #9
0
    def create(self, request, *args, **kwargs):
        ret = BaseResonse()

        course_id = request.data.get('course_id')
        policy_id = request.data.get('policyid')

        course = models.Course.objects.filter(id=course_id).first()

        if not course:
            return Response({'code': 101, 'erroe': '课程不存在'})

        price_policy_queryset = course.price_policy.all()
        price_policy_dict = {}
        for item in price_policy_queryset:
            temp = {
                'id': item.id,
                'price': item.price,
                'vaild_period': item.vaild_period,
                'vaild_period_display': item.get_vaild_period_display,
            }
            price_policy_dict[item.id] = temp
        if policy_id not in price_policy_dict:
            return Response({'code': 1002, 'error': '价格策略错误'})

        pattern = settings.LUFFY_SHAOPPING_CAR % (USER_ID, '*')
        keys = CONN.keys(pattern)
        if keys and len(keys) >= 1000:
            return Response({'code': 109, 'error': '购物车东西太多,先去结算再进行购买..'})

        key = settings.LUFFY_SHAOPPING_CAR % (USER_ID, course_id)

        CONN.hset(key, 'id', course_id)
        CONN.hset(key, 'name', course.name)
        CONN.hset(key, 'img', course.course_img)
        CONN.hset(key, 'default_price_id', policy_id)
        CONN.hset(key, 'price_policy_dict', json.dumps(price_policy_dict))

        CONN.expire(key, 20 * 60)

        return Response({'code': 10000, 'data': '购买成功'})