工具类:每次随机生成有销售库存有实际库存的1个店铺商品和对应的2个店铺商品sku

# coding:utf-8
# @fileName   :2.每次随机生成有销售库存有实际库存的1个店铺商品和对应的2个店铺商品sku.py
# @createTime :2020/4/4 10:33
# @author     :hongjingsheng
# @email      :[email protected]
# @software   :PyCharm

# 请从下一行开始编写脚本

from testcase.goodsAPI.goodsSave.createData.create_one_goods_of_have_twoSku import Create_one_goods_of_have_twoSku
from testcase.goodsStockAPI.realStockSet.createData.set_real_stock_of_have_twoSku import Set_real_stock_of_have_twosSku
from testcase.itemAPI.itemSalesStockUpdate.createData.set_sales_stock_of_have_twoSku import Set_sales_stock_of_have_twoSku
from config.config import relationshipOfShopAndWarehouses
from model.m_kd_goods import M_kd_goods
from model.m_kd_item import M_kd_item
from model.m_kd_item_sku import M_kd_item_sku
m_kd_goods = M_kd_goods()
m_kd_item = M_kd_item()
m_kd_item_sku = M_kd_item_sku()

class run:
    ‘‘‘
    1.该工具类实现功能:每次随机生成有销售库存有实际库存的1个店铺商品和对应的2个店铺商品sku;
    2.生成数据用于:下订单、关联优惠券、用于拼团/秒杀/满减送活动等;
    ‘‘‘
    def __init__(self,goods_lib_id:int,whatGroupOfDataDoYouChoose:str):
        ‘‘‘
        :param goods_lib_id  参数含义:商品库id;数据类型:int
        :param whatGroupOfDataDoYouChoose  参数含义:用户选择哪一组门店仓库关系
        ‘‘‘
        self.goods_lib_id = goods_lib_id
        self.whatGroupOfDataDoYouChoose = whatGroupOfDataDoYouChoose
        self.oneRelationshipOfShopAndWarehouse = self.__oneRelationshipOfShopAndWarehouse()
        self.sys_item_id = self.__get_one_sys_item_id()
        self.two_sysSkuIds_skuIds = self.__get_two_sysSkuIds_skuIds()
        self.sys_sku_id_of_sku_a = self.two_sysSkuIds_skuIds[‘商品A的第一个商品sku-a的信息‘]["sys_sku_id"]
        self.sku_id_of_sku_a = self.two_sysSkuIds_skuIds[‘商品A的第一个商品sku-a的信息‘]["sku_id"]
        self.sys_sku_id_of_sku_b = self.two_sysSkuIds_skuIds[‘商品A的第二个商品sku-b的信息‘]["sys_sku_id"]
        self.sku_id_of_sku_b = self.two_sysSkuIds_skuIds[‘商品A的第二个商品sku-b的信息‘]["sku_id"]
        self.out_item_id= self.realStockSet_of_DigitalStoreA()
        self.realStockSet_of_OfflineStoreB()
        self.realStockSet_of_OfflineStoreC()
        self.set_sales_stock_of_have_twoSku()
        self.log()

    def __oneRelationshipOfShopAndWarehouse(self):
        ‘‘‘
        :return  返回一组门店仓库关联数据;数据类型为int
        ‘‘‘
        if self.whatGroupOfDataDoYouChoose == "第一组门店仓库关联数据":
            return relationshipOfShopAndWarehouses["第一组门店仓库关联数据"]
        elif self.whatGroupOfDataDoYouChoose == "第二组门店仓库关联数据":
            return relationshipOfShopAndWarehouses["第二组门店仓库关联数据"]
        elif self.whatGroupOfDataDoYouChoose == "第三组门店仓库关联数据":
            return relationshipOfShopAndWarehouses["第三组门店仓库关联数据"]
        else:
            raise Exception("whatGroupOfDataDoYouChoose入参值输入错误;用户只能输入这三者中其中一个值:第一组门店仓库关联数据、第二组门店仓库关联数据、第三组门店仓库关联数据")

    def __get_one_sys_item_id(self):
        ‘‘‘
        :return  返回一个新增商品后的sys_item_id值;数据类型为int
        ‘‘‘
        create_one_goods_of_have_twoSku = Create_one_goods_of_have_twoSku()
        create_one_goods_of_have_twoSku.goodsLibId = self.goods_lib_id
        r = create_one_goods_of_have_twoSku.sendRequest()
        sys_item_id = r["result"]["sysItemId"]
        return sys_item_id

    def __get_two_sysSkuIds_skuIds(self):
        ‘‘‘
        :return  返回一个商品的两个商品sku的sys_sku_id和sku_id等信息;数据类型为dict
        ‘‘‘
        r = m_kd_goods.mysql_getRows_new("select sys_item_id,sys_sku_id,sku_id from kd_goods_sku where sys_item_id = %s"%self.sys_item_id)

        result ={
                 "商品A的第一个商品sku-a的信息":{"sys_item_id":r[0][0],"sys_sku_id":r[0][1],"sku_id":r[0][2]},
                 "商品A的第二个商品sku-b的信息":{"sys_item_id":r[1][0],"sys_sku_id":r[1][1],"sku_id":r[1][2]}
                 }
        print(result)
        return result

    def realStockSet_of_DigitalStoreA(self):
        ‘‘‘
        :return 返回数字门店A的一个店铺商品的out_item_id值
        1.接口主要实现功能: 设置店铺商品配置仓A的实际库存
        ‘‘‘
        set_real_stock_of_have_twosSku = Set_real_stock_of_have_twosSku()
        set_real_stock_of_have_twosSku.goodsLibId = self.goods_lib_id
        set_real_stock_of_have_twosSku.realStockA = 100
        set_real_stock_of_have_twosSku.sysSkuIdA = self.sys_sku_id_of_sku_a
        set_real_stock_of_have_twosSku.realStockB = 100
        set_real_stock_of_have_twosSku.sysSkuIdB = self.sys_sku_id_of_sku_b
        set_real_stock_of_have_twosSku.sysItemId = self.sys_item_id
        set_real_stock_of_have_twosSku.warehouseId  = self.oneRelationshipOfShopAndWarehouse["数字门店A"]["绑定仓库id"]
        r = set_real_stock_of_have_twosSku.sendRequest()
        print(r)
        # 当上面的接口请求成功后,会在kd_item表生成一条数字门店A的店铺商品A数据,可以获取到字段out_item_id的值
        out_item_id = m_kd_item.get_one_random_value_of_one_tableField("out_item_id",[["sys_item_id",self.sys_item_id],["digit_shop_id",self.oneRelationshipOfShopAndWarehouse["数字门店A"]["门店id"]]])
        return out_item_id

    def realStockSet_of_OfflineStoreB(self):
        ‘‘‘
        :return None
        1.接口主要实现功能: 设置店铺商品一个线下仓B的实际库存
        ‘‘‘
        set_real_stock_of_have_twosSku = Set_real_stock_of_have_twosSku()
        set_real_stock_of_have_twosSku.goodsLibId = self.goods_lib_id
        set_real_stock_of_have_twosSku.realStockA = 200
        set_real_stock_of_have_twosSku.sysSkuIdA = self.sys_sku_id_of_sku_a
        set_real_stock_of_have_twosSku.realStockB = 200
        set_real_stock_of_have_twosSku.sysSkuIdB = self.sys_sku_id_of_sku_b
        set_real_stock_of_have_twosSku.sysItemId = self.sys_item_id
        set_real_stock_of_have_twosSku.warehouseId  = self.oneRelationshipOfShopAndWarehouse["线下门店B"]["绑定仓库id"]
        set_real_stock_of_have_twosSku.sendRequest()

    def realStockSet_of_OfflineStoreC(self):
        ‘‘‘
        :return None
        1.接口主要实现功能: 设置店铺商品一个线下仓C的实际库存
        ‘‘‘
        set_real_stock_of_have_twosSku = Set_real_stock_of_have_twosSku()
        set_real_stock_of_have_twosSku.goodsLibId = self.goods_lib_id
        set_real_stock_of_have_twosSku.realStockA = 300
        set_real_stock_of_have_twosSku.sysSkuIdA = self.sys_sku_id_of_sku_a
        set_real_stock_of_have_twosSku.realStockB = 300
        set_real_stock_of_have_twosSku.sysSkuIdB = self.sys_sku_id_of_sku_b
        set_real_stock_of_have_twosSku.sysItemId = self.sys_item_id
        set_real_stock_of_have_twosSku.warehouseId  = self.oneRelationshipOfShopAndWarehouse["线下门店C"]["绑定仓库id"]
        set_real_stock_of_have_twosSku.sendRequest()

    def set_sales_stock_of_have_twoSku(self):
        ‘‘‘
        :return None
        1.接口主要实现功能: 设置店铺商品和2个店铺商品sku的最大销售库存
        ‘‘‘
        set_sales_stock_of_have_twoSku = Set_sales_stock_of_have_twoSku()
        set_sales_stock_of_have_twoSku.goodsLibId = self.goods_lib_id
        set_sales_stock_of_have_twoSku.salesStock_of_skuA = 600
        set_sales_stock_of_have_twoSku.skuIdA = self.sku_id_of_sku_a
        set_sales_stock_of_have_twoSku.salesStock_of_skuB = 600
        set_sales_stock_of_have_twoSku.skuIdB = self.sku_id_of_sku_b
        set_sales_stock_of_have_twoSku.outItemId = self.out_item_id
        set_sales_stock_of_have_twoSku.salesStock_of_good = 1200
        set_sales_stock_of_have_twoSku.shopId = self.oneRelationshipOfShopAndWarehouse["数字门店A"]["门店id"]
        set_sales_stock_of_have_twoSku.sendRequest()

    def log(self):
        ‘‘‘
        :return None
        1.接口主要实现功能: 输出相关日志
        ‘‘‘
        print("1.生成一个商品A的sys_item_id值是:%s;  --->值可以在kd_goods表里找到;"%self.sys_item_id)
        print("2.生成一个商品A的两个商品sku的sys_sku_id和sku_id的信息:%s;  --->值可以在kd_goods_sku表里找到;"%self.two_sysSkuIds_skuIds)
        print("3.生成一个商品A的数字门店A的店铺商品A的out_item_id值是:%s;  --->值可以在kd_item表里找到;"%self.out_item_id)
        r1 = m_kd_item.get_one_random_value_of_one_tableField("sales_stock",[["sys_item_id",self.sys_item_id],["out_item_id",self.out_item_id],["digit_shop_id",self.oneRelationshipOfShopAndWarehouse["数字门店A"]["门店id"]],["goods_lib_id",self.goods_lib_id]])
        r2 = m_kd_item_sku.get_one_random_value_of_one_tableField("sales_stock",[["out_item_id",self.out_item_id],["digit_shop_id",self.oneRelationshipOfShopAndWarehouse["数字门店A"]["门店id"]],["goods_lib_id",self.goods_lib_id],["sku_id",self.sku_id_of_sku_a]])
        r3 = m_kd_item_sku.get_one_random_value_of_one_tableField("sales_stock",[["out_item_id",self.out_item_id],["digit_shop_id",self.oneRelationshipOfShopAndWarehouse["数字门店A"]["门店id"]],["goods_lib_id",self.goods_lib_id],["sku_id",self.sku_id_of_sku_b]])
        print("4.生成一个店铺商品A的最大销售库存值是:%s     --->值可以在kd_item表里找到;"%r1)
        print("5.生成一个店铺商品A的一个店铺商品sku-a最大销售库存值是:%s   --->值可以在kd_item_sku表里找到;"%r2)
        print("6.生成一个店铺商品A的一个店铺商品sku-b最大销售库存值是:%s   --->值可以在kd_item_sku表里找到;"%r3)
        print("7.生成该店铺商品A和店铺商品sku-a&sku-b涉及的数字门店/线下门店/仓库等等信息为:%s"%self.oneRelationshipOfShopAndWarehouse)

if __name__ == "__main__":

    r = run(100009,"第一组门店仓库关联数据")
2.相关调试结果(调试通过;数据库相关表信息都存储正确;)

3.备注(1).类属性、类的实例化、类继承、类方法/属性重写, 等理论需熟悉;(2).类被实例化后,属性和初始化参数会自动分配物理内存;

原文地址:https://www.cnblogs.com/xiamen-momo/p/12636685.html

时间: 2024-08-02 00:55:09

工具类:每次随机生成有销售库存有实际库存的1个店铺商品和对应的2个店铺商品sku的相关文章

Mybitis根据工具类反射数据库生成映射+整合springboot

一 反向生成数据库mapper的工具类: 添加依赖 <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <scope>test</scope> <version>1.3.2</version> <optional>true</opt

java工具类–自动将数据库表生成javabean

最近和数据库的表打交道挺多的,因为暂时做的是接口活. 在这过程中发现要把表转换成对应的javabean类型,字段少的表还行,如果不小心碰到几十个字段的他妈的写起来就有点麻烦了,万一碰到几百个的呢,那不是要崩溃. 于是想写个工具类,自动生成javabean. 先说下思路: 1.读取数据库表,获取里面的字段名. 准备连接数据库的驱动包,这里只是针对了oracle数据库和mysql数据库 2.构建一个stringBuffer字符串,用来生成我们需要的类. 3.写入文件 要求具备相应的文件流知识. 好了

UUID工具类

import java.util.Arrays; import java.util.UUID; /** * UUID工具类 * UUID发生器 生成单个UUID或UUID组 * */ public class UUIDGenerator { /** * 定义UU64常量组 */ private static final char[] _UU64 = "*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".to

Java常用工具类(计算MD5,验证码随机生成,天数差值计算)

写这个博文的目的是为了怕哪天自己的电脑崩溃了,以前写的那些代码就没了,所以将自己写的工具类贴出来,方便以后去使用,也避免自己反复去创造轮子, 也可以对这些方法进行简单修改来完成业务需求,这样就可以极大的提高开发的效率. 方法一:计算字符串的MD5的值 使用方法很简单,直接把值传入方法中就可以了,会返回一个字符串String注意去获取. public final static String calculateMD5(String s) { char hexDigits[] = { '0', '1'

生成随机验证码图片的工具类

package utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.ByteArrayOutpu

java随机生成字符串工具类

package aA; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; /** * 字符随机生成类 */ public class RandomDemo { /** * 随机产生类型枚举 */ public static enum TYPE { /**小字符型*/ LETTER, /**大写字符型*/ CAPITAL, /**数字型*/ NUMBER, /**大+小字符 型*/ LETTE

Java随机取字符串的工具类

原文:Java随机取字符串的工具类 源代码下载地址:http://www.zuidaima.com/share/1550463479532544.htm Java 随机取字符串的工具类 可以全部是数字,字符,也可以字符和数字组合的工具类,希望能给大家带来帮助 package com.zuidaima.test; import java.util.Random; public class RandomUtils { public static final String ALLCHAR = "012

二维码生成工具类java版

注意:这里我不提供所需jar包的路径,我会把所有引用的jar包显示出来,大家自行Google package com.net.util; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import java.a

Java随机字符串:随机数字字符串,工具类

Java中生成随机数,字符串的工具类 1. 调用方法需要传入生成字符串的长度和需要的类型 生成随机数字 生成随机字母字符串 生成随机字符串+数字等 ......... 2. 总共8种类型,具体看工具类中的注释. 1 import java.util.Date; 2 import java.util.Random; 3 import java.util.UUID; 4 5 /** 6 * @Name RandomStringUtil 7 * @Descr 生成随机字符串 8 * @author d