Exemplo n.º 1
0
def switch_permission_lock(request, model_class, action):
    """权限管理 权限状态切换"""

    try:
        if request.method == 'POST' and request.is_ajax():

            if action == 'lock':
                action = 0
            elif action == 'un_lock':
                action = 1
            print action
            print bool(action)
            pk = int(request.POST['id'])

            MODEL_DICT[model_class].objects.filter(pk=pk).update(is_active=bool(action))
            result = {
                'status': 1,
                'msg': '%s操作成功' % ('启用' if bool(action) else '禁用'),
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 2
0
def add_user(request):
    try:
        if request.method == 'POST' and request.is_ajax():
            print request.POST['username']
            print request.POST['password']
            User.objects.create_user(
                username=request.POST['username'],
                password=request.POST['password'],
                usertype=request.POST['usertype'],
            )

            result = {
                'status': 1,
                'msg': '添加成功',
            }

        else:
            result = {
                'status': 0,
                'msg': '账户添加错误',

            }
    except Enterprise, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 3
0
def switch_lock(request, model_class, action):
    """公用 锁定 解锁"""

    try:
        if request.method == 'POST' and request.is_ajax():

            id_list = request.POST['id_list']
            is_lock = int(request.POST['is_lock'])
            if id_list:
                id_list = json.loads(id_list)
                kwargs = {}
                kwargs[action] = bool(is_lock)
                MODEL_DICT[model_class].objects.filter(pk__in=id_list).update(**kwargs)
            result = {
                'status': 1,
                # 'msg': '%s操作成功' % ('锁定' if is_lock else '解锁'),
                'msg': '操作成功',
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 4
0
def create_lack_register(request):
    """添加缺货登记"""
    try:
        if request.method == 'POST' and request.is_ajax():
            kwargs = {}
            kwargs['people'] = request.user
            good_id = int(request.POST['good_id'])
            flag = LackRegister.objects.filter(good__id=good_id)
            if flag:
                result = {
                    'status': 0,
                    'msg': '您已登记该物品,无法重复登记!'
                }
            else:
                kwargs['good_id'] = good_id
                kwargs['note'] = request.POST.get('note', '')
                LackRegister.objects.create(**kwargs)
                result = {
                    'status': 1,
                    'msg': '缺货登记成功'
                }
    except Exception, e:
        log.error("lack_register,error:%s" % e)
        result = {
            'status': 0,
            'msg': str(e)
        }
Exemplo n.º 5
0
def delete_good_category_byid(request, obj_id):
    """根据id删除商品分类"""
    try:
        obj_id = int(obj_id)
        if request.method == 'POST' and request.is_ajax():
            obj = GoodCategory.objects.filter(id=obj_id).first()
            if obj:
                children = GoodCategory.objects.filter(path__contains=obj.full_path)
                if children:
                    result = {
                        'status': 0,
                        'msg': '先删除子项',
                    }
                else:
                    obj.delete()
                    result = {
                        'status': 1,
                        'msg': '删除成功',
                    }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 6
0
def get_modal_byid(request, modal_name, obj_id):
    """根据id渲染模态对话框"""
    try:
        obj_id = int(obj_id)
        if request.method == 'POST' and request.is_ajax():
            model_class, modal_templ = MODAL_DICT[modal_name]
            obj = model_class.objects.get(pk=obj_id)
            obj.csrfmiddlewaretoken = request.POST['csrfmiddlewaretoken']

            if model_class == User:
                obj.usertype_choices = USERTYPE_CHOICES  # TODO 需要转换为实例方法 by zhongchao 2017/3/20

            if model_class == Role:
                obj.usertype_choices = SettingsType.get_item_list('USERTYPE')

            if model_class == PaymentMethod:
                obj.pay_type_choices = PAY_TYPE_CHOICES
                obj.api_args = json.loads(obj.api_args)

            if model_class == ShippingMethod:
                obj.shipping_type_choices = SHIPPING_TYPE_CHOICES

            return render(request, modal_templ, {'obj': obj})
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 7
0
 def migrate_EGBALANCE(self):
     from good.models import Good
     select_sql = '''
     select TOP %s GOODSID, STORNUM from dts.dbo.EGBALANCE;
     ''' % self.ROWS_TOP
     delete_sql = 'delete top (%s) from dts.dbo.EGBALANCE;' % self.ROWS_TOP
     mssql_field_map = {
         'external_id': 'GOODSID',
         'stock_amount': 'STORNUM',
     }
     while True:
         self.mssql_cursor.execute(select_sql)
         rows = self.mssql_cursor.fetchall()
         if not rows:
             break
         for row in rows:
             temp_data = {
                 k: row.get(v) or ''
                 for k, v in mssql_field_map.items()
             }
             if temp_data.get('stock_amount'):
                 try:
                     temp_data['stock_amount'] = int(
                         temp_data['stock_amount'])
                 except Exception, e:
                     log.error(
                         'python manage.py init_ksoa_data migrate_EGBALANCE stock_amount error: %s, stock_amount=%s'
                         % (e, temp_data['stock_amount']))
                     temp_data['stock_amount'] = None
             else:
                 temp_data['stock_amount'] = None
             Good.objects.filter(
                 external_id=temp_data['external_id']).update(**temp_data)
         self.mssql_cursor.execute(delete_sql)
         self.mssql_conn.commit()
Exemplo n.º 8
0
def upload_file(up_file, file_path):
    """
        @description 上传文件
        @param up_file: 待上传文件
        @param file_path: 文件存储路径
    """
    try:
        # 拼接文件存放路径
        roll_file_path = os.path.join(settings.MEDIA_ROOT, file_path)
        # 获取文件名后缀
        file_type = up_file.name.split(".")[-1]
        # 生成随机字符串加后缀的文件名【新的文件名】
        filename = str(uuid.uuid1()) + '.' + file_type
        # 文件最终存放路径
        file_path = roll_file_path + filename
        # 打开文件流
        of = open(file_path, 'wb+')
        # 向指定路径写入文件
        for chunk in up_file.chunks():
            of.write(chunk)  # 写入内容
        of.close()  # 关闭连接
        # 返回文件上传后存放的路径
        return file_path
    except Exception, e:
        log.error(">>>>>>>>>>>>>>> 文件上传失败,原因:%s >>>>>>>>>>>>>>>>>>" % e)
Exemplo n.º 9
0
def add_shopping_cart(request):
    try:
        list_pk = json.loads(request.POST.get('pk', '[]'))
        if request.method == 'POST' and request.is_ajax():
            kwargs = {}
            kwargs['buyer'] = request.user
            for good in list_pk:
                obj = ShoppingCartItem.objects.filter(
                    buyer=request.user).filter(good_id=good["pk"]).first()
                if obj:
                    obj.quantity = obj.quantity + int(good["num"])
                    obj.save()
                else:
                    kwargs['good_id'] = good["pk"]
                    kwargs['quantity'] = good["num"]
                    ShoppingCartItem.objects.update_or_create(**kwargs)
                result = {
                    'status': 1,
                    'msg': '添加成功',
                }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 10
0
def update_object_byform(request, form_class):
    """利用form修改数据对象"""
    try:
        if request.method == 'POST' and request.is_ajax():
            form_class = FORM_DICT[form_class]
            model_class = form_class.Meta.model
            obj = model_class.objects.get(pk=int(request.POST['id']))
            form = form_class(request.POST, instance=obj)
            if form.is_valid():
                form.save()
                result = {
                    'status': 1,
                    'msg': '修改成功',
                }
            else:
                result = {
                    'status': 0,
                    'msg': '输入参数异常',
                }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 11
0
 def migrate_ENTDOC(self):
     from dtsauth.models import Enterprise
     select_sql = '''
     select TOP %s ENTID, ENTNAME, TELEPHONE, [ADDRESS], INDUSTRYTYPE, ENTTYPE, BEACTIVE, SYSMASTER, ISFREEZE, ISLEGAL
     from dts.dbo.ENTDOC;
     ''' % self.ROWS_TOP
     delete_sql = 'delete top (%s) from dts.dbo.ENTDOC;' % self.ROWS_TOP
     mssql_field_map = {
         'external_id': 'ENTID',
         'name': 'ENTNAME',
         'short_name': 'ENTNAME',
         'pinyin': 'ENTNAME',
         'address': 'ADDRESS',
         'operate_mode': 'INDUSTRYTYPE',
         'phone': 'TELEPHONE',
         'economic_type': 'ENTTYPE',
         'is_master': 'SYSMASTER',
     }
     while True:
         self.mssql_cursor.execute(select_sql)
         rows = self.mssql_cursor.fetchall()
         if not rows:
             break
         data_list = []
         for row in rows:
             temp_data = {
                 k: row.get(v) or ''
                 for k, v in mssql_field_map.items()
             }
             if temp_data.get('pinyin'):
                 temp_data['pinyin'] = utils_string.get_pinyin_code(
                     temp_data['pinyin'])
             if temp_data.get('is_master') == 'Y':
                 temp_data['is_master'] = True
             else:
                 temp_data['is_master'] = False
             data_list.append(temp_data)
         try:
             with transaction.atomic():
                 Enterprise.objects.bulk_create(
                     [Enterprise(**data) for data in data_list])
                 self.mssql_cursor.execute(delete_sql)
                 self.mssql_conn.commit()
         except Exception, e:
             log.error(
                 'python manage.py init_ksoa_data migrate_ENTDOC bulk_create error: %s'
                 % e)
             for data in data_list:
                 try:
                     Enterprise.objects.update_or_create(
                         external_id=data['external_id'], defaults=data)
                     self.mssql_cursor.execute(
                         "delete from dts.dbo.ENTDOC where ENTID='%s';" %
                         data['external_id'])
                 except Exception, e:
                     log.error(
                         'python manage.py init_ksoa_data migrate_ENTDOC update_or_create error: %s, external_id=%s'
                         % (e, data['external_id']))
Exemplo n.º 12
0
def execute_query_sql_return_tuple(sql):
    '''执行查询sql,直接返回tuple;限制:1、限于执行查询语句;2、直接返回tuple结果'''
    try:
        cursor = connection.cursor()
        cursor.execute(sql)
        return cursor.fetchall()
    except Exception, e:
        log.error('query tuple error, sql=%s, e=%s' % (sql, e))
        return ()
Exemplo n.º 13
0
    def transit(self):
        """任务迁移"""
        if self.process.ended:
            return False, '该工作流程已经结束'
        process_state_dict = self.process.get_process_state()
        task_state = process_state_dict.get(self.name, {}).get("state", None)
        if task_state is None:
            log.info('The task is not in order in process<%s>: %s' %
                     (self.process.id, self.name))
            return False, '该操作当前不可执行'
        elif task_state == self.TASK_RUNNIG:
            log.info('The task has been running in process<%s>: %s' %
                     (self.process.id, self.name))
            return False, '该操作已在处理中'
        elif task_state == self.TASK_SUCCEED:
            self.turn_in_target_list()
            return True, '操作已完成'
        elif task_state == self.TASK_TRANSITED:
            log.info('The task was transited in process<%s>: %s' %
                     (self.process.id, self.name))
            return False, '不能重复执行此操作'
        elif not self.is_ready():
            log.info('The task is not ready in process<%s>: %s' %
                     (self.process.id, self.name))
            return False, '该操作尚未准备就绪'
        else:
            now_ = datetime.datetime.now()
            try:
                if callable(self.run):
                    task_state, msg, org_kwargs = self.run(self)
                else:
                    task_state, msg, org_kwargs = self.TASK_SUCCEED, '', {}

                if task_state == self.TASK_SUCCEED:
                    self.turn_in_target_list(org_kwargs)
                else:
                    self.process.update_process_state(self.name, {
                        "state": task_state,
                        "updated": now_,
                    })

                if self.mutex and task_state in [
                        self.TASK_SUCCEED, self.TASK_RUNNIG
                ]:
                    self.handle_mutex()

                return True, msg
            except Exception, e:
                self.process.update_process_state(self.name, {
                    "state": self.TASK_FAIL,
                    "updated": now_,
                })
                log.error('This task failed in process<%s>: %s, error: %s' %
                          (self.process.id, self.name, e))
                return False, '发生系统错误'
Exemplo n.º 14
0
 def migrate_GOODSDOC(self):
     from good.models import Good
     select_sql = '''
     select TOP %s GOODSID, BARCODE, GOODSNAME, GOODSSPEC, MANUFACTURER
     from dts.dbo.GOODSDOC;
     ''' % self.ROWS_TOP
     delete_sql = 'delete top (%s) from dts.dbo.GOODSDOC;' % self.ROWS_TOP
     mssql_field_map = {
         'external_id': 'GOODSID',
         'name': 'GOODSNAME',
         'trade_name': 'GOODSNAME',
         'pinyin': 'GOODSNAME',
         'external_spec': 'GOODSSPEC',
         'manufacturer': 'MANUFACTURER',
         'barcode': 'BARCODE',
     }
     while True:
         self.mssql_cursor.execute(select_sql)
         rows = self.mssql_cursor.fetchall()
         if not rows:
             break
         data_list = []
         for row in rows:
             temp_data = {
                 k: row.get(v) or ''
                 for k, v in mssql_field_map.items()
             }
             temp_data['is_online'] = ONLINE_YES
             temp_data['online_time'] = datetime.datetime.now()
             if temp_data.get('pinyin'):
                 temp_data['pinyin'] = utils_string.get_pinyin_code(
                     temp_data['pinyin'])
                 temp_data['pinyin_tn'] = temp_data['pinyin']
             data_list.append(temp_data)
         try:
             with transaction.atomic():
                 Good.objects.bulk_create(
                     [Good(**data) for data in data_list])
                 self.mssql_cursor.execute(delete_sql)
                 self.mssql_conn.commit()
         except Exception, e:
             log.error(
                 'python manage.py init_ksoa_data migrate_GOODSDOC bulk_create error: %s'
                 % e)
             for data in data_list:
                 try:
                     Good.objects.update_or_create(
                         external_id=data['external_id'], defaults=data)
                     self.mssql_cursor.execute(
                         "delete from dts.dbo.GOODSDOC where GOODSID='%s';"
                         % data['external_id'])
                 except Exception, e:
                     log.error(
                         'python manage.py init_ksoa_data migrate_GOODSDOC update_or_create error: %s, external_id=%s'
                         % (e, data['external_id']))
Exemplo n.º 15
0
def install_custom_model_to_db(custom_model):
    '''创建动态模型'''
    try:
        # 检查表是否已存在
        table_name = custom_model._meta.db_table
        if table_name and is_table_exist(table_name):
            return True
    except Exception, e:
        log.error('check table exist error, table_name=%s, e=%s' %
                  (table_name, e))
        return False
Exemplo n.º 16
0
def read_txt_file(file_path):
    '''逐行读取本地txt文本文件'''
    if not file_path or not os.path.exists(file_path):
        log.error("file not exist, file_path=%s" % (file_path))
        return False

    try:
        file_r = open(file_path, 'r')
        data = file_r.readlines()
    except Exception, e:
        log.error("read file error, file_path=%s, e=%s" % (file_path, e))
        return False
Exemplo n.º 17
0
def perm_check(request, codename):
    """验证权限"""
    try:
        if codename is not None:
            if request.user.has_perm(codename):
                log.info('perm_check info: ====》权限已匹配')
                return True
            else:
                log.info('perm_check info: ====》权限没有匹配')
                return False
        else:
            return False
    except Exception, e:
        log.error("perm_check raise exception,error:%s" % e)
        return False
Exemplo n.º 18
0
 def is_ready(self):
     """判断任务的前置条件是否都已满足"""
     try:
         if self.condition_list:
             for condition in self.condition_list:
                 if callable(condition):
                     if not condition(self):
                         return False
                 elif not condition:
                     return False
         return True
     except Exception, e:
         log.error(
             'Task condition_list error in process<%s>: %s, error: %s' %
             (self.process.id, self.name, e))
         return False
Exemplo n.º 19
0
def create_table_by_model(table_suffix,
                          model_class,
                          ref_model_list,
                          engine_type=''):
    '''根据静态Model、表名后缀、静态Model的关联其它Model创建一个表'''
    try:
        # 检查表是否已存在
        org_db_table = model_class._meta.db_table
        table_name = org_db_table + "_" + str(table_suffix)
        if table_name and is_table_exist(table_name):
            log.info("table %s already exist" % (table_name))
            return True
    except Exception, e:
        log.error('check table exist error, table_name=%s, e=%s' %
                  (table_name, e))
        return False
Exemplo n.º 20
0
def bluk_delete_byids(request, model_class):
    """根据id删除某个对象"""
    try:
        obj_id_list = json.loads(request.POST.get('id_list'), '[]')
        if obj_id_list and request.method == 'POST' and request.is_ajax():
            MODEL_DICT[model_class].objects.filter(id__in=obj_id_list).delete()
            result = {
                'status': 1,
                'msg': '删除成功',
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 21
0
def delete_object_byid(request, model_class, obj_id):
    """根据id删除某个对象"""
    try:
        obj_id = int(obj_id)
        if request.method == 'POST' and request.is_ajax():
            MODEL_DICT[model_class].objects.filter(id=obj_id).delete()
            result = {
                'status': 1,
                'msg': '删除成功',
            }
        else:
            raise Exception('异常请求')
    except ProtectedError, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': '请先删掉关联字段',
        }
Exemplo n.º 22
0
def test_upload_file(request):
    """测试上传图片"""
    from .forms import TestUploadFileForm
    try:
        if request.method == 'POST' and request.is_ajax():
            for photo in request.FILES.getlist('photo'):
                form = TestUploadFileForm(request.POST, {'photo': photo})
                if form.is_valid():
                    form.save()
            result = {
                'status': 1,
                'msg': '上传成功',
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {'status': 0, 'msg': str(e)}
Exemplo n.º 23
0
def delete_info_publish(request, modal_name, obj_id):
    """根据id删除某个对象"""
    try:
        obj_id = int(obj_id)
        if request.method == 'POST' and request.is_ajax():
            with transaction.atomic():
                Informations.objects.filter(id=obj_id).delete()
                result = {
                    'status': 1,
                    'msg': '删除成功',
                }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 24
0
def delete_consult_feedback(request, obj_id):
    """根据id删除某个对象"""
    try:
        obj_id = int(obj_id)
        if request.method == 'POST' and request.is_ajax():
            with transaction.atomic():
                ConsultFeedback.objects.filter(id=obj_id).delete()
                result = {
                    'status': 1,
                    'msg': '删除成功',
                }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 25
0
def update_object_bypk(request, model_name, obj_pk):
    """修改数据对象"""
    try:
        if request.method == 'POST' and request.is_ajax():
            update_dict = request.POST.dict()
            update_dict.pop('csrfmiddlewaretoken')
            MODEL_DICT[model_name].objects.filter(pk=obj_pk).update(**update_dict)
            result = {
                'status': 1,
                'msg': '修改成功',
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 26
0
def verify_enterprise(request, model_class, obj_id):
    """审核企业"""
    from django.db.models import F
    try:
        obj_id = int(obj_id)
        if request.method == 'POST' and request.is_ajax():
            MODEL_DICT[model_class].objects.filter(id=obj_id).update(is_active=False if F('is_active') else True)
            result = {
                'status': 1,
                'msg': '修改成功',
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 27
0
def switch_bool(request, model_class, obj_id, field):
    """公用 bool 启用 禁用"""

    try:
        if request.method == 'POST' and request.is_ajax():
            kwargs = {field: bool(int(request.POST['is_lock']))}
            p = MODEL_DICT[model_class].objects.filter(pk=obj_id).update(**kwargs)
            result = {
                'status': 1,
                'msg': '操作成功',
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 28
0
def get_info_publish(request, modal_name, obj_id):
    """根据id渲染info_publish模态对话框"""
    try:
        obj_id = int(obj_id)
        if request.method == 'POST' and request.is_ajax():
            obj = Informations.objects.get(pk=obj_id)
            obj.csrfmiddlewaretoken = request.POST['csrfmiddlewaretoken']
            _, modal_templ = MODAL_DICT[modal_name]
            return render(request, modal_templ, {
                'obj': obj
            })
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 29
0
def get_consult_feedback(request, modal_name, obj_id):
    """根据id渲染consult_feedback模态对话框"""
    try:
        obj_id = int(obj_id)
        replied = None
        if request.method == 'POST' and request.is_ajax():
            obj =ConsultFeedback.objects.filter(pk=obj_id).first()
            obj.csrfmiddlewaretoken = request.POST['csrfmiddlewaretoken']
            _, modal_templ = MODAL_DICT[modal_name]
            return render(request, modal_templ, {
                'obj': obj
            })
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }
Exemplo n.º 30
0
def delete_favorites(request):
    #####################################删除收藏############################################################
    try:
        user_pk = request.user.id
        list_pk = json.loads(request.POST.get('pk', '[]'))
        if request.method == 'POST' and request.is_ajax():
            MyFavorites.objects.filter(pk__in=list_pk,
                                       coll_user__pk=user_pk).delete()
            result = {
                'status': 1,
                'msg': '删除成功',
            }
        else:
            raise Exception('异常请求')
    except Exception, e:
        log.error(e)
        result = {
            'status': 0,
            'msg': str(e),
        }