yzk_wechat_event/apps/jqr/models.py

389 lines
20 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from .choices import *
class JqrWechatbizuserinfo(models.Model):
id = models.BigAutoField(primary_key=True)
userid = models.CharField(max_length=50, verbose_name='UserId')
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
username = models.CharField(
max_length=50, verbose_name='用户名', null=True, blank=True)
alias = models.CharField(
max_length=64, verbose_name='别名', null=True, blank=True)
department = models.JSONField(verbose_name='部门ID集合')
maindepartment = models.IntegerField(verbose_name='主部门ID')
telephone = models.CharField(
max_length=20, verbose_name='座机', null=True, blank=True)
position = models.CharField(
max_length=64, verbose_name='职位', null=True, blank=True)
external_position = models.CharField(
max_length=64, verbose_name='对外职务', null=True, blank=True)
direct_leader = models.JSONField(
verbose_name='直属上级userid', null=True, blank=True)
is_leader_in_dept = models.JSONField(
verbose_name='表示在所在的部门内是否为部门负责人,数量与department一致', null=True, blank=True)
status = models.IntegerField(
verbose_name='激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业',
choices=JqrHookUserStatusChoices.choices)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
dtime = models.DateTimeField(verbose_name='删除时间', null=True, blank=True)
deletetype = models.IntegerField(
verbose_name='删除方式', choices=JqrWechatbizuserinfoDeleteTypeChoices.choices, null=True, blank=True)
addtype = models.IntegerField(
verbose_name='添加方式', choices=JqrUserAddTypeChoices.choices, default=JqrAddTypeChoices.API)
class Meta:
db_table = 'jqr_wechatbizuserinfo'
ordering = ['-ctime']
verbose_name = '机器人用户表'
class JqrHookUser(models.Model):
id = models.BigAutoField(primary_key=True)
uid = models.IntegerField(verbose_name='用户Id')
corpid = models.CharField(max_length=255, verbose_name='企业唯一标识')
userid = models.CharField(max_length=50, verbose_name='接粉号userid')
vid = models.CharField(max_length=255, verbose_name='hook vid')
new_user = models.BooleanField(default=True, verbose_name='新科欢迎开关')
new_user_order = models.BooleanField(
default=False, verbose_name='新科欢迎催单开关')
time_qun = models.BooleanField(default=True, verbose_name='定时群聊开关')
time_private = models.BooleanField(default=True, verbose_name='定时私聊开关')
time_quan = models.BooleanField(default=True, verbose_name='定时朋友圈开关')
hook_time = models.DateTimeField(
null=True, blank=True, verbose_name='hook时间')
utime = models.DateTimeField(verbose_name='更新时间', null=True, blank=True)
name = models.CharField(
max_length=255, verbose_name='用户名', null=True, blank=True)
mobile = models.CharField(
max_length=30, verbose_name='手机号', null=True, blank=True)
phone = models.CharField(
max_length=30, verbose_name='手机号', null=True, blank=True)
gender = models.IntegerField(
verbose_name='性别,0表示未定义,1表示男性,2表示女性', choices=JqrHookUserGenderChoices.choices)
english_name = models.CharField(
max_length=255, verbose_name='别名', null=True, blank=True)
bind_email = models.CharField(
max_length=255, verbose_name='绑定邮箱', null=True, blank=True)
external_custom_info = models.JSONField(
verbose_name='对外展示信息', null=True, blank=True)
qrcode = models.CharField(
max_length=255, verbose_name='二维码', null=True, blank=True)
class Meta:
unique_together = ('corpid', 'userid', 'vid')
db_table = 'jqr_hook_user'
verbose_name = '机器人hook用户详细表'
class JqrExternalUser(models.Model):
id = models.BigAutoField(primary_key=True)
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
external_userid = models.CharField(max_length=60, verbose_name='外部用户id')
vid = models.CharField(
max_length=50, verbose_name='接粉号vid', null=True, blank=True)
name = models.CharField(max_length=255, verbose_name='用户名')
avatar = models.CharField(
max_length=255, verbose_name='头像', null=True, blank=True)
type = models.IntegerField(
verbose_name='外部联系人的类型', choices=JqrExternalUserTypeChoices.choices)
gender = models.IntegerField(
verbose_name='性别', choices=JqrHookUserGenderChoices.choices)
unionid = models.CharField(
max_length=255, verbose_name='微信unionid', null=True, blank=True)
position = models.CharField(
max_length=255, verbose_name='职位', null=True, blank=True)
corp_name = models.CharField(
max_length=255, verbose_name='企业简称', null=True, blank=True)
corp_full_name = models.CharField(
max_length=255, verbose_name='企业名称', null=True, blank=True)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
dtime = models.DateTimeField(verbose_name='删除时间', null=True, blank=True)
addtype = models.IntegerField(
verbose_name='添加方式', choices=JqrUserAddTypeChoices.choices, default=JqrAddTypeChoices.API)
deletetype = models.IntegerField(
verbose_name='删除方式', choices=JqrWechatbizuserinfoDeleteTypeChoices.choices, null=True, blank=True)
class Meta:
db_table = 'jqr_external_user'
verbose_name = '机器人外部联系人表'
ordering = ['-ctime']
unique_together = ('corpid', 'external_userid')
class JqrExternalFollowUser(models.Model):
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
external_userid = models.CharField(max_length=60, verbose_name='外部用户id')
id = models.BigAutoField(primary_key=True)
userid = models.CharField(max_length=50, verbose_name='接粉号userid')
remark = models.TextField(
verbose_name='该成员对此外部联系人的备注', null=True, blank=True)
description = models.TextField(
verbose_name='该成员对此外部联系人的描述', null=True, blank=True)
createtime = models.BigIntegerField(verbose_name='添加好友时间')
tags = models.JSONField(verbose_name='标签')
remark_mobiles = models.JSONField(verbose_name='该成员对此客户备注的手机号码')
add_way = models.IntegerField(
verbose_name='添加方式', choices=JqrUserAddTypeChoices.choices)
state = models.CharField(
max_length=255, verbose_name='企业自定义的state参数', null=True, blank=True)
oper_userid = models.CharField(
max_length=50, verbose_name='添加人userid', null=True, blank=True)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
dtime = models.DateTimeField(verbose_name='删除时间', null=True, blank=True)
addtype = models.IntegerField(
verbose_name='添加方式', choices=JqrUserAddTypeChoices.choices, default=JqrAddTypeChoices.API)
deletetype = models.IntegerField(
verbose_name='删除方式', choices=JqrWechatbizuserinfoDeleteTypeChoices.choices, null=True, blank=True)
class Meta:
db_table = 'jqr_external_follow_user'
verbose_name = '机器人外部联系人关系表'
ordering = ['-ctime']
unique_together = ('corpid', 'userid', 'external_userid')
class JqrExternalQun(models.Model):
id = models.BigAutoField(primary_key=True)
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
vid = models.CharField(
max_length=50, verbose_name='接粉号vid', null=True, blank=True)
chat_id = models.CharField(max_length=60, verbose_name='群id')
name = models.CharField(max_length=255, verbose_name='群名')
owner = models.CharField(max_length=50, verbose_name='接粉号userid')
create_time = models.BigIntegerField(verbose_name='群创建时间')
notice = models.TextField(verbose_name='群通知', null=True, blank=True)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
dtime = models.DateTimeField(verbose_name='删除时间', null=True, blank=True)
addtype = models.IntegerField(
verbose_name='添加方式', choices=JqrUserAddTypeChoices.choices, default=JqrAddTypeChoices.API)
class Meta:
db_table = 'jqr_external_qun'
verbose_name = '机器人外部联系人群表'
ordering = ['-create_time']
class JqrSendSetting(models.Model):
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid', null=True, blank=True)
agentid = models.CharField(
max_length=128, verbose_name='自建应用agentid', null=True, blank=True)
id = models.BigAutoField(primary_key=True)
uid = models.IntegerField(verbose_name='用户Id')
userid = models.CharField(
max_length=50, verbose_name='接粉号id', null=True, blank=True)
chat_id = models.CharField(
max_length=60, verbose_name='群id', null=True, blank=True)
scene = models.CharField(
max_length=255, verbose_name='场景', null=True, blank=True)
platform_type = models.IntegerField(
verbose_name='平台类型', choices=JqrSendSettingPlatformTypeChoices.choices)
setting = models.JSONField(verbose_name='配置')
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
is_delete = models.BooleanField(verbose_name='是否删除', default=False)
class Meta:
db_table = 'jqr_send_setting'
verbose_name = '发送配置'
ordering = ['-ctime']
class JqrBaseSendMsg(models.Model):
id = models.AutoField(primary_key=True)
uid = models.IntegerField(verbose_name='用户Id')
taskname = models.CharField(max_length=64, verbose_name='任务名称')
sendusertype = models.IntegerField(
verbose_name='发送用户类型', choices=JqrSendGroupMsgSendUserTypeChoices.choices)
senduserids = models.JSONField(verbose_name='发送用户')
sendcontent = models.JSONField(verbose_name='发送内容')
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
isopen = models.IntegerField(verbose_name='是否开启', choices=JqrSendGroupMsgIsOpenChoices.choices)
scene = models.CharField(max_length=128, verbose_name='场景', null=True, blank=True)
class Meta:
abstract = True
class JqrSendGroupMsg(JqrBaseSendMsg):
needsid = models.IntegerField(verbose_name='是否需要sid', choices=JqrSendGroupMsgNeedSidChoices.choices,
default=JqrSendGroupMsgNeedSidChoices.NOT_NEED)
timetype = models.IntegerField(verbose_name='发送时间类型', choices=JqrSendGroupMsgTimeTypeChoices.choices,
default=None)
timejson = models.JSONField(verbose_name='发送时间对象', default=None)
sendtime = models.DateTimeField(verbose_name='下次具体发送时间', null=True, blank=True)
class Meta:
db_table = 'jqr_sendgroupmsg'
verbose_name = 'JQR Send Group Message'
verbose_name_plural = 'JQR Send Group Messages'
ordering = ['-ctime']
def __str__(self):
return self.taskname
class JqrNewUserSendGroupMsg(JqrBaseSendMsg):
# 优先级
priority = models.IntegerField(verbose_name='优先级', default=0)
type = models.IntegerField(verbose_name='类型', choices=JqrNewUserSendGroupMsgTypeChoices.choices,
default=JqrNewUserSendGroupMsgTypeChoices.PRIVATE)
class Meta:
db_table = 'jqr_newusersendgroupmsg'
verbose_name = 'JQR New User Send Group Message'
verbose_name_plural = 'JQR New User Send Group Messages'
ordering = ['-ctime']
def __str__(self):
return self.taskname
class JqrNewUserOrderSendGroupMsg(JqrBaseSendMsg):
# 优先级
priority = models.IntegerField(verbose_name='优先级', default=0)
class Meta:
db_table = 'jqr_newuserordersendgroupmsg'
verbose_name = 'JQR New User Order Send Group Message'
verbose_name_plural = 'JQR New User Order Send Group Messages'
ordering = ['-ctime']
def __str__(self):
return self.taskname
class JqrTimePrivateSendGroupMsg(JqrBaseSendMsg):
sendtype = models.IntegerField(verbose_name='发送类型1=高级群发2=极速群发',
choices=JqrSendGroupMsgSendTypeChoices.choices,
default=JqrSendGroupMsgSendTypeChoices.ADVANCED)
needsid = models.IntegerField(verbose_name='是否需要sid', choices=JqrSendGroupMsgNeedSidChoices.choices,
default=JqrSendGroupMsgNeedSidChoices.NOT_NEED)
timetype = models.IntegerField(verbose_name='发送时间类型', choices=JqrSendGroupMsgTimeTypeChoices.choices,
default=None)
timejson = models.JSONField(verbose_name='发送时间对象', default=None)
sendtime = models.DateTimeField(verbose_name='下次具体发送时间', null=True, blank=True)
type = models.IntegerField(verbose_name='类型', choices=JqrTimeSendGroupMsgTypeChoices.choices,
default=JqrTimeSendGroupMsgTypeChoices.PRIVATE)
class Meta:
db_table = 'jqr_timeprivatesendgroupmsg'
verbose_name = 'JQR Time Private Send Group Message'
verbose_name_plural = 'JQR Time Private Send Group Messages'
ordering = ['-ctime']
def __str__(self):
return self.taskname
class JqrTimeQunSendGroupMsg(JqrBaseSendMsg):
sendtype = models.IntegerField(verbose_name='发送类型1=高级群发2=极速群发',
choices=JqrSendGroupMsgSendTypeChoices.choices,
default=JqrSendGroupMsgSendTypeChoices.ADVANCED)
needsid = models.IntegerField(verbose_name='是否需要sid', choices=JqrSendGroupMsgNeedSidChoices.choices,
default=JqrSendGroupMsgNeedSidChoices.NOT_NEED)
timetype = models.IntegerField(verbose_name='发送时间类型', choices=JqrSendGroupMsgTimeTypeChoices.choices,
default=None)
timejson = models.JSONField(verbose_name='发送时间对象', default=None)
sendtime = models.DateTimeField(verbose_name='下次具体发送时间', null=True, blank=True)
class Meta:
db_table = 'jqr_timequnsendgroupmsg'
verbose_name = 'JQR Time Private Send Group Message'
verbose_name_plural = 'JQR Time Private Send Group Messages'
ordering = ['-ctime']
def __str__(self):
return self.taskname
class JqrKeywordSendGroupMsg(JqrBaseSendMsg):
type = models.IntegerField(verbose_name='类型', choices=JqrKeywordSendGroupMsgTypeChoices.choices,
default=JqrKeywordSendGroupMsgTypeChoices.PRIVATE)
pattern = models.IntegerField(verbose_name='匹配规则', null=True, blank=True,
choices=JqrKeywordSendGroupMsgPatternChoices.choices,
default=JqrKeywordSendGroupMsgPatternChoices.ANY)
keyword_text = models.TextField(verbose_name='关键字数组', null=True, blank=True)
class Meta:
db_table = 'jqr_keywordsendgroupmsg'
verbose_name = 'JQR Keyword Send Group Message'
verbose_name_plural = 'JQR Keyword Send Group Messages'
ordering = ['-ctime']
class JqrGroupMsgList(models.Model):
corpid = models.CharField(max_length=32, verbose_name='企业id', db_index=True)
msgid = models.CharField(max_length=255, verbose_name='消息id', db_index=True)
chat_type = models.CharField(max_length=32, verbose_name='群发任务的类型',
default=JqrGroupMsgListChatTypeChoices.SINGLE,
choices=JqrGroupMsgListChatTypeChoices.choices)
filter_type = models.IntegerField(
verbose_name='创建人类型。0企业发表 1个人发表 2所有包括个人创建以及企业创建默认情况下为所有类型',
choices=JqrGroupMsgListFilterTypeChoices.choices)
creator = models.CharField(max_length=255, verbose_name='创建人')
create_time = models.BigIntegerField(verbose_name='消息创建时间')
create_type = models.IntegerField(verbose_name='创建类型: 0企业 1个人',
choices=JqrGroupMsgListCreateTypeChoices.choices)
text = models.JSONField(verbose_name='文本消息内容', null=True, blank=True)
attachments = models.JSONField(verbose_name='附件消息内容', null=True, blank=True)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
class Meta:
db_table = 'jqr_groupmsglist'
verbose_name = '群发记录列表'
verbose_name_plural = '群发记录列表'
ordering = ['-create_time']
unique_together = ('corpid', 'msgid')
class JqrGroupMsgTask(models.Model):
corpid = models.CharField(max_length=32, verbose_name='企业id', db_index=True)
msgid = models.CharField(max_length=255, verbose_name='消息id', db_index=True)
userid = models.CharField(max_length=255, verbose_name='接粉号Id')
status = models.IntegerField(verbose_name='发送状态0-未发送 2-已发送',
choices=JqrGroupMsgTaskStatusChoices.choices)
send_time = models.BigIntegerField(verbose_name='发送时间', null=True, blank=True)
chat_type = models.CharField(max_length=32, verbose_name='群发任务的类型',
default=JqrGroupMsgListChatTypeChoices.SINGLE,
choices=JqrGroupMsgListChatTypeChoices.choices)
is_handled = models.BooleanField(verbose_name='是否已处理', default=False)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
class Meta:
db_table = 'jqr_groupmsgtask'
verbose_name = '群发任务'
verbose_name_plural = '群发任务'
ordering = ['-send_time']
class JqrGrouMsgSendGroupMsgResult(models.Model):
corpid = models.CharField(max_length=32, verbose_name='企业id', db_index=True)
msgid = models.CharField(max_length=255, verbose_name='消息id', db_index=True)
userid = models.CharField(max_length=255, verbose_name='接粉号Id')
external_userid = models.CharField(max_length=255, verbose_name='外部联系人Id', null=True, blank=True)
chat_id = models.CharField(max_length=255, verbose_name='群聊id', null=True, blank=True)
status = models.IntegerField(
verbose_name='发送状态0-未发送 1-已发送 2-因客户不是好友导致发送失败 3-因客户已经收到其他群发消息导致发送失败',
choices=JqrGrouMsgSendGroupMsgStatusChoices.choices,
null=True, blank=True)
send_time = models.BigIntegerField(verbose_name='发送时间', null=True, blank=True)
task_send_time = models.BigIntegerField(verbose_name='任务发送时间', null=True, blank=True)
chat_type = models.CharField(max_length=32, verbose_name='群发任务的类型',
default=JqrGroupMsgListChatTypeChoices.SINGLE,
choices=JqrGroupMsgListChatTypeChoices.choices)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
class Meta:
db_table = 'jqr_groupmsgsendresult'
verbose_name = '群发成员执行结果'
verbose_name_plural = '群发成员执行结果'
ordering = ['-send_time']