Beispiel #1
0
 def update_permission(self):
     args = request.args.to_dict()
     log.info("args", args)
     data = json.loads(request.data)
     log.info("data", data)
     if "token" not in args:
         return PARAMS_MISS
     maid = token_to_usid(args.get("token"))
     manager = self.smanager.get_manager_by_maid(maid)
     if manager.MAidentity != 100:
         return get_response("ERROR_MESSAGE_NO_PERMISSION", "MANAGERSYSTEMERROR", "ERROR_CODE_NO_PERMISSION")
     if "PEid" not in data:
         return PARAMS_MISS
     permission = {
         "PEtype": data.get("PEtype"),
         "PEsubLevel": data.get("PEsubLevel"),
     }
     try:
         update_result = self.sapproval.update_permission(data.get("PEid"), permission)
         if not update_result:
             return get_response("ERROR_MESSAGE_DB_ERROR", "MANAGERSYSTEMERROR", "ERROR_CODE_DB_ERROR")
         return get_response("SUCCESS_MESSAGE_UPDATE_DATA", "OK")
     except Exception as e:
         log.error("update permission", e.message)
         return SYSTEM_ERROR
Beispiel #2
0
 def update_manager_by_matel(self):
     args = request.args.to_dict()
     log.info("args", args)
     if "token" not in args:
         return PARAMS_MISS
     data = json.loads(request.data)
     log.info("data", data)
     if "MAtelphone" not in data:
         return PARAMS_MISS
     maid = token_to_usid(args.get("token"))
     manager = self.smanager.get_manager_by_maid(maid)
     if manager.MAidentity > 101:
         return get_response("ERROR_MESSAGE_NO_PERMISSION",
                             "MANAGERSYSTEMERROR",
                             "ERROR_CODE_NO_PERMISSION")
     try:
         from ManagerSystem.models.model import Manager
         mng = {
             "MAstatus":
             conversion_MAstatus_resverse.get(get_str(data, "MAstatus"))
         }
         update_result = self.smanager.update_users_by_matel(
             data.get("MAtelphone"), mng)
         if not update_result:
             return get_response("ERROR_MESSAGE_DB_ERROR",
                                 "MANAGERSYSTEMERROR",
                                 "ERROR_CODE_DB_ERROR")
         return get_response("SUCCESS_MESSAGE_UPDATE_DATA", "OK")
     except Exception as e:
         log.error("update users", e.message)
         return SYSTEM_ERROR
Beispiel #3
0
    def update_order_main(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"))
        if not maid:
            return TOKEN_ERROR
        data = json.loads(request.data)
        log.info("data", data)
        if "OMstatus" not in data or "OMid" not in data:
            return PARAMS_MISS
        try:
            omstatus = cvs.conversion_OMstatus_reverse.get(
                get_str(data, "OMstatus"))
            update_result = self.sorder.update_order(get_str(data, "OMid"),
                                                     {"OMstatus": omstatus})
            log.info("update_result", update_result)
            if not update_result:
                return get_response("ERROR_MESSAGE_DB_ERROR",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_DB_ERROR")
            return get_response("SUCCESS_MESSAGE_UPDATE_ORDER", "OK")
        except Exception as e:
            log.error("update order", e.message)
            return SYSTEM_ERROR
Beispiel #4
0
    def add_approval(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        data = json.loads(request.data)
        log.info("data", data)
        if "PEtype" not in data or "APcontent" not in data:
            return PARAMS_MISS

        petype = conversion_PEtype_resverse.get(get_str(data, "PEtype"))
        apreceive_list =[apreceive.MAid for apreceive in  self.sapproval.get_permission_by_petype_pesublevel(petype, 1)]
        if not apreceive_list:
            return get_response("ERROR_MESSAGE_DB_ERROR", "MANAGERSYSTEMERROR", "ERROR_CODE_DB_ERROR")

        apstart = token_to_usid(args.get("token"))
        try:
            apname = get_str(data, "PEtype") + str(uuid.uuid1())
            for apreceive in apreceive_list:
                self.sapproval.add_model("Approval", **{
                    "APid": str(uuid.uuid1()),
                    "APname": apname,
                    "APstart": apstart,
                    "APstatus": 445,
                    "APreceive": apreceive,
                    "PEtype": petype,
                    "APremark": "",
                    "APcontent": data.get("APcontent"),
                    "APtime": TimeManager.get_db_time_str()
                    })
            return get_response("SUCCESS_MESSAGE_ADD_DATA", "OK")
        except Exception as e:
            log.error("add approval", e.message)
            return SYSTEM_ERROR
Beispiel #5
0
    def update_stock_product(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        data = json.loads(request.data)
        log.info("data", data)
        if "SPid" not in data:
            return PARAMS_MISS
        spid = data.get("SPid")
        sp = {}
        for key in self.stock_product_key_list:
            if key not in data:
                return PARAMS_MISS
            sp[key] = data.get(key)

        try:
            log.info("sp", sp)
            update_result = self.sstocks.update_stock_product(spid, sp)
            log.info("update result", update_result)
            if not update_result:
                return get_response("ERROR_MESSAGE_DB_ERROR",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_DB_ERROR")
            return get_response("SUCCESS_MESSAGE_UPDATE_DATA", "OK")
        except Exception as e:
            log.error("add stock product error", e.message)
            return SYSTEM_ERROR
Beispiel #6
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
Beispiel #7
0
    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
Beispiel #8
0
    def update_manager(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        data = json.loads(request.data)
        log.info("data", data)

        if "MAidentity" not in data or "MAstatus" not in data:
            return PARAMS_MISS
        manager = {"MAcreatTime": TimeManager.get_db_time_str()}
        if data.get("MAidentity"):
            manager["MAidentity"] = conversion_MAidentity_reverse.get(
                data.get("MAidentity", "卖家"))
        if data.get("MAstatus"):
            manager["MAstatus"] = conversion_MAstatus_resverse.get(
                data.get("MAstatus"), "可用")

        maid = token_to_usid(args.get("token"))
        try:
            self.smanager.update_manager(maid, manager)
            return get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
        except Exception as e:
            log.error("UPDATEERROR", e.message)
            return SYSTEM_ERROR
Beispiel #9
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
Beispiel #10
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
Beispiel #11
0
 def get_omfilter(self):
     response = get_response("SUCCESS_MESSAGE_GET_INFO", "OK")
     response["data"] = [
         {
             "name": "订单号",
             "value": "",
             "key": "OMid"
         },
         {
             "name": "订单状态",
             "value": cvs.conversion_OMstatus_reverse.keys(),
             "key": "OMstatus"
         },
         {
             "name": "下单时间",
             "value": "",
             "key": "OMstartTime"
         },
         {
             "name": "下单时间",
             "value": "",
             "key": "OMendTime"
         },
         {
             "name": "物流方式",
             "value": ["顺丰速运"],
             "key": "OMlogisticsName"
         },
         {
             "name": "商品名称",
             "value": "",
             "key": "PRname"
         },
     ]
     return response
Beispiel #12
0
    def update_pro_info(self):
        args = request.args.to_dict()
        log.info("args", args)
        data = json.loads(request.data, encoding="utf8")
        log.info("data", data)
        if "token" not in args:
            return PARAMS_MISS

        if "PRid" not in data:
            return PARAMS_MISS
        prid = data.get("PRid")
        product = {
            "PRimage": json.dumps(data.get("PRimage", [])),
            "PRvideo": data.get("PRvideo", ""),
            "PRfranking": data.get("PRfranking", 0),
            "PRPoint": data.get("PRPoint", ""),
            "PRtime": TimeManager.get_db_time_str(),
        }
        if data.get("PRbrand"):
            product["PRbrand"] = json.dumps(data.get("PRbrand"))

        try:
            update_result = self.sproduct.update_product(prid, product)
            log.info("update result", update_result)
            if not update_result:
                return get_response("ERROR_MESSAGE_DB_ERROR", "MANAGERSYSTEMERROR", "ERROR_CODE_DB_ERROR")
            # brid_list = [br.BRid for br in self.sproduct.get_brid_by_prid(prid)]
            # while True:
            #     fromid_list = []
            #     if not brid_list:
            #         break
            #     for brid in brid_list:
            #         fromid = self.sproduct.get_brfromid_by_brid(brid)
            #         if fromid != "0":
            #             fromid_list.append(fromid)
            #             self.sproduct.del_brand(brid)

                # brid_list = {}.fromkeys(fromid_list).keys()

            delete_result = self.sproduct.delete_pb(prid)
            log.info("delete result", delete_result)
            self.add_brands(prid, data.get("brands"), data.get("brands_key"))
            return get_response("SUCCESS_MESSAGE_UPDATE_DATA", "OK")

        except Exception as e:
            log.error("update product", e.message)
            return SYSTEM_ERROR
Beispiel #13
0
    def forget_password(self):
        data = json.loads(request.data)
        log.info("data", data)
        params_key_list = [
            "MApasswordnew", "MApasswordnewrepeat", "MAtelphone", "MAcode"
        ]
        for key in params_key_list:
            if key not in data:
                return PARAMS_MISS

        Utel = data["MAtelphone"]
        try:
            manager = self.smanager.get_manager_by_matelphone(Utel)
            log.info("manager", manager)
            if not manager:
                return get_response("ERROR_MESSAGE_NONE_TELPHONE",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_NONE_TELPHONE")

            code_in_db = self.smanager.get_code_by_utel(Utel)

            if not code_in_db:
                return get_response("ERROR_MESSAGE_WRONG_TELCODE",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_WRONG_TELCODE")
            if code_in_db.ICcode != data["MAcode"]:
                return get_response("ERROR_MESSAGE_WRONG_TELCODE",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_WRONG_TELCODE")

            if data["MApasswordnew"] != data["MApasswordnewrepeat"]:
                return get_response("ERROR_MESSAGE_WRONG_REPEAT_PASSWORD",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_WRONG_REPEAT_PASSWORD")

            users = {}
            Upwd = data["MApasswordnew"]
            users["MApassword"] = Upwd
            update_info = self.smanager.update_users_by_matel(Utel, users)
            log.info("update info", update_info)
            if not update_info:
                return SYSTEM_ERROR

            return get_response("SUCCESS_MESSAGE_UPDATE_PASSWORD", "OK")
        except Exception as e:
            log.error("forget pwd error", e.message)
            return SYSTEM_ERROR
Beispiel #14
0
    def add_manager(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        smid = token_to_usid(args.get("token"))
        smanager = self.smanager.get_manager_by_maid(smid)
        if smanager.MAidentity != 100:
            return get_response("ERROR_MESSAGE_NO_PERMISSION",
                                "MANAGERSYSTEMERROR",
                                "ERROR_CODE_NO_PERMISSION")

        data = json.loads(request.data)
        log.info("data", data)
        manager_key = ["MAtelphone", "MAemail", "MAname"]
        manager = {}
        for key in manager_key:
            if key in data:
                manager[key] = data.get(key)
        maid = str(uuid.uuid1())
        manager["MAid"] = maid
        manager["MAname"] = get_str(data, "MAname")
        manager["MAtelphone"] = get_str(data, "MAtelphone")
        manager["MApassword"] = self.create_password()
        manager["MAemail"] = get_str(data, "MAemail")
        manager["MAidentity"] = 101
        manager["MAstatus"] = 153
        manager["MAstatus"] = 153
        manager["MAcreatTime"] = TimeManager.get_db_time_str()
        manager["MAendTime"] = TimeManager.get_forward_time(days=365)
        manager["MAloginTime"] = TimeManager.get_db_time_str()
        self.smanager.add_model("Manager", **manager)
        from ManagerSystem.service.SInterface import SInterface
        from ManagerSystem.models.model import Menu
        sinterface = SInterface()
        mmlist = sinterface.get_menu_by_filter({Menu.MNparent != "0"})
        for mm in mmlist:
            self.smanager.add_model("ManagerMenu",
                                    MMid=str(uuid.uuid1()),
                                    MAid=maid,
                                    MNid=mm.MNid)
        response = get_response("SUCCESS_MESSAGE_REGISTER", "OK")
        response["data"] = manager
        return response
Beispiel #15
0
    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
Beispiel #16
0
    def add_permission(self):
        args = request.args.to_dict()
        log.info("args", args)
        data = json.loads(request.data)
        log.info("data", data)
        if "token" not in args:
            return PARAMS_MISS
        try:
            maid = token_to_usid(args.get("token"))
        except:
            return TOKEN_ERROR
        params_list = ["MAtelphone", "PEtype"]
        for k in params_list:
            if k not in data:
                return PARAMS_MISS
        manager = self.smanager.get_manager_by_maid(maid)
        if not manager:
            return TOKEN_ERROR
        petype = conversion_PEtype_resverse.get(get_str(data, "PEtype"), 304)
        try:
            permissioner = self.smanager.get_manager_by_matelphone(data.get("MAtelphone"))
            log.info("permissioner", permissioner)

            if manager.MAidentity != 100:
                return get_response("ERROR_MESSAGE_NO_PERMISSION", "MANAGERSYSTEMERROR", "ERROR_CODE_NO_PERMISSION")
            permission = self.sapproval.get_permission_by_maid_petype(permissioner.MAid, petype)
            log.info("permission", permission)
            if not permission:
                self.sapproval.add_model("Permission", **{
                    "PEid": str(uuid.uuid1()),
                    "PEname": data.get("PEname", ""),
                    "MAid": permissioner.MAid,
                    "PEtype": petype,
                    "PEsubLevel": data.get("PEsubLevel", 1)
                })
            else:
                self.sapproval.update_permission(permission.PEid, {"PEsubLevel": data.get("PEsubLevel", 1)})
            return get_response("SUCCESS_MESSAGE_ADD_DATA", "OK")
        except Exception as e:
            log.error("add permission", e.message)
            return SYSTEM_ERROR
Beispiel #17
0
    def add_product(self):
        args = request.args.to_dict()
        log.info("args", args)
        data = json.loads(request.data)
        log.info("data", data)
        if "token" not in args:
            return PARAMS_MISS
        # if "PRid" not in data:
        #     return PARAMS_MISS
        try:
            maid = token_to_usid(args.get("token"))
        except Exception as e:
            return TOKEN_ERROR
        # 库存

        prid = data.get("PRid")
        # todo 拆分更新
        prid = prid if prid else str(uuid.uuid1())
        # try:
        if not self.add_brands(prid, data.get("brands"), data.get("brands_key")):
            return get_response("ERROR_MESSAGE_WRONG_BRNADS", "MANAGERSYSTEMERROR", "ERROR_CODE_WRONG_BRANDS")
        product = {
            "PRid": prid,
            "PRname": data.get("PRname", ""),
            "PRvideo": data.get("PRvideo", ""),
            "PRimage": json.dumps(data.get("PRimage", [])),
            "PRaboimage": json.dumps(data.get("PRaboimage", "")),
            "PRinfo": data.get("PRinfo", ""),
            "PRvideostart": data.get("PRvideostart", ""),
            "PRfranking": data.get("PRfranking", 0.0),
            "MAid": maid,
            "PRtype": conversion_PRtype_reverse.get(get_str(data, "PRtype", "自营")),
            "PRbrand": json.dumps(data.get("PRbrand")),
            "PRtime": TimeManager.get_db_time_str(),
            "CTid": data.get("CTid")
        }

        self.sproduct.add_model("Products", **product)
        self.add_approval(maid, prid)
        return get_response("SUCCESS_MESSAGE_ADD_DATA", "OK")
Beispiel #18
0
    def update_password(self):
        args = request.args.to_dict()
        if "token" not in args:
            return PARAMS_MISS
        log.info("args", args)
        maid = token_to_usid(args.get("token"))
        data = json.loads(request.data)
        log.info("data", data)
        params_key = ["MApasswordNew", "MApasswordRepeat", "MApasswordOld"]
        for key in params_key:
            if key not in data:
                return PARAMS_MISS

        new_pwd = data.get("MApasswordNew")
        repeat_pwd = data.get("MApasswordRepeat")
        old_pwd = data.get("MApasswordOld")
        if new_pwd and repeat_pwd and new_pwd != repeat_pwd:
            return get_response("ERROR_MESSAGE_WRONG_PARAMS",
                                "MANAGERSYSTEMERROR",
                                "ERROR_CODE_WRONG_PARAMS")
        try:
            password = self.smanager.get_manager_by_maid(maid).MApassword
            log.info("password", password)
            if password != old_pwd:
                return get_response("ERROR_MESSAGE_WRONG_PASSWORD",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_WRONG_PASSWORD")
        except Exception as e:
            log.error("DBERROR", e.message)
            return SYSTEM_ERROR

        try:
            result = self.smanager.update_manager(maid,
                                                  {"MApassword": new_pwd})
            log.info("update result", result)
            if result == 1:
                return get_response("SUCCESS_MESSAGE_UPDATE_PASSWORD", "OK")
        except Exception as e:
            log.error("UPDATEERROR", e.message)
        return SYSTEM_ERROR
Beispiel #19
0
    def update_active_status(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        data = json.loads(request.data)
        log.info("data", data)
        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 = data.get("COid")
        log.info("coid", coid)
        log.info("maid", maid)
        costatus = conversion_COstatus_resverse.get(get_str(data, "COstatus"))
        try:
            cmlist = self.sactive.get_cm_by_filter(
                {CouponsManager.MAid == maid, CouponsManager.COid == coid},
                set())
            log.info("cmlist", cmlist)
            if not cmlist:
                return SYSTEM_ERROR

            update_result = self.sactive.update_actives(
                coid, {"COstatus": costatus})
            log.info("update result", update_result)
            if not update_result:
                return get_response("ERROR_MESSAGE_DB_ERROR",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_CODE_DB_ERROR")
            return get_response("SUCCESS_MESSAGE_UPDATE_ORDER", "OK")
        except Exception as e:
            log.error("update actiave status", e.message)
            return SYSTEM_ERROR
Beispiel #20
0
    def login(self):
        data = json.loads(request.data)
        log.info("data", data)
        param_keys = ["MAname", "MApassword"]
        for key in param_keys:
            if key not in data:
                return PARAMS_MISS
        name = get_str(data, "MAname")
        password = data.get("MApassword")

        if not name or not password:
            return get_response("ERROR_MESSAGE_WRONG_PARAMS",
                                "MANAGERSYSTEMERROR",
                                "ERROR_CODE_WRONG_PARAMS")

        try:
            manager = self.smanager.get_manager_by_maname_mapassword(
                name, password)

            if not manager:
                return get_response("ERROR_MESSAGE_WRONG_PASSWORD",
                                    "MANAGERSYSTEMERROR",
                                    "ERROR_WRONG_PASSWORD")

            maid = manager.MAid
            self.smanager.update_manager(
                maid, {"MAloginTime": TimeManager.get_db_time_str()})
            response = get_response("SUCCESS_MESSAGE_LOGIN", "OK")
            response["data"] = {
                "side": self.get_interface(maid),
                "token": usid_to_token(maid),
                "MAidentity": conversion_MAidentity.get(manager.MAidentity)
            }
            return response
        except Exception as e:
            log.error("LOGINERROR", e.message)
            return SYSTEM_ERROR
Beispiel #21
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
Beispiel #22
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
Beispiel #23
0
    def update_product_status(self):
        args = request.args.to_dict()
        log.info("args", args)
        maid = token_to_usid(args.get("token"))
        if "token" not in args:
            return PARAMS_MISS
        data = json.loads(request.data, encoding="utf8")
        log.info("data", data)
        if "PRstatus" not in data or "PRid" not in data:
            return PARAMS_MISS
        prstatus = get_str(data, "PRstatus")
        pridlist = data.get("PRid")

        self.on_or_off_shelves(pridlist, conversion_PBstatus_reverse.get(prstatus), maid)
        return get_response("SUCCESS_MESSAGE_UPDATE_DATA", "OK")
Beispiel #24
0
    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
Beispiel #25
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
Beispiel #26
0
    def apply_manager(self):
        data = json.loads(request.data)
        log.info("data", data)
        param_keys = ["MAtelphone"]
        for params in param_keys:
            if params not in data:
                return PARAMS_MISS
        manager_key = [
            "MAname", "MAtelphone", "MAemail", "MAidentity", "MApassword",
            "MAstatus", "MAcreatTime", "MAendTime", "MAidNumber",
            "MAidImageFront", "MAidImageReverse", "MAbusinessLicense",
            "MAcredit"
        ]
        manager = {}
        for key in manager_key:
            if key in data:
                manager[key] = data.get(key)

        MAid = str(uuid.uuid1())
        manager["MAid"] = MAid
        maname = "商家{0}".format(data.get(
            "MAtelphone")) if not data.get("MAname") else data.get("MAname")
        manager["MAname"] = maname

        manager["MApassword"] = self.create_password()
        manager["MAidentity"] = conversion_MAidentity_reverse.get(
            data.get("MAidentity", "卖家"))
        manager["MAcreatTime"] = TimeManager.get_db_time_str()
        manager["MAendTime"] = TimeManager.get_db_time_str(
            data.get("MAendTime"))
        manager["MAstatus"] = conversion_MAstatus_resverse.get(
            data.get("MAstatus", "可用"))

        try:
            self.smanager.add_model("Manager", **manager)
        except Exception as e:
            log.error("add manager error", e.message)
            return SYSTEM_ERROR
        response = get_response("SUCCESS_MESSAGE_REGISTER", "OK")
        response["data"] = {
            "MAname": maname,
            "MApassword": manager["MApassword"]
        }
        return response
Beispiel #27
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
Beispiel #28
0
    def add_stock_product(self):
        args = request.args.to_dict()
        log.info("args", args)
        if "token" not in args:
            return PARAMS_MISS
        data = json.loads(request.data)
        log.info("data", data)
        sp = {"SPid": str(uuid.uuid1())}
        for key in self.stock_product_key_list:
            if key not in data:
                return PARAMS_MISS
            sp[key] = data.get(key)

        try:
            self.sstocks.add_model("StocksProducts", **sp)
            return get_response("SUCCESS_MESSAGE_ADD_DATA", "OK")
        except Exception as e:
            log.error("add stock product error", e.message)
            return SYSTEM_ERROR
Beispiel #29
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
Beispiel #30
0
    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")