2023-12-13 11:41:22 +08:00
|
|
|
|
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='定时朋友圈开关')
|
2023-12-20 17:50:07 +08:00
|
|
|
|
keyword = models.BooleanField(default=True, verbose_name='关键字回复开关')
|
2023-12-13 11:41:22 +08:00
|
|
|
|
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)
|
2023-12-20 17:50:07 +08:00
|
|
|
|
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)
|
2023-12-13 11:41:22 +08:00
|
|
|
|
|
|
|
|
|
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)
|
2023-12-19 16:03:02 +08:00
|
|
|
|
remark = models.CharField(
|
|
|
|
|
max_length=128, verbose_name='备注模板', null=True, blank=True)
|
|
|
|
|
tags = models.JSONField(verbose_name='标签', null=True, blank=True)
|
2023-12-13 11:41:22 +08:00
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
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']
|
2023-12-20 15:40:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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='创建时间')
|
|
|
|
|
utime = models.DateTimeField(verbose_name='更新时间')
|
|
|
|
|
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 = '发送记录信息'
|