コード例 #1
0
    def get_category_by_prname(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args or "PRname" not in args:
            return PARAMS_MISS
        prname = get_str(args, "PRname")
        from ManagerSystem.models.model import Products
        pr_filter = {Products.PRname.like("%{0}%".format(prname))}
        from ManagerSystem.service.SProducts import SProducts
        spro = SProducts()
        pr_list = tolist(spro.get_product_by_filter(pr_filter))
        pr_list = pr_list[:find_category_by_prname_size]
        log.info("pr list", pr_list)
        ctname_list = []
        for pr in pr_list:
            ct_filter = {Category.CTid == pr.get("CTid")}
            ct_name = tolist(
                self.scategory.get_category_by_or_filter(ct_filter))
            if not ct_name:
                continue
            ct_name = ct_name[0]
            log.info("ct name", ct_name)
            if ct_name in ctname_list:
                continue
            ctname_list.append(ct_name)

        response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
        response["data"] = ctname_list[:find_category_by_prname_size]
        return response
コード例 #2
0
    def get_stock_all(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        maid = token_to_usid(args.get("token"))

        try:
            if "PBid" not in args:
                prid_list = [
                    product.PRid
                    for product in self.sproduct.get_product_by_maid(maid)
                ]
                log.info("prid list", prid_list)
                pbid_list = []
                for prid in prid_list:
                    pbid_list.extend([
                        productbrand.PBid for productbrand in
                        self.sproduct.get_productbrand_by_prid(prid)
                    ])
                log.info("pbid list", pbid_list)
                stocks_list = []
                for pbid in pbid_list:
                    stock_product_list = tolist(
                        self.sstocks.get_stocks_by_PBid(pbid))
                    log.info("stock_product_list", stock_product_list)
                    for stock_product in stock_product_list:
                        stock = todict(
                            self.sstocks.get_stock_by_stid(
                                stock_product.get("STid")))
                        log.info("stock", stock)
                        stock_product.update(stock)

                    stocks_list.extend(stock_product_list)
            else:
                stocks_list = tolist(
                    self.sstocks.get_stocks_by_PBid(args.get("PBid")))
                for stock_product in stocks_list:
                    stock = todict(
                        self.sstocks.get_stock_by_stid(
                            stock_product.get("STid")))
                    stock_product.update(stock)

            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            response["data"] = stocks_list
            return response
        except Exception as e:
            log.error("get error", e.message)
            return SYSTEM_ERROR
コード例 #3
0
    def get_child(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS

        ctid = get_str(args, "CTid", "0")
        if not ctid:
            ctid = "0"

        try:
            category_filter = {Category.CTfromid == ctid}
            if "category_filter" in args:
                category_filter.add(
                    Category.CTname.like("%{0}%".format(
                        get_str(args, "category_filter"))))
            ct_list = tolist(
                self.scategory.get_category_by_and_filter(category_filter))
            log.info("ct_list", ct_list)
            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            response["data"] = ct_list
            return response
        except Exception as e:
            log.error("get child", e.message)
            return SYSTEM_ERROR
コード例 #4
0
    def get_stock(self):
        args = request.args.to_dict()
        log.info("args", args)
        params_list = ["token", "STid"]
        for key in params_list:
            if key not in args:
                return PARAMS_MISS

        maid = token_to_usid(args.get("token"))
        prid_list = [
            product.PRid for product in self.sproduct.get_product_by_maid(maid)
        ]
        pbid_list = []
        for prid in prid_list:
            pbid_list.extend([
                productbrand.PBid for productbrand in
                self.sproduct.get_productbrand_by_prid(prid)
            ])
        stocks_list = []
        for pbid in pbid_list:
            stocks_list.extend(tolist(self.sstocks.get_stocks_by_PBid(pbid)))
        if args.get("STid") not in stocks_list:
            return get_response("ERROR_MESSAGE_DB_ERROR", "MANAGERSYSTEMERROR",
                                "ERROR_CODE_DB_ERROR")
        stock = todict(self.sstocks.get_stock_by_stid(args.get("STid")))
        response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
        response["data"] = stock
        return response
コード例 #5
0
ファイル: CManager.py プロジェクト: haobin12358/ManagerSystem
    def get_users(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        maid = token_to_usid(args.get("token"))
        try:
            manager = self.smanager.get_manager_by_maid(maid)
            if not manager:
                return SYSTEM_ERROR
            if manager.MAidentity > 101:
                return get_response("ERROR_MESSAGE_NO_PERMISSION",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_NO_PERMISSION")
            page_size = int(args.get("page_size"))
            page_num = int(args.get("page_num"))
            or_filter = set()
            if args.get("USfilter"):
                from ManagerSystem.models.model import Users
                or_filter.add(
                    Users.USname.like("%{0}%".format(get_str(args,
                                                             "USfilter"))))
                or_filter.add(
                    Users.UStelphone.like("%{0}%".format(
                        get_str(args, "USfilter"))))

            from ManagerSystem.config.conversion import conversion_USsex
            pn, count = self.check_page_value(page_num,
                                              page_size, "model.Users.USid",
                                              set(), or_filter)
            start_num = (pn - 1) * page_size
            users = tolist(
                self.smanager.get_users(start_num, page_size, or_filter))
            for user in users:
                user["USsex"] = conversion_USsex.get(user.get("USsex"))
                user["UScreateTime"] = TimeManager.get_web_time_str(
                    user.get("UScreateTime"))
                user["USloginTime"] = TimeManager.get_web_time_str(
                    user.get("USloginTime"))
                user["USstatus"] = conversion_MAstatus.get(
                    user.get("USstatus"))

            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")

            response["data"] = {
                "count": count,
                "page_num": pn,
                "page_size": page_size,
                "USers": users
            }
            return response
        except Exception as e:
            log.error("get users", e.message)
            return SYSTEM_ERROR
コード例 #6
0
    def get_ctlist_by_ctid(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args or "CTid" not in args:
            return PARAMS_MISS
        ct_filter = {Category.CTid == args.get("CTid")}
        parentid_list = [
            ct.get("CTfromid")
            for ct in tolist(self.scategory.get_category_by_or_filter(set()))
        ]
        if args.get("CTid") in parentid_list:
            return get_response("ERROR_MESSAGE_DB_ERROR", "MANAGERSYSTEMERROR",
                                "ERROR_CODE_DB_ERROR")
        ct_list = []
        while True:
            ct = tolist(self.scategory.get_category_by_or_filter(ct_filter))[0]
            ct_list.insert(0, ct)
            if ct.get("CTfromid") == "0":
                break
            ct_filter = {Category.CTid == ct.get("CTfromid")}
        response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")

        response["data"] = ct_list
        return response
コード例 #7
0
ファイル: CManager.py プロジェクト: haobin12358/ManagerSystem
    def get_managers(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        page_size = int(args.get("page_size"))
        page_num = int(args.get("page_num"))
        or_filter = set()
        if "MAfilter" in args:
            from ManagerSystem.models.model import Manager
            or_filter.add(
                Manager.MAnicname.like("%{0}%".format(get_str(
                    args, "MAfilter"))))
            or_filter.add(
                Manager.MAemail.like("%{0}%".format(get_str(args,
                                                            "MAfilter"))))

        maid = token_to_usid(args.get("token"))
        try:
            pn, count = self.check_page_value(page_num,
                                              page_size, "model.Manager.MAid",
                                              set(), or_filter)
            start_num = (pn - 1) * page_size
            manager = self.smanager.get_manager_by_maid(maid)
            if not manager:
                return SYSTEM_ERROR
            manager_list = tolist(
                self.smanager.get_managers(start_num, page_size, or_filter))
            for manager in manager_list:
                manager["MAidentity"] = conversion_MAidentity.get(
                    manager.get("MAidentity"))
                manager["MAstatus"] = conversion_MAstatus.get(
                    manager.get("MAstatus"))
                manager["MAloginTime"] = TimeManager.get_web_time_str(
                    manager.get("MAloginTime"))
                manager["MAcreatTime"] = TimeManager.get_web_time_str(
                    manager.get("MAcreatTime"))
            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            response["data"] = {
                "count": count,
                "page_num": pn,
                "page_size": page_size,
                "Managers": manager_list
            }
            return response
        except Exception as e:
            log.error("get managers", e.message)
            return SYSTEM_ERROR
コード例 #8
0
    def get_first(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS

        category_filter = {Category.CTfromid == "0"}
        try:
            cate_list = tolist(
                self.scategory.get_category_by_or_filter(category_filter))
            log.info("cate list", cate_list)
            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            response["data"] = cate_list
            return response
        except Exception as e:
            log.error("get first", e.message)
            return SYSTEM_ERROR
コード例 #9
0
ファイル: CActive.py プロジェクト: haobin12358/ManagerSystem
    def get_acabo(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args or "COid" not in args:
            return PARAMS_MISS
        try:
            maid = token_to_usid(args.get("token"))
        except:
            return TOKEN_ERROR
        manager = self.smanager.get_manager_by_maid(maid)
        if not manager:
            return TOKEN_ERROR

        coid = args.get("COid")
        try:
            co = tolist(
                self.sactive.get_actives_by_filter(
                    {CouponsActives.COid == coid}, set()))
            log.info("co", co)
            if not co:
                return get_response("ERROR_MESSAGE_DB_ERROR",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_DB_ERROR")
            co = co[0]
            co["COstatus"] = conversion_COstatus.get(co["COstatus"])
            co["COtype"] = conversion_COtype.get(co["COtype"])
            co["COstart"] = TimeManager.get_web_time_str(co["COstart"])
            co["COend"] = TimeManager.get_web_time_str(co["COend"])
            co["COunit"] = conversion_PBunit.get(co["COunit"])
            co["COgenre"] = conversion_COgenre.get(co["COgenre"])
            co["COimage"] = json.loads(co["COimage"])
            cm_list = self.sactive.get_cm_by_filter(
                {CouponsManager.COid == coid}, set())
            prid = []
            for cm in cm_list:
                if cm.PRid:
                    prid.append(cm.PRid)
            co["PRids"] = prid
            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            response["data"] = co
            return response
        except Exception as e:
            log.error("get abo", e.message)
            return SYSTEM_ERROR
コード例 #10
0
    def get_approval(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        try:
            maid = token_to_usid(args.get("token"))
        except:
            return TOKEN_ERROR

        page_size = int(args.get("page_size"))
        page_num = int(args.get("page_num"))

        approval_filter = {
            Approval.APreceive == maid,
        }
        if args.get("APname"):
            approval_filter.add(Approval.APname.like("%{0}%".format(get_str(args, "APname"))))
        if args.get("APstart"):
            apstart = [ma.MAid for ma in self.smanager.get_manager_by_name(args.get("APstart"))]
            approval_filter.add(Approval.APstart.in_(apstart))
        pn, count = self.check_page_value(page_num, page_size, "model.Approval.APid", approval_filter, set())
        start_num = (pn - 1) * page_size
        try:
            approval_list = tolist(self.sapproval.get_approval_by_and_filter(start_num, page_size, approval_filter))
            log.info("approval", approval_list)
            for approval in approval_list:
                approval["APstatus"] = conversion_APstatus.get(approval.get("APstatus", 441))
                approval["PEtype"] = conversion_PEtype.get(approval.get("PEtype", 304))
                manager = self.smanager.get_manager_by_maid(approval.get("APstart"))
                log.info("manager", manager)
                approval["APstart"] = manager.MAname
                approval["APtime"] = TimeManager.get_web_time_str(approval.get("APtime"))
            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            response["data"] = {
                "approvals": approval_list,
                "count": count,
                "page_size": page_size,
                "page_num": page_num
            }
            return response
        except Exception as e:
            log.error("get approval", e.message)
            return SYSTEM_ERROR
コード例 #11
0
ファイル: COrder.py プロジェクト: haobin12358/ManagerSystem
    def _get_order_abo_by_order_main(self, order_main):
        order_part_list = tolist(
            self.sorder.get_order_part_list_by_omid(order_main.get("OMid")))
        for order_part in order_part_list:
            order_part.update(
                self._get_product_into_order_abo(order_part.get("PBid")))

        order_main["order_abo"] = order_part_list
        order_main["OMcointype"] = cvs.conversion_PBunit.get(
            order_main.get("OMcointype"), "其他币种")
        order_main["OMstatus"] = cvs.conversion_OMstatus.get(
            order_main.get("OMstatus"), 0)
        order_main["OMtime"] = TimeManager.get_web_time_str(
            order_main.get("OMtime"))
        location = todict(
            self.sorder.get_location_by_loid(order_main.get("LOid")))
        if location.get("LOisedit") == 303:
            print(get_response("ERROR_MESSAGE_GET_LOCATION",
                               "WORING_LOCATION"))
        order_main.update(location)
        order_main["CAid"] = order_main.pop("COid")
コード例 #12
0
    def get_categorybrands(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args or "CTid" not in args:
            return PARAMS_MISS

        ctid = get_str(args, "CTid")
        try:
            category_filter = {CategoryBrand.CTid == ctid}
            cb_list = tolist(
                self.scategory.get_categorybrands_by_filter(category_filter))
            log.info("cb list", cb_list)
            response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            for cb in cb_list:
                if cb.get("CBvalue"):
                    cb["CBvalue"] = str.split(get_str(cb, "CBvalue"), ",")
            response["data"] = cb_list
            return response
        except Exception as e:
            log.error("get categprybrands", e.message)
            return SYSTEM_ERROR
コード例 #13
0
    def get_brands(self, prid):
        pblist = tolist(self.sproduct.get_pball_by_prid(prid))
        log.info("pblist", pblist)
        brandskey = []

        for pb in pblist:
            brid = pb.get("BRid")
            brand = self.sproduct.get_brand_by_brid(brid)
            pbnumber_list = [st.PBnumber for st in self.stock.get_stocks_by_PBid(pb.get("PBid"))]
            log.info("pbnumber_list", pbnumber_list)
            brands = []
            while brid != "0":
                if brand.BRkey not in brandskey:
                    brandskey.append(brand.BRkey)
                brands.append(brand.BRvalue)
                brid = brand.BRfromid
                brand = self.sproduct.get_brand_by_brid(brid)
            pb["BRands"] = brands
            pb['PBstatus'] = conversion_PBstatus.get(pb.get("PBstatus"))
            pb["PBunit"] = conversion_PBunit.get(pb.get("PBunit"))
            pb["PBnumber"] = sum(pbnumber_list)

        return pblist, brandskey
コード例 #14
0
ファイル: COrder.py プロジェクト: haobin12358/ManagerSystem
    def get_order_list(self):
        try:
            args = request.args.to_dict()
            log.info("args", args)
            if "token" not in args or "page_size" not in args or "page_num" not in args:
                return PARAMS_MISS
            page_size = int(args.get("page_size"))
            page_num = int(args.get("page_num"))
            maid = token_to_usid(args.get("token"))
            from ManagerSystem.models.model import Products
            product_filter = {Products.MAid == maid}
            if args.get("PRname"):
                product_filter.add(
                    Products.PRname.like("%{0}%".format(get_str(
                        args, "PRname"))))

            product_list = tolist(
                self.sproduct.get_product_by_filter(product_filter))
            log.info("product list ", product_list)
            pb_list = []
            for product in product_list:
                product["PBunit"] = cvs.conversion_PBunit.get(
                    product.get("PBunit", "其他币种"))
                product["PRbrand"] = cvs.conversion_PRbrand.get(
                    product.get("PRbrand"), "其他")
                product["PRtype"] = cvs.conversion_PRtype.get(
                    product.get("PRtype"))
                for pb in tolist(
                        self.sproduct.get_pball_by_prid(product.get("PRid"))):
                    pb.update(product)
                    pb_list.append(pb)
            log.info("pb_list", pb_list)
            om_list = []
            om_id_dict = {}
            from ManagerSystem.models.model import OrderMain
            omfilter = set()
            if args.get("OMstatus"):
                omstatus = cvs.conversion_OMstatus_reverse.get(
                    get_str(args, "OMstatus"))
                omfilter.add(OrderMain.OMstatus == omstatus)
            if args.get("OMlogisticsName"):
                omfilter.add(OrderMain.OMlogisticsName == get_str(
                    args, "OMlogisticsName"))
            if args.get("OMstartTime"):
                omfilter.add(OrderMain.OMtime >= TimeManager.get_db_time_str(
                    args.get("OMstartTime")))
            if args.get("OMendTime"):
                omfilter.add(OrderMain.OMtime <= TimeManager.get_db_time_str(
                    args.get("OMendTime")))

            for pb in pb_list:
                op_pb_list = tolist(
                    self.sorder.get_order_part_list_by_pbid(pb.get("PBid")))
                for op_pb in op_pb_list:
                    op_pb.update(pb)
                    if op_pb.get("OMid") in om_id_dict:
                        om_id_dict[op_pb.get("OMid")].append(op_pb)
                    else:
                        om_id_dict[op_pb.get("OMid")] = [op_pb]
            log.info("om_id_dict", om_id_dict)
            om_count = {k: 0 for k in cvs.conversion_OMstatus}
            for om_id in om_id_dict:
                if args.get("OMid") and args.get("OMid") not in om_id:
                    continue
                omfilter_tmp = omfilter.copy()
                omfilter_tmp.add(OrderMain.OMid == om_id)
                om_dict = tolist(self.sorder.get_om_by_filter(omfilter_tmp))
                if not om_dict:
                    continue
                om_dict = om_dict[0]
                om_dict.update({"order_item": om_id_dict.get(om_id)})
                location = todict(
                    self.sorder.get_location_by_usid(om_dict.pop("USid")))
                log.info("location", location)
                om_count[om_dict.get("OMstatus")] += 1
                om_dict.update(location)
                om_dict["OMcointype"] = cvs.conversion_PBunit.get(
                    om_dict.get("OMcointype"), "其他币种")
                om_dict["OMstatus"] = cvs.conversion_OMstatus.get(
                    om_dict.get("OMstatus"), 0)
                om_dict["OMtime"] = TimeManager.get_web_time_str(
                    om_dict.get("OMtime"))

                om_list.append(om_dict)
            log.info("omlist", om_list)
            count = len(om_list)
            if page_size * page_num > count:
                page_num = count / page_size + 1
            page_num = page_num if page_num > 0 else 1
            om_list = om_list[(page_num - 1) * page_size:page_num * page_size]
            data = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
            data["data"] = {
                "count": count,
                "page_num": page_num,
                "page_size": page_size,
                "OrderMains": om_list,
                "OMcount": om_count
            }
            return data
        except Exception as e:
            log.error("get order list", e.message)
            import traceback
            print(traceback.format_exc())
            return SYSTEM_ERROR
コード例 #15
0
    def get_info_by_id(self):
        args = request.args.to_dict()
        log.info("args", args)
        params_key_list = ["PRid", "token"]
        for param_key in params_key_list:
            if param_key not in args:
                return PARAMS_MISS
        PRid = args["PRid"]
        maid = args.get("token")
        product = self.sproduct.get_product_by_prid(PRid)
        log.info("product", product)

        if not product:
            return SYSTEM_ERROR
        from ManagerSystem.service.SCategory import SCategory
        from ManagerSystem.models.model import CategoryBrand
        category_filter = {
            CategoryBrand.CTid == product.CTid
        }

        category = tolist(SCategory().get_categorybrands_by_filter(category_filter))
        log.info("cb list", category)
        for cb in category:
            if cb.get("CBvalue"):
                cb["CBvalue"] = str.split(get_str(cb, "CBvalue"), ",")
        product_price = [9999999, -1]
        product_volue = 0
        product_price_list =[
            pro.PBprice for pro in self.sproduct.get_pbprice_by_prid(PRid)]
        log.info("product_price_list", product_price_list)
        if not product_price_list:
            return SYSTEM_ERROR
        for row in product_price_list:
            if row < product_price[0]:
                product_price[0] = row
            if row > product_price[1]:
                product_price[1] = row
        product_price = [str(i) for i in product_price]
        prprice = "-".join(product_price) \
            if product_price[0] != product_price[1] \
            else product_price[0]
        product_volue_list = [pro.PBsalesvolume for pro in
                              self.sproduct.get_pbvolume_by_prid(PRid)]
        log.info('product_volue_list', product_volue_list)
        if not product_volue_list:
            return SYSTEM_ERROR
        for row in product_volue_list:
            product_volue = product_volue + row
        product_info = {}
        product_info["PRid"] = PRid
        product_info["PRprice"] = prprice
        product_info["PRsalevolume"] = product_volue
        product_info["PRname"] = product.PRname
        product_info["PRvideo"] = product.PRvideo
        product_info["PRfranking"] = product.PRfranking
        product_info["PRinfo"] = product.PRinfo
        product_info["PRvideostart"] = product.PRvideostart
        product_info["PRimage"] = json.loads(product.PRimage)
        product_info["PRaboimage"] = json.loads(product.PRaboimage)
        PRbrand = product.PRbrand
        PRtype = product.PRtype
        product_info["PRbrand"] = json.loads(PRbrand)
        product_info["PRtype"] = conversion_PRtype.get(PRtype)
        brands, brands_key = self.get_brands(PRid)
        product_info["brands"] = brands
        product_info["brands_key"] = brands_key
        response_of_product = get_response("SUCCESS_MESSAGE_GET_PRODUCT", "OK")
        response_of_product["data"] = {
            "category": category,
            "product_info": product_info
        }
        return response_of_product
コード例 #16
0
    def get_all(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args or "page_size" not in args or "page_num" not in args:
            return PARAMS_MISS
        page_size = int(args.get("page_size"))
        page_num = int(args.get("page_num"))
        maid = token_to_usid(args.get("token"))
        from ManagerSystem.models.model import Products
        pro_fillter = {Products.MAid == maid}
        sub_filter = set()
        if args.get("product_filter"):
            product_filter = get_str(args, "product_filter")
            sub_filter = {
                Products.PRname.like("%{0}%".format(product_filter)),
                Products.PRinfo.like("%{0}%".format(product_filter))
            }

        pn, count = self.check_page_value(page_num, page_size, "model.Products.PRid", pro_fillter, sub_filter)
        start_num = (pn - 1) * page_size
        PRid_list = [products.PRid for products in self.sproduct.get_all_prid(start_num, page_size, pro_fillter, sub_filter)]
        log.info("PRid list", PRid_list)
        pbstatus = get_str(args, "PBstatus")
        # todo 增加遍历输出所有图片
        # htv = float(args.get("htv", 0.48))
        # from ManagerSystem.common.Gethdp import get_hdp
        # hdp = get_hdp(htv)
        product_infos = []
        for PRid in PRid_list:
            product = todict(self.sproduct.get_product_by_prid(PRid))
            log.info("product", product)
            if not product:
                return SYSTEM_ERROR

            product["PRid"] = PRid
            product["PRimage"] = json.loads(product.get("PRimage"))
            product["PRaboimage"] = json.loads(product.get("PRaboimage"))
            product["PRtype"] = conversion_PRtype.get(get_str(product, "PRtype"))
            product["PRtime"] = TimeManager.get_web_time_str(product.get("PRtime"))
            product["PRbrand"] = json.loads(product.get("PRbrand"))
            log.info("pbstatus", pbstatus)
            saleamount = 0
            stockamout = 0
            if not pbstatus:
                pb_list = tolist(self.sproduct.get_pball_by_prid(PRid))
            else:
                pb_list = tolist(self.sproduct.get_pball_by_prid_pbstatus(PRid, conversion_PBstatus_reverse.get(pbstatus)))

            PRstatus = ""
            for pb in pb_list:
                saleamount += int(pb.get("PBsalesvolume"))
                PRstatus = conversion_PBstatus.get(pb.get("PBstatus"))
                stockamout += sum([int(st.get("PBnumber", 0)) for st in tolist(self.stock.get_stocks_by_PBid(pb.get("PBid")))])
                pb.update(product)

            if not PRstatus:
                count -= 1
                continue

            # product_infos.extend(pb_list)
            product["PRsalesvolume"] = saleamount
            product["PRstock"] = stockamout
            product["PRstatus"] = PRstatus
            product_infos.append(product)

        response_of_product = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
        response_of_product["data"] = {
            "count": count,
            "page_num": page_num,
            "page_size": page_size,
            "products": product_infos
        }
        log.info("response", response_of_product)
        return response_of_product
コード例 #17
0
ファイル: CActive.py プロジェクト: haobin12358/ManagerSystem
    def get_active(self):
        args = request.args.to_dict()
        log.info("args", args)
        params_key = ["token", "page_size", "page_num", "COgenre"]
        for key in params_key:
            if key not in args:
                return PARAMS_MISS
        try:
            maid = token_to_usid(args.get("token"))
        except:
            return TOKEN_ERROR
        manager = self.smanager.get_manager_by_maid(maid)
        if not manager:
            return TOKEN_ERROR
        page_num = int(args.get("page_num"))
        page_size = int(args.get("page_size"))
        start_time = ""
        end_time = ""
        if args.get("COstart"):
            start_time = TimeManager.get_db_time_str(args.get("COstart"))
        if args.get("COend"):
            end_time = TimeManager.get_db_time_str(args.get("COend"))
        amfilter = {CouponsManager.MAid == maid}
        cm_dict = {}
        for cm in self.sactive.get_cm_by_filter(amfilter, set()):
            if cm.COid not in cm_dict:
                cm_dict[cm.COid] = [cm.PRid]
            else:
                cm_dict[cm.COid].append(cm.PRid)

        active_list = []
        for coid in cm_dict:
            am_tmp_filter = {
                CouponsActives.COid == coid,
                CouponsActives.COgenre == conversion_COgenre_resverse.get(
                    get_str(args, "COgenre")), CouponsActives.COstatus != 560
            }
            ca_list = tolist(
                self.sactive.get_actives_by_filter(am_tmp_filter, set()))
            for ca in ca_list:
                if args.get("COname") and get_str(
                        args, "COname") not in get_str(ca, "COname"):
                    continue
                if args.get("COid") and get_str(args, "COid") not in get_str(
                        ca, "COid"):
                    continue
                if args.get("COstatus") and conversion_COstatus_resverse.get(
                        get_str(args, "COstatus")) != ca.get("COstatus"):
                    continue
                if start_time and start_time > ca.get("COend"):
                    continue
                if end_time and end_time < ca.get("COstart"):
                    continue
                if args.get("COtype") and conversion_COtype_resverse.get(
                        get_str(args, "COtype")) != ca.get("COtype"):
                    continue
                ca["COstatus"] = conversion_COstatus.get(ca["COstatus"])
                ca["duration"] = TimeManager.get_delta_time(
                    ca["COstart"], ca["COend"])
                ca["COstart"] = TimeManager.get_web_time_str(ca["COstart"])
                ca["COend"] = TimeManager.get_web_time_str(ca["COend"])
                ca["COunit"] = conversion_PBunit.get(ca["COunit"])
                ca["COtype"] = conversion_COtype.get(ca.get("COtype"))
                ca["PRids"] = cm_dict.get(coid)
                ca["COimage"] = json.loads(ca["COimage"])
                ca["get_num"] = len(
                    self.sactive.get_cp_by_filter({Cardpackage.COid == coid},
                                                  set()))

                active_list.append(ca)
        count = len(active_list)
        if page_size * page_num > count:
            page_num = count / page_size + 1
        active_list = active_list[(page_num - 1) * page_size:page_num *
                                  page_size]
        response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
        response["count"] = count
        response["page_size"] = page_size
        response["page_num"] = page_num
        response["CouponsActives"] = active_list
        return response