yzk_wechat_event/apps/jqr/models.py

430 lines
24 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', null=True, blank=True)
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='定时朋友圈开关')
keyword = models.BooleanField(default=True, verbose_name='关键字回复开关')
utime = models.DateTimeField(verbose_name='更新时间', null=True, blank=True, auto_now=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)
hook_starttime = models.DateTimeField(null=True, verbose_name="hook最近一次启动时间", blank=True)
hook_wstime = models.DateTimeField(null=True, verbose_name="hook最近一次websocket首发消息时间", blank=True)
hook_connecttime = models.DateTimeField(null=True, verbose_name="hook最近一次通信时间", blank=True)
hook_version = models.CharField(max_length=255, null=True, verbose_name="hook版本号", blank=True)
ip = models.CharField(verbose_name='ip', null=True, blank=True, max_length=128)
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)
addtype = models.IntegerField(
verbose_name='添加方式', choices=JqrUserAddTypeChoices.choices, default=JqrAddTypeChoices.API)
class Meta:
db_table = 'jqr_external_user'
verbose_name = '机器人外部联系人表'
ordering = ['-ctime']
unique_together = ('corpid', 'external_userid')
class JqrExternalFollowUser(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')
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)
remark = models.CharField(
max_length=128, verbose_name='备注模板', null=True, blank=True)
tags = models.JSONField(verbose_name='标签', null=True, blank=True)
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 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 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)
priority = models.IntegerField(verbose_name='优先级', default=0)
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']
class JqrSendnewusermsgrecord(models.Model):
"""
联系人消息发送记录
"""
platfromuserid = models.BigIntegerField(
verbose_name='平台用户ID')
sendid = models.BigIntegerField(verbose_name='发送计划ID')
sendtime = models.DateTimeField(verbose_name='发送时间')
sendmethod = models.IntegerField(verbose_name='发送方式 0:极速 1:高级', choices=JqrSendnewusermsgrecordSendMethodChoices.choices)
corpid = models.CharField(max_length=32, blank=True, null=True, verbose_name='企业ID')
userid = models.CharField(max_length=32, blank=True, null=True, verbose_name='接粉号ID')
wxvid = models.CharField(max_length=64, blank=True, null=True, verbose_name='外部用户wxvid')
sendtype = models.IntegerField(blank=True, null=True, verbose_name='发送类型 0:新客欢迎 1:新客催单',
choices=JqrSendnewusermsgrecordSendTypeChoices.choices)
sendstate = models.IntegerField(blank=True, null=True,
verbose_name='发送状态 0:等待发送 1:已发送 2:发送成功 3:发送失败 4:取消发送',
choices=JqrSendnewusermsgrecordSendStateChoices.choices)
sendnums = models.IntegerField(blank=True, null=True, verbose_name='重复次数')
sendcontent = models.JSONField(verbose_name='发送内容')
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
sendkey = models.CharField(max_length=32, blank=True, null=True, verbose_name='服务端创建的Key')
clientkey = models.CharField(max_length=32, blank=True, null=True, verbose_name='微信返回的msgid')
timestamp = models.BigIntegerField(blank=True, null=True, verbose_name='时间戳')
contentname = models.CharField(max_length=64, blank=True, null=True, verbose_name='发送内容组名称')
class Meta:
db_table = 'jqr_sendnewusermsgrecord'
verbose_name = '联系人消息发送记录'
verbose_name_plural = '联系人消息发送记录'
class JqrSendmsgrecord(models.Model):
id = models.BigAutoField(verbose_name='ID', primary_key=True)
uid = models.IntegerField(verbose_name='平台用户ID', null=False)
sendid = models.BigIntegerField(verbose_name='发送计划ID', null=False)
sendtime = models.DateTimeField(verbose_name='发送时间', null=False)
sendrecord = models.JSONField(verbose_name='发送记录', null=False)
ctime = models.DateTimeField(verbose_name='创建时间', null=False)
sendmethod = models.IntegerField(verbose_name='发送方式', null=False)
class Meta:
db_table = 'jqr_sendmsgrecord'
verbose_name = '私聊发送记录'
verbose_name_plural = '私聊发送记录'
class JqrSendmsgrecordinfo(models.Model):
id = models.BigAutoField(verbose_name='ID', primary_key=True)
sendid = models.BigIntegerField(verbose_name='发送计划ID', null=False)
sendmsgid = models.BigIntegerField(verbose_name='发送记录ID', null=False)
sendtime = models.DateTimeField(verbose_name='发送时间', null=False)
corpid = models.CharField(max_length=32, verbose_name='企业ID', null=False)
userid = models.CharField(max_length=32, verbose_name='接粉号', null=False)
wxvids = models.TextField(verbose_name='接收人wxvid')
sendstate = models.IntegerField(verbose_name='发送状态', null=False, choices=JqrSendmsgrecordinfoSendStateChoices.choices)
sendnums = models.IntegerField(verbose_name='重发次数', null=False)
sendcontent = models.JSONField(verbose_name='发送内容', null=False)
ctime = models.DateTimeField(verbose_name='创建时间', null=False)
utime = models.DateTimeField(verbose_name='更新时间', null=False)
sendkey = models.CharField(max_length=32, verbose_name='服务端提交的Key')
clientkey = models.CharField(max_length=32, verbose_name='微信发送返回的msgid')
timestamp = models.BigIntegerField(verbose_name='微信发送时间戳')
contentname = models.CharField(max_length=64, verbose_name='发送内容组名称')
class Meta:
db_table = 'jqr_sendmsgrecordinfo'
verbose_name = '发送记录信息'
verbose_name_plural = '发送记录信息'