from django.forms import model_to_dict from rest_framework import status from rest_framework.decorators import action from rest_framework.request import Request from rest_framework.response import Response from rest_framework.routers import DefaultRouter from rest_framework.viewsets import ViewSet from ulid import ULID from sixGuoDjango import BaseResponse, ResData from wechat_数据库.洗衣液商品数据库.六果洗衣液商品 import Goods, goods商品, goods商品Choices class 商品接口ViewSets(ViewSet): @action(detail=False, methods=["post"], url_path="filter_query_goods") def 根据条件查询商品接口(self, request: Request): """""" # 2. 创建一个新的、按键排序后的字典 goodsDataList = goods商品.objects.filter(goods商品类型=goods商品Choices.商城商品.value).values( "id_主键_goods商品", "goods商品数据", "id_str") print("商城查询所有的商品数据", goodsDataList) httpResData = BaseResponse(resData=ResData(listData=goodsDataList, dictData={}), ).model_dump() return Response(data=httpResData, status=status.HTTP_200_OK) @action(detail=False, methods=["get", "post", "put", "delete"], url_path="赢免单商品") def 添加商品数据(self, request: Request): pass 赢免单商品数据 = Goods.objects.filter(goods_商品销售场景=goods商品Choices.赢免单.value).first() data = model_to_dict(instance=赢免单商品数据, fields=None, exclude=None) return Response(data=data) @action(detail=False, methods=["post"], url_path="query") def 返回商城所有的销售商品信息数据(self, request: Request): """返回所有的商品信息数据""" data = Goods.objects.filter(goods_商品销售场景=goods商品Choices.商城商品.value).values() httpResData = BaseResponse(resData=ResData(listData=data, dictData={}), ).model_dump() return Response(data=httpResData, status=status.HTTP_200_OK) @action(detail=False, methods=["post"], url_path="current_goods") def 分享商品查询接口(self, request: Request): """""" self_mini_openid = request.data.get("self_mini_openid", None) self_mini_unionid = request.data.get("self_mini_unionid", None) goodID = request.data.get("goodID", None) goodsDdata = goods商品.objects.get(id_主键_goods商品=goodID) data = model_to_dict(instance=goodsDdata, fields=None) httpResData = BaseResponse(resData=ResData(listData=[""], dictData=data), ).model_dump() return Response(data=httpResData, status=status.HTTP_200_OK) @action(detail=False, methods=["post"], url_path="add_goods") def 添加商品接口(self, request: Request): """""" return self_user_unionid = request.data.get("self_user_unionid", None) self_mini_openid = request.data.get("self_mini_openid", None) Goods.objects.update_or_create( goods_商品品牌="六果泡泡", goods_商品信息={ "品牌": "六果泡泡", "净重": "20斤装/桶", "香型": "熏衣草", "洁净": "源自天然酵素迅速渗入衣物,去除99种污渍🫟", "除菌": "99%除菌🦠,污渍菌螨,一洗即净,守护健康", }, goods_商品标题="六果泡泡 (超划算) 源自天然酵素迅速渗入衣物,99%除菌🦠一洗即净,守护健康", goods_商品标签=["99%除菌🦠", "99种污渍🫟", ], # goods_商品销售场景=goods商品Choices.商城商品.value, goods_商品销售场景=goods商品Choices.赢免单.value, goods_商品搜索标签=["20"], goods_商品销售规格=[ { "goods_商品标题": "六果泡泡 (超划算) 源自天然酵素迅速渗入衣物,99%除菌🦠一洗即净,守护健康", "零售价格": 15200, "会员价": 14200, "销售规格": "20斤装/桶", "单个商品订单数量": 1, "单个商品订单总金额": 14200, "商品条码": "", "单个商品实际支付价格": 14200, "成本价": 12000, "净利润": 12200, "可选参数": ["苹果香", "熏衣草"], "商品ID": f"GOOD{ULID()}", "推荐积分": {"企微员工": 200, "推广员": 1000}, "goods_商品详情图片": { "主图": ["https://hudie.xiao.band/icon/six.png"], "详情图": ["https://hudie.xiao.band/icon/six.png", "https://hudie.xiao.band/icon/six.png"], }, "goods_sku": [ { "goods_sku_id": f"{ULID()}", "goods_select_title": "开启衣物芬芳之旅", "goods_sku_list": [ { "goods_sku_name": "西瓜", "goods_是否默认选择": True, "goods_sku_主图": ["https://hudie.xiao.band/icon/six.png"], "goods_sku_详情图": ["https://hudie.xiao.band/icon/six.png", "https://hudie.xiao.band/icon/six.png"], }, { "goods_sku_name": "桔子", "goods_是否默认选择": False, "goods_sku_主图": ["https://hudie.xiao.band/icon/six.png"], "goods_sku_详情图": ["https://hudie.xiao.band/icon/six.png", "https://hudie.xiao.band/icon/six.png"], }, ], }, ], }, ], goods_商家推荐标签=["厂家直销", "独家配方", "自产自销", "量大实惠", "品质保证"], ) httpResData = BaseResponse(resData=ResData(listData=[""], dictData={"demo": "xiaozizi"}), ).model_dump() return Response(data=httpResData, status=status.HTTP_200_OK) 商品接口ViewSetsRouter = DefaultRouter() 商品接口ViewSetsRouter.register(prefix="", viewset=商品接口ViewSets, basename="")