Ejemplo n.º 1
0
def updateProductStatus(request, productId, status):
    message = None
    code = 0
    logging.info("update product start")
    logging.info("productId is %s status is %s", productId, status)

    if request.method == 'POST':
        try:
            # 校验数据是否存在
            product = Product.objects.get(id=productId)
            if not product:
                code = -30
                return set_response(code, message, {})
            # 校验分单客户是否配置,未配置可下架,不可上架
            else:
                if status == 1 and product.type == 1 and product.isConfig == 0:
                    code = -1044
                    return set_response(code, message, {})
            product.updateAt = getTimeStamp()
            product.status = status
            product.save()
            logging.info('update product status success')
        except Exception as e:
            code = -10000
            logging.error(e)
        finally:
            return set_response(code, message, productId)
    else:
        return
Ejemplo n.º 2
0
def updateProductConfig(request, productId, isConfig):
    message = None
    code = 0
    logging.info("update product isConfig start")
    logging.info("productId is %s isConfig is %s", productId, isConfig)

    if request.method == 'POST':
        try:

            # 校验数据是否存在
            product = Product.objects.get(id=productId)
            if not product:
                code = -30
                return set_response(code, message, {})
            # 设置未配置,自动下架
            if isConfig == 1 or isConfig == 0:
                if isConfig == 0:
                    product.status = 0
                pass
            else:
                code = -10
                return set_response(code, message, {})

            product.updateAt = getTimeStamp()
            product.isConfig = isConfig
            product.save()
            logging.info('update product isConfig success')
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, message, productId)
    else:
        return
Ejemplo n.º 3
0
def updateBannerStatus(request, bannerId, status):
    message = None
    code = 0
    logging.info("update bannerId start")
    logging.info("productId is %s status is %s", bannerId, status)

    if request.method == 'POST':
        try:
            # 校验数据是否存在
            banner = Banner.objects.get(id=bannerId)
            if not banner:
                code = -30
                return set_response(code, message, {})

            banner.updateAt = getTimeStamp()
            banner.status = status
            banner.save()
            logging.info('update product status success')
        except Exception as e:
            code = -10000
            logging.error(e)
        finally:
            return set_response(code, message, bannerId)
    else:
        return
Ejemplo n.º 4
0
def deleteMediumLink(request, mediumLinkId):
    logging.info('API is /admin/u/link/{id} ,delete medium_link begin :')
    code = 0
    if request.method == 'DELETE':
        try:
            logging.info('delete link start,id is %d', mediumLinkId)
            mediumLink = MediumLink.objects.filter(id=mediumLinkId)
            if not mediumLink.exists():
                code = -30
                return set_response(code, None, {})
            else:
                medium = Medium.objects.filter(id=mediumLink.first().mediumId).first()
                logging.info('medium link count :%d --> %d', medium.linkCount, medium.linkCount - 1)
                medium.linkCount = medium.linkCount - 1
                mediumLink.delete()
                # 更新媒介链接数量
                medium.save()
                logging.info('delete link end')
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, None, mediumLinkId)
    else:
        return
Ejemplo n.º 5
0
def insertMediumLink(request):
    logging.info('API is /admin/u/link ,insert medium_link begin :')
    code = 0
    linkId = 0
    if request.method == 'POST':
        try:
            req = request.POST
            mediumId = req.get('mediumId')
            logging.info("mediumId is %s", mediumId)
            # 皮肤
            template = req.get('template', '01')
            # 前端路由url
            login = ""
            if not template:
                template = '1'
                pass
            else:
                login = template
                pass
            # 取媒介
            medium = Medium.objects.filter(id=mediumId).first()
            if not medium:
                code = -30
                return set_response(code, None, {})
            else:
                pass
            url = HOME_HOST_ONLINE + login + PARAMS
            if TEST_MODEL:
                url = HOME_HOST + login + PARAMS
            newLink = MediumLink(createAt=getTimeStamp(),updateAt=getTimeStamp(),mediumId=mediumId,type=mediumId, link=url)
            newLink.save()
            linkId = newLink.id
            logging.info("create a new link ,medium id is %s , link id is  %s", mediumId, linkId)

            # 链接生成
            if TEST_MODEL:
                url = HOME_HOST + login + PARAMS.replace('{source}', mediumId).replace('{sub}', str(linkId)).replace(
                    '{template}', template)
            else:
                url = HOME_HOST_ONLINE + login + PARAMS.replace('{source}', mediumId).replace('{sub}', str(linkId)).replace(
                    '{template}', template)

            logging.info(url)
            MediumLink.objects.filter(id=linkId).update(link=url)
            if newLink:
                # 更新媒介数量
                logging.info('update medium link count: %d --> %d:', medium.linkCount, medium.linkCount + 1)
                medium.linkCount = medium.linkCount + 1
                medium.save()


        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
        finally:
            return set_response(code, None, linkId)
    else:
        return
Ejemplo n.º 6
0
def updateModule(request, moduleId):
    if request.method == 'PUT':
        req = request.PUT
        code = 0
        message = None
        try:
            # 验证数据有效性
            module = Module.objects.filter(id=moduleId).first()
            if not module:
                code = -30
                return set_response(code, message, {})
            else:
                pass

            moduleForm = ModuleForm(req)
            if moduleForm.is_valid():
                module = ModuleForm(req, instance=module)
                module.save()
                logging.info("add module success")
                pass
            else:
                code = -10
                message = moduleForm.errors
                pass
            pass
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, {})
    if request.method == 'DELETE':
        code = 0
        message = None
        try:
            # 验证数据有效性
            module = Module.objects.filter(id=moduleId).first()
            if not module:
                code = -30
                return set_response(code, message, {})
            else:
                module.delete()
                pass
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, {})

    else:
        return
Ejemplo n.º 7
0
def getUserInfo(request, uid):
    logging.info("edit user info start")
    logging.info("uid is " + uid.__str__())
    if uid.__str__() == getRequestUid(request):
        logging.info("get user detail start")
        code = 0
        user = User.objects.get(id=uid)
        logging.info("get user detail end")
    else:
        code = -10
        return set_response(code, None, {})
    return set_response(code, None, user.to_dire())
Ejemplo n.º 8
0
def getOrUpdateContent(request, contentId):
    code = 0
    message = None
    if request.method == "PUT":
        logging.info("update content start,contentId is %d", contentId)
        req = request.PUT
        try:
            # 数据有效性验证
            content = Contents.objects.filter(id=contentId).first()
            if not content:
                code = -30
                return set_response(code, message, {})
            else:
                pass
            # 表单验证
            contentForm = ContentsForm(req)
            if contentForm.is_valid():
                logging.info("add content start")
                content = ContentsForm(req, instance=content)
                result = content.save()
                logging.info("add content success ,id is %d", result.id)
                pass
            else:
                message = contentForm.errors
                code = -10
        except Exception as e:
            logging.error(e)
            code = -10000
            pass
        finally:
            return set_response(code, message, {})
        pass
    elif request.method == "GET":
        logging.info("update content start,contentId is %d", contentId)
        content = {}
        try:
            content = Contents.objects.filter(id=contentId).first()
            if content:
                content = content.to_dire()
        except Exception as e:
            logging.error(e)
            code = -10000
            pass
        finally:
            return set_response(code, message, content)
        pass
    else:
        return
Ejemplo n.º 9
0
def addModule(request):
    if request.method == 'POST':
        req = request.POST
        code = 0
        message = None
        try:
            moduleForm = ModuleForm(req)
            if moduleForm.is_valid():
                module = ModuleForm(req,
                                    instance=Module(createAt=getTimeStamp(),
                                                    updateAt=getTimeStamp()))
                module.save()
                logging.info("add module success")
                pass
            else:
                code = -10
                message = moduleForm.errors
                pass
            pass
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, {})

    else:
        return
Ejemplo n.º 10
0
def insertBanner(request):
    logging.info("create banner start")

    if request.method == 'POST':
        message = None
        code = 0
        bid = 0
        req = request.POST
        try:
            banner = Banner(createAt=getTimeStamp(), updateAt=getTimeStamp())
            bannerForm = BannerForm(req)
            if not bannerForm.is_valid():
                code = -10
                message = bannerForm.errors
            else:
                banner = BannerForm(req, instance=banner)
                result = banner.save()
                bid = result.id
                logging.info("banner create success ,id is %d", bid)
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, message, bid)
    else:
        return
Ejemplo n.º 11
0
def addRole(request):
    if request.method == 'POST':
        req = request.POST
        code = 0
        message = None
        try:
            currentManager = json.loads(request.__getattribute__('manager'))
            roleForm = RoleForm(req)
            if roleForm.is_valid():
                role = RoleForm(req,
                                instance=Role(
                                    createAt=getTimeStamp(),
                                    updateAt=getTimeStamp(),
                                    createBy=currentManager.get('name'),
                                    updateBy=currentManager.get('name')))
                role.save()
                logging.info("add role success")
                pass
            else:
                code = -10
                message = roleForm.errors
                pass
            pass
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, {})

    else:
        return
Ejemplo n.º 12
0
def addContent(request):
    if request.method == "POST":
        code = 0
        req = request.POST
        message = None
        try:
            contentForm = ContentsForm(req)
            if contentForm.is_valid():
                logging.info("add content start")
                content = ContentsForm(req,
                                       instance=Contents(
                                           createAt=getTimeStamp(),
                                           updateAt=getTimeStamp()))
                result = content.save()
                logging.info("add content success ,id is %d", result.id)
                pass
            else:
                message = contentForm.errors
                code = -10
        except Exception as e:
            logging.error(e)
            code = -10000
            pass
        finally:
            return set_response(code, message, {})
        pass
    else:
        return
Ejemplo n.º 13
0
def createManager(request):
    code = -1
    message = None
    if request.method == "POST":
        req = request.POST
        try:
            currentManager = json.loads(request.__getattribute__('manager'))
            manager = Manager(createAt=getTimeStamp(),
                              updateAt=getTimeStamp(),
                              createBy=currentManager.get('name'),
                              updateBy=currentManager.get('name'))
            obj = CreateForm(request.POST, instance=manager)
            if obj.is_valid():
                pwd = req.get('pwd', None)
                name = req.get('name')
                # 名字检查
                oManager = Manager.objects.filter(name=name).first()
                if oManager:
                    code = -40
                    return set_response(code, message, {})

                # 检查角色是否存在
                role = Role.objects.filter(id=req.get('role', 0)).first()
                if not role:
                    code = -30
                    return set_response(code, message, {})
                logging.info("pwd id %s", pwd)
                manager.pwd = make_password(pwd)

                manager.save()
                logging.info("create manager success ")
                code = 0
                pass
            else:
                message = obj.errors
            return set_response(code, message, {})
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            return set_response(code, None, {})
    else:
        return
Ejemplo n.º 14
0
def updateManagerPassword(request, managerId):
    message = None
    if request.method == "POST":
        req = request.POST
        logging.info("update manager password start")
        try:
            currentManager = json.loads(request.__getattribute__('manager'))
            if currentManager.get('id') == managerId or currentManager.get(
                    'role') == 1:
                pass
            else:
                code = -50
                return set_response(code, message, {})
            manager = Manager.objects.filter(id=managerId).first()
            if not manager:
                code = -30
                return set_response(code, message, {})
            else:
                pass
            password = req.get('pwd', None)
            newPassword = req.get('newPassword', None)
            if not password or not newPassword:
                logging.info("params error")
                code = -10
                return set_response(code, message, {})
            if check_password(password, manager.pwd):
                logging.info("new password is %s", password)
                manager.pwd = make_password(newPassword)
                manager.save()
                logging.info("update manager password success ")
                code = 0
                pass
            else:
                logging.info("paw error")
                code = -2
            return set_response(code, message, {})
        except Exception as e:
            logging.info(e)
            traceback.print_exc()
            code = -10000
            return set_response(code, None, {})
    else:
        return
Ejemplo n.º 15
0
def checkMediumName(request):
    logging.info('API is /admin/u/medium/name ,check medium name  begin :')
    if request.method == 'GET':
        code = 0
        try:
            # 检查是否有重名元素
            checkNameMedium = Medium.objects.filter(name=request.GET.get('name'))
            if checkNameMedium.exists():
                code = -1050
                return set_response(code, None, {})
            else:
                pass
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, None, {})
    else:
        return
Ejemplo n.º 16
0
def logout(request):
    logging.info("logout start")
    if request.method == "POST":
        code = 0
        response = HttpResponse(set_response(code, None, {}),
                                content_type='application/json')
        response.delete_cookie('manager')
        return response
    else:
        return
Ejemplo n.º 17
0
def insertMedium(request):
    if request.method == 'POST':
        logging.info('API is /admin/u/medium ,insert medium begin :')
        code = 0
        message = None
        req = request.POST
        mediumId = None
        try:
            obj = MediumForm(req)
            if not obj.is_valid():
                code = -10
                message = obj.errors
                return set_response(code, message, mediumId)
            else:
                pass

            # 检查是否有重名元素
            name = req.get('name')
            logging.info("name is %s", name)
            checkNameMedium = Medium.objects.filter(name=name)
            if checkNameMedium.exists():
                code = -1041
                return set_response(code, None, {})
            else:
                pass
            medium = Medium(name=name, createAt=getTimeStamp(), updateAt=getTimeStamp())
            medium.save()
            logging.info('create success')
            mediumId = medium.id
            medium.type = mediumId
            medium.save()
            logging.info('medium id is %s', mediumId)

        except Exception as e:
            code = -10000
            logging.error(e)
        finally:
            return set_response(code, message, mediumId)
    else:
        return
Ejemplo n.º 18
0
def login(request):
    if request.method == "POST":
        code = 0
        message = None
        try:

            obj = LoginForm(request.POST)
            if obj.is_valid():
                manager = Manager.objects.filter(
                    name=request.POST.get('name')).first()
                if manager:
                    if check_password(request.POST.get('pwd'), manager.pwd):
                        logging.info("login success")
                        manager.pwd = ''
                        response = HttpResponse(
                            set_response(code, None, manager.to_dire()),
                            content_type='application/json')
                        response.set_cookie('manager',
                                            manager.id.__str__() + "|" +
                                            make_password(manager.name),
                                            max_age=24 * 60 * 60)
                        return response
                    else:
                        code = -2
                else:

                    code = -2
            else:
                code = -1
                message = obj.errors
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000

    else:
        return
    return set_response(code, message, {})
Ejemplo n.º 19
0
def updateMedium(request, mediumId):
    logging.info('API is /admin/u/medium/{id} ,update medium begin :')
    code = 0
    message = None
    if request.method == 'POST':
        req = request.POST
        try:
            medium = Medium.objects.filter(id=mediumId)
            if not medium.exists():
                code = -30
                return set_response(code, None, {})
            else:
                medium = medium.first()
                medium.updateAt = getTimeStamp()
                pass
            obj = MediumForm(req)
            if not obj.is_valid():
                code = -10
                message = obj.errors
            else:
                name = req.get('name')
                # 检查是否有重名元素
                checkNameMedium = Medium.objects.filter(name=name)
                if checkNameMedium.exists() and checkNameMedium.first().id != mediumId:
                    code = -1041
                    return set_response(code, None, {})
                else:
                    medium = MediumForm(req, instance=medium)
                    medium.save()
                    logging.info('update medium success')
        except Exception as e:
            code = -10000
            logging.error(e)
        finally:
            return set_response(code, message, mediumId)
    else:
        return
Ejemplo n.º 20
0
def editBanner(request, bannerId):
    code = 0
    message = None
    try:
        # 数据有效性验证
        banner = Banner.objects.filter(id=bannerId)
        if not banner.exists():
            code = -30
            return set_response(code, None, {})
        else:
            banner = banner.first()
            pass
        # 修改
        if request.method == 'POST' or request.method == 'PUT':
            req = request.POST
            logging.info("update banner start, id is %d", bannerId)
            banner.updateAt = getTimeStamp()
            bannerForm = BannerForm(req, instance=banner)
            if not bannerForm.is_valid():
                code = -10
                message = bannerForm.errors
            else:
                bannerForm.save()
                logging.info('update banner end')
                banner.url = request.POST.get('url')
        # 删除
        elif request.method == 'DELETE':
            logging.info("delete banner start,id is %d", bannerId)
            banner.delete()
            logging.info("delete end")
        else:
            return
    except Exception as e:
        logging.error(e)
        code = -10000
    finally:
        return set_response(code, message, bannerId)
Ejemplo n.º 21
0
def getBannerDetail(request, bannerId):
    if request.method == 'GET':
        code = 0
        banner = {}
        try:
            logging.info("get banner detail start ,id is %d", bannerId)
            banner = Banner.objects.filter(id=bannerId).first()
            if banner:
                banner = banner.to_dire()
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, None, banner)
    else:
        return
Ejemplo n.º 22
0
def updateMediumStatus(request, mediumId, status):
    logging.info('API is /admin/u/medium/{mediumId}/{status} ,update medium status  begin :')
    code = 0
    message = None
    if request.method == 'POST':
        try:
            # result 返回的是受影响的记录条数
            result = Medium.objects.filter(id=mediumId).update(status=status,updateAt=getTimeStamp())
            logging.info('result is : ' + str(result))
            if result == 1:
                pass
            else:
                code = -1050
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, message, mediumId)
    else:
        return
Ejemplo n.º 23
0
def uploadFile(request):
    logging.info("get user list start")
    host = request.get_host()
    logging.info("server host is %s", request.get_host())

    img = ''
    if request.method == "POST":
        if 'image' in request.FILES:
            image = request.FILES['image']
            img = Img(image=image)
            type_list = ['.jpg', '.png', '.gif', '.webp', 'jpeg']
            if os.path.splitext(image.name)[1].lower() in type_list:
                logging.info("update start")
                img.save()
                logging.info("im " + img.image.__str__())
                logging.info("update end")
    else:
        return

    return set_response(0, None,
                        {'url': '//' + host + '/' + img.image.__str__()})
Ejemplo n.º 24
0
def getProductDetail(request, productId):
    logging.info("get product start")
    product = {}
    code = 0
    if request.method == 'GET':
        try:

            if not productId:
                code = -10
            else:
                querySet = Product.objects.filter(id=productId)
                if querySet.exists():
                    product = querySet.first().to_dire()
                    logging.info("product is %s", product)
                else:
                    code = -30
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, None, product)
    else:
        return
Ejemplo n.º 25
0
    def process_request(request: HttpRequest):
        logging.info("request url is " + request.__str__())

        try:
            if request.path.__contains__('admin'):
                # TODO后台拦截
                if not request.path.__contains__('/u/'):
                    pass
                else:
                    cookie = request.COOKIES.get('manager', None)
                    '''
                    这里获取COOKIE应该用COOKIES 而不是COOKIE
                    通过cookie里获取的信息进行校验,如果不通过则返回未登录
                    '''
                    if cookie:
                        uid = cookie.split("|")[0]
                        name = cookie.split("|")[1]
                        manager = Manager.objects.filter(id=uid).first()
                        if check_password(manager.name, name):
                            logging.info("Successful verification")
                            request.__setattr__('manager',
                                                json.dumps(manager.to_dire()))
                            # 根据角色信息控制读写权限
                            if request.method != 'GET' and not request.path.__contains__(
                                    '/u/logout'):
                                role = Role.objects.filter(
                                    id=manager.role).first()
                                if not role:
                                    code = -30
                                    return set_response(code, None, {})
                                else:
                                    permissions = role.permissions
                                    logging.info("this role name is %s",
                                                 role.name)
                                    logging.info("this role permissions is %s",
                                                 role.permissions)
                                    if permissions != 'rw':
                                        code = -50
                                        return set_response(code, None, {})

                            pass
                        else:
                            return set_response(-20, None, {})
                    else:
                        return set_response(-20, None, {})
                    pass
            else:
                # 前台拦截带u接口
                if not request.path.__contains__('/u/'):
                    pass
                else:
                    cookie = request.COOKIES.get('user', None)
                    '''
                    这里获取COOKIE应该用COOKIES 而不是COOKIE
                    通过cookie里获取的信息进行校验,如果不通过则返回未登录
                    '''

                    if cookie:
                        logging.info("cookie is %s", cookie)
                        uid = cookie.split("|")[0]
                        user = User.objects.filter(id=uid).first()
                        logging.info("uid is " + uid + " ,mobile is " +
                                     user.mobile.__str__() + " ,cookie is " +
                                     cookie)
                        if checkToken(uid, user.mobile, cookie):
                            logging.info("Successful verification")
                            request.__setattr__('user',
                                                json.dumps(user.to_dire()))
                            pass
                        else:
                            return set_response(-20, None, {})
                    else:
                        return set_response(-20, None, {})
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
        finally:
            # 处理其他请求
            http_method = request.META['REQUEST_METHOD']
            logging.info("method is %s", http_method.upper())
            if http_method.upper() not in ('GET', 'POST'):
                setattr(request, http_method.upper(), QueryDict(request.body))
            pass
Ejemplo n.º 26
0
def createProduct(request):
    message = None
    code = 0
    pid = 0
    logging.info("create product start")
    if request.method == 'POST':
        try:

            req = request.POST
            obj = ProductForm(req)
            if obj.is_valid():
                pType = req.get('type', None)

                # 检查是否有重名元素
                product = Product.objects.filter(
                    name=obj.cleaned_data.get('name'),
                    type=obj.cleaned_data.get('type'))
                if product.exists():
                    code = -1041
                    return set_response(code, message, {})
                else:
                    product = Product(updateAt=getTimeStamp(),
                                      createAt=getTimeStamp())
                    pass

                # 表单元素转model
                # product = formToModel(Product(updateAt=getTimeStamp(), createAt=getTimeStamp()), obj)
                logging.info("type is " + pType)
                if pType == '1':
                    # 简介必填
                    introduce = req.get('introduce', None)
                    if introduce:
                        logging.info("introduce is %s", introduce)
                        product.introduce = introduce
                    else:
                        code = -1040
                        return set_response(code, message, {})
                elif pType == '2':
                    # url、利率必填
                    url = req.get('url', None)
                    rateStart = req.get('rateStart', None)
                    rateEnd = req.get('rateEnd', None)
                    if url and rateStart and rateEnd:
                        logging.info(
                            "url is %s ,rateStart is %s ,ratEnd is %s", url,
                            rateStart, rateEnd)
                        product.url = url
                        product.rateStart = rateStart
                        product.rateEnd = rateEnd
                    else:
                        code = -1042
                        return set_response(code, message, {})
                else:
                    code = -10
                    return set_response(code, message, {})

                productObj = ProductForm(req, instance=product)
                result = productObj.save()
                logging.info('create product success')
                pid = result.id
            else:
                code = -10
                message = obj.errors
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, message, pid)
    else:
        return
Ejemplo n.º 27
0
def updateRole(request, roleId):
    if request.method == 'PUT':
        req = request.PUT
        code = 0
        message = None
        try:
            currentManager = json.loads(request.__getattribute__('manager'))

            # 验证数据有效性
            role = Role.objects.filter(id=roleId).first()
            if not role:
                code = -30
                return set_response(code, message, {})
            else:
                pass

            roleForm = RoleForm(req)
            if roleForm.is_valid():
                role = RoleForm(req, instance=role)
                role.updateBy = currentManager.get('name')
                role.save()
                logging.info("add module success")
                pass
            else:
                code = -10
                message = roleForm.errors
                pass
            pass
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, {})

    elif request.method == 'GET':
        req = request.GET
        role = {}
        code = 0
        message = None
        try:
            # 验证数据有效性
            role = Role.objects.filter(id=roleId).first()
            if not role:
                code = -30
                return set_response(code, message, {})
            else:
                role = role.to_dire()
                pass
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, role)
    elif request.method == 'DELETE':
        role = {}
        code = 0
        message = None
        try:
            # 验证数据有效性
            role = Role.objects.filter(id=roleId).first()
            if not role:
                code = -30
                return set_response(code, message, {})
            else:
                managers = Manager.objects.filter(role=roleId)
                if managers.exists():
                    code = -60
                    return set_response(code, message, {})
                else:
                    role.delete()
                pass
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, role)

    else:
        return
Ejemplo n.º 28
0
def updateProduct(request, productId):
    message = None
    code = 0
    logging.info("update product start")

    if request.method == 'POST':
        try:
            # 校验数据是否存在
            product = Product.objects.get(id=productId)
            if not product:
                code = -30
                return set_response(code, message, {})
            else:
                pass

            req = request.POST
            product.updateAt = getTimeStamp()
            obj = ProductForm(req, instance=product)
            if obj.is_valid():
                pType = req.get('type', None)
                logging.info("type is %s", pType)

                # 检查是否有重名元素
                checkNameProduct = Product.objects.filter(name=req.get('name'),
                                                          type=pType)
                if checkNameProduct.exists():
                    if checkNameProduct.first().id != productId:
                        code = -1041
                        return set_response(code, message, {})
                    else:
                        pass
                else:
                    pass

                if pType == '1':
                    # 简介必填
                    introduce = obj.cleaned_data.get('introduce')
                    if introduce:
                        logging.info("introduce is %s", introduce)
                    else:
                        code = -1040
                        return set_response(code, message, {})
                elif pType == '2':
                    # url、利率必填
                    url = obj.cleaned_data.get('url')
                    rateStart = req.get('rateStart', None)
                    rateEnd = req.get('rateEnd', None)
                    if url and rateStart and rateEnd:
                        logging.info(
                            "url is %s ,rateStart is %s ,ratEnd is %s", url,
                            rateStart, rateEnd)
                        product.url = url
                        product.rateStart = rateStart
                        product.rateEnd = rateEnd
                    else:
                        code = -1042
                        return set_response(code, message, {})
                else:
                    code = -10
                    return set_response(code, message, {})

                obj.save()
                logging.info('create product success')

            else:
                code = -10
                message = obj.errors
        except Exception as e:
            logging.error(e)
            code = -10000
        finally:
            return set_response(code, message, productId)
    else:
        return
Ejemplo n.º 29
0
def updateProductSort(request):
    message = None
    code = 0
    logging.info("update product start")
    if request.method == 'POST':
        try:
            #
            req = request.body
            jsonObj = json.loads(req)
            logging.info("json is %s", jsonObj)
            # 取排序id
            ids = jsonObj.get('ids', [])
            logging.info("ids size is %d", len(ids))
            # 取数据
            productList = Product.objects.filter(id__in=ids)
            logging.info("productList size is %s", productList.count())
            # 取排序类型
            sortType = jsonObj.get('type', 1)
            # 取客户类型
            productType = jsonObj.get('productType', None)
            if sortType != 1 and not productType:
                code = -1043
                return set_response(code, None, {})
            medium = None
            if sortType == 1:
                logging.info("sort type is product")
                # 按 id 入参顺序进行排序
                productList = dict([(product.id, product)
                                    for product in productList])
                productList = [productList[productId] for productId in ids]

                i = 1
                for product in productList:
                    product.sort = i
                    product.save()
                    i += 1
            # 媒介下排序

            elif sortType == 2:
                logging.info("sort type is medium")
                mediumId = jsonObj.get('mediumId')
                if not mediumId:
                    code = -10
                    return set_response(code, None, {})
                else:
                    medium = Medium.objects.filter(id=mediumId).first()
                    pass
                # 获取媒介下链接未排序列表
                if productType == 1:
                    # 结果保存在媒介上
                    logging.info("update medium product sort,type is 1")
                    medium.productSort1 = json.dumps(ids)
                    medium.save()
                    linkList = MediumLink.objects.filter(
                        productSort1__isnull=True, mediumId=mediumId)

                elif productType == 2:
                    logging.info("update medium product sort,type is 2")
                    medium.productSort2 = json.dumps(ids)
                    medium.save()
                    linkList = MediumLink.objects.filter(
                        productSort2__isnull=True, mediumId=mediumId)
                else:
                    code = -30
                    message = 'productType is request'
                    return set_response(code, message, {})
                logging.info("sort link size is %s", linkList.count())
                if productType == 1:
                    linkList.update(productSort1=json.dumps(ids),
                                    updateAt=getTimeStamp())
                else:
                    linkList.update(productSort2=json.dumps(ids),
                                    updateAt=getTimeStamp())

            # 链接下排序
            elif sortType == 3:
                logging.info("sort type is link")
                linkId = jsonObj.get('linkId')
                if not linkId:
                    code = -10
                    return set_response(code, None, {})
                else:
                    pass
                # 获取链接
                link = MediumLink.objects.filter(id=linkId).first()
                if link:
                    link.productSort = json.dumps(ids)
                    link.updateAt = getTimeStamp()
                    if productType == 1:
                        link.productSort1 = json.dumps(ids)
                    else:
                        link.productSort2 = json.dumps(ids)

                    link.save()
                else:
                    code = -30
                    return set_response(code, None, {})
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
        finally:
            return set_response(code, message, {})
    else:
        return
Ejemplo n.º 30
0
def getOrUpdateManager(request, managerId):
    message = None
    if request.method == "PUT":
        req = request.PUT
        logging.info("update manager start")
        try:
            currentManager = json.loads(request.__getattribute__('manager'))
            if currentManager.get('id') == managerId or currentManager.get(
                    'role') == 1:
                pass
            else:
                code = -50
                return set_response(code, message, {})
            manager = Manager.objects.filter(id=managerId).first()
            if not manager:
                code = -30
                return set_response(code, message, {})
            else:
                pass
            password = req.get('pwd', None)
            if password:
                logging.info("change pwd")
                manager.pwd = make_password(password)
                pass
            else:
                pass

            # 检查角色是否存在
            role = Role.objects.filter(id=req.get('role', 0)).first()
            logging.info("role id is %s", req.get('role', 0))
            if not role:
                code = -30
                return set_response(code, message, {})
            else:
                manager.role = role.id

            manager.updateAt = getTimeStamp()
            manager.updateBy = currentManager.get('name')
            manager.save()
            logging.info("update manager password success ")
            code = 0
            pass

            return set_response(code, message, {})
        except Exception as e:
            logging.info(e)
            traceback.print_exc()
            code = -10000
            return set_response(code, None, {})
    elif request.method == 'GET':
        req = request.GET
        code = 0
        message = None
        manager = {}
        logging.info("manager id is %d", managerId)
        try:
            manager = Manager.objects.filter(id=managerId).first()
            if manager:
                manager.pwd = ''
                manager = manager.to_dire()
                pass
            else:
                logging.info("manager is not found")
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, manager)
    elif request.method == 'DELETE':
        code = 0
        message = None
        manager = {}
        logging.info("delete manager id is %d", managerId)
        try:
            manager = Manager.objects.filter(id=managerId).first()
            if manager:
                manager.delete()
                pass
            else:
                logging.info("manager is not found")
        except Exception as e:
            logging.error(e)
            traceback.print_exc()
            code = -10000
            pass
        finally:
            return set_response(code, message, manager)
    else:
        return