1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-06-29 07:11:38 +08:00

enhance import contacts

This commit is contained in:
Hai Liang Wang 2019-11-26 17:27:37 +08:00
parent b48752fd9f
commit d11b5a7890
9 changed files with 70 additions and 30 deletions

View File

@ -4,7 +4,7 @@
<View alias="agentservice"> <View alias="agentservice">
<SQL> <SQL>
<![CDATA[ <![CDATA[
select * from uk_agentservice where satisfaction = 1 <#if skill?? && skill!=""> AND agentskill = '${skill!''}'</#if> <#if agent?? && agent!=""> AND agentno = '${agent!''}'</#if> <#if orgi?? && orgi!=""> AND orgi = '${orgi!''}'</#if> <#if begin?? && begin!=""> AND satistime >= str_to_date('${begin!''}', '%Y-%m-%d %H:%i:%s')</#if> <#if end?? && end!=""> AND satistime <= str_to_date('${end!''} 23:59:59', '%Y-%m-%d %H:%i:%s')</#if> select * from uk_agentservice where 1 = 1 <#if skill?? && skill!=""> AND agentskill = '${skill!''}'</#if> <#if agent?? && agent!=""> AND agentno = '${agent!''}'</#if> <#if orgi?? && orgi!=""> AND orgi = '${orgi!''}'</#if> <#if begin?? && begin!=""> AND satistime >= str_to_date('${begin!''}', '%Y-%m-%d %H:%i:%s')</#if> <#if end?? && end!=""> AND satistime <= str_to_date('${end!''} 23:59:59', '%Y-%m-%d %H:%i:%s')</#if>
]]> ]]>
</SQL> </SQL>
</View> </View>
@ -25,9 +25,9 @@
<Hierarchy hasAll='true' allMemberName='合计' > <Hierarchy hasAll='true' allMemberName='合计' >
<Level name='日期' column='satistime' uniqueMembers='false'> <Level name='日期' column='satistime' uniqueMembers='false'>
<KeyExpression> <KeyExpression>
<SQL dialect="generic">date_format(agentservice.createtime,'%Y-%m-%d')</SQL> <SQL dialect="generic">date_format(agentservice.satistime,'%Y-%m-%d')</SQL>
<SQL dialect="mysql">date_format(agentservice.createtime,'%Y-%m-%d')</SQL> <SQL dialect="mysql">date_format(agentservice.satistime,'%Y-%m-%d')</SQL>
<SQL dialect="oracle">TO_DATE(agentservice.createtime,'YYYY-MM-DD')</SQL> <SQL dialect="oracle">TO_DATE(agentservice.satistime,'YYYY-MM-DD')</SQL>
</KeyExpression> </KeyExpression>
</Level> </Level>
</Hierarchy> </Hierarchy>

View File

@ -84,7 +84,7 @@
<div class="uk-layui-form"> <div class="uk-layui-form">
<input hidden value="${contacts.id!''}" id="contactsId"/> <input hidden value="${contacts.id!''}" id="contactsId"/>
<input hidden value="${contacts.creater!''}" id="creater"/> <input hidden value="${contacts.creater!''}" id="creater"/>
<div class="layui-collapse"> <div class="layui-collapse" id="basic">
<div class="layui-colla-item"> <div class="layui-colla-item">
<h2 class="layui-colla-title">基本信息</h2> <h2 class="layui-colla-title">基本信息</h2>
<div class="layui-colla-content layui-show"> <div class="layui-colla-content layui-show">
@ -192,11 +192,44 @@
</div> </div>
</div> </div>
</div> </div>
<#if contacts.wlusername?? || contacts.wluid??>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">用户名(id)</label>
<div class="layui-input-inline" style="margin-left:5px;line-height: 2.5em;">
${contacts.wlusername!''}
<span>(${contacts.wluid!''})</span>
</div>
</div>
</div>
</#if>
<#if contacts.wlcompany_name?? || contacts.wlcid??>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">公司名称(id)</label>
<div class="layui-input-inline" style="margin-left:5px;line-height: 2.5em;">
${contacts.wlcompany_name!''}
<span>(${contacts.wlcid!''})</span>
</div>
</div>
</div>
</#if>
<#if contacts.wlsystem_name?? || contacts.wlsid??>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">子系统名称(id)</label>
<div class="layui-input-inline" style="margin-left:5px;line-height: 2.5em;">
${contacts.wlsystem_name!''}
<span>(${contacts.wlsid!''})</span>
</div>
</div>
</div>
</#if>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">联系人地址:</label> <label class="layui-form-label">联系人地址:</label>
<div class="layui-input-inline" style="width: 159%;"> <div class="layui-input-inline" style="width: 159%;">
<input type="text" name="address" readonly value="${contacts.address!''}" class="layui-input"> <input type="text" name="address" readonly value="${contacts.address!''}" class="layui-input" style="width: 425px;">
</div> </div>
</div> </div>
</div> </div>
@ -204,7 +237,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">联系人说明:</label> <label class="layui-form-label">联系人说明:</label>
<div class="layui-input-inline" style="width: 149%;"> <div class="layui-input-inline" style="width: 149%;">
<textarea name="memo" class="layui-textarea" readonly>${contacts.memo!''}</textarea> <textarea name="memo" class="layui-textarea" readonly style="width: 425px;">${contacts.memo!''}</textarea>
</div> </div>
</div> </div>
</div> </div>
@ -255,6 +288,13 @@
width: 100%; width: 100%;
word-break: break-all; word-break: break-all;
} }
#basic .layui-form-label{
width: 115px;
}
#basic .layui-input-inline{
width: 270px;
}
</style> </style>
<script> <script>
function getNotesByContactId () { function getNotesByContactId () {

View File

@ -18,7 +18,7 @@
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<font color="red">*(必填项)</font> (需要导入的联系人数据Excel文件) <font color="red">*(必填项)</font> (需要导入的联系人数据Excel文件)
<a href="/res/template.html?filename=contacts_template.xls" target="_blank" style="margin-left:20px;"> <a href="/res/template.html?filename=contacts_template.xlsx" target="_blank" style="margin-left:20px;">
<i class="layui-icon">&#xe601;</i> <i class="layui-icon">&#xe601;</i>
下载模板 下载模板
</a> </a>

View File

@ -62,11 +62,11 @@
<div class="layui-input-inline" style="width: auto;margin-right:0px;"> <div class="layui-input-inline" style="width: auto;margin-right:0px;">
<label class="layui-form-label" style="width: auto;">日期范围:</label> <label class="layui-form-label" style="width: auto;">日期范围:</label>
<div class="layui-input-inline" style="width: auto;margin-right:0px;"> <div class="layui-input-inline" style="width: auto;margin-right:0px;">
<input type="text" name="start_time" class="layui-input ukefu-input" id="start_time" value="${begin!''}" placeholder="开始时间"> <input type="text" name="begin" class="layui-input ukefu-input" id="start_time" value="${begin!''}" placeholder="开始时间">
</div> </div>
<label class="layui-form-label" style="width: auto;">~</label> <label class="layui-form-label" style="width: auto;">~</label>
<div class="layui-input-inline" style="width: auto;margin-right:0px;"> <div class="layui-input-inline" style="width: auto;margin-right:0px;">
<input type="text" name="end_time" class="layui-input ukefu-input" value="${end!''}" id="end_time" placeholder="结束时间"> <input type="text" name="end" class="layui-input ukefu-input" value="${end!''}" id="end_time" placeholder="结束时间">
</div> </div>
</div> </div>
</div> </div>

View File

@ -61,11 +61,11 @@
<div class="layui-input-inline" style="width: auto;margin-right:0px;"> <div class="layui-input-inline" style="width: auto;margin-right:0px;">
<label class="layui-form-label" style="width: auto;">日期范围:</label> <label class="layui-form-label" style="width: auto;">日期范围:</label>
<div class="layui-input-inline" style="width: auto;margin-right:0px;"> <div class="layui-input-inline" style="width: auto;margin-right:0px;">
<input name="start_time" id="start_time" class="layui-input ukefu-input" placeholder="开始日期" value="${begin!''}" > <input name="begin" id="start_time" class="layui-input ukefu-input" placeholder="开始日期" value="${begin!''}" >
</div> </div>
<label class="layui-form-label" style="width: auto;">~</label> <label class="layui-form-label" style="width: auto;">~</label>
<div class="layui-input-inline" style="width: auto;margin-right:0px;"> <div class="layui-input-inline" style="width: auto;margin-right:0px;">
<input name="end_time" id="end_time" class="layui-input ukefu-input" placeholder="结束日期" value="${end!''}" > <input name="end" id="end_time" class="layui-input ukefu-input" placeholder="结束日期" value="${end!''}" >
</div> </div>
</div> </div>
</div> </div>

View File

@ -10,14 +10,15 @@ MYSQL_WRITEMODE_IP=`parse_host ${SPRING_DATASOURCE_URL}`
MYSQL_WRITEMODE_PORT=`parse_port ${SPRING_DATASOURCE_URL}` MYSQL_WRITEMODE_PORT=`parse_port ${SPRING_DATASOURCE_URL}`
CONTACT_CENTER_DB=`parse_dbname ${SPRING_DATASOURCE_URL}` CONTACT_CENTER_DB=`parse_dbname ${SPRING_DATASOURCE_URL}`
CONTACT_CENTER_WAR=/opt/chatopera/contact-center.war CONTACT_CENTER_WAR=/opt/chatopera/contact-center.war
UPGRADE_DB_SCRIPT_DIR=/tmp/ROOT/upgrade APP_WAR_EXTRACTED=/tmp/ROOT
UPGRADE_DB_SCRIPT_DIR=$APP_WAR_EXTRACTED/upgrade
println "[upgrade] connecting to $MYSQL_WRITEMODE_IP:$MYSQL_WRITEMODE_PORT/$CONTACT_CENTER_DB with $SPRING_DATASOURCE_USERNAME/****" println "[upgrade] connecting to $MYSQL_WRITEMODE_IP:$MYSQL_WRITEMODE_PORT/$CONTACT_CENTER_DB with $SPRING_DATASOURCE_USERNAME/****"
# functions # functions
function upgrade_db(){ function upgrade_db(){
if [ ! -f $1 ]; then exit 1; fi if [ ! -f $1 ]; then exit 1; fi
println "run MySQL DB upgrade script" $1 "..." println "[upgrade] run MySQL DB upgrade script" $1 "..."
mysql -u ${SPRING_DATASOURCE_USERNAME} \ mysql -u ${SPRING_DATASOURCE_USERNAME} \
-h ${MYSQL_WRITEMODE_IP} \ -h ${MYSQL_WRITEMODE_IP} \
-P ${MYSQL_WRITEMODE_PORT} -p${SPRING_DATASOURCE_PASSWORD} \ -P ${MYSQL_WRITEMODE_PORT} -p${SPRING_DATASOURCE_PASSWORD} \
@ -33,23 +34,11 @@ function extract_war(){
println "extract SQL script ..." println "extract SQL script ..."
if [ -f $CONTACT_CENTER_WAR ]; then if [ -f $CONTACT_CENTER_WAR ]; then
cd /tmp cd /tmp
if [ -d ROOT ]; then if [ -d $APP_WAR_EXTRACTED ]; then
rm -rf ROOT rm -rf $APP_WAR_EXTRACTED
fi fi
unzip -q $CONTACT_CENTER_WAR -d ROOT unzip -q $CONTACT_CENTER_WAR -d ROOT
if [ -f /tmp/ROOT/$MYSQL_SCRIPT_NAME ]; then
println "start to import database ..."
import_db /tmp/ROOT/$MYSQL_SCRIPT_NAME
# verify status
if [ ! $? -eq 0 ]; then
exit 1
fi
rm -rf /tmp/ROOT
else
println "SQL script not exist."
exit 1
fi
else else
println "War file not exist." println "War file not exist."
fi fi
@ -57,9 +46,14 @@ function extract_war(){
# main # main
[ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return [ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return
## check upgrade footprint
if [ -f /opt/chatopera/upgrade.his ]; then
echo "[upgrade] upgrade has been done with previous start."
exit 0
fi
## check root dir ## check root dir
if [ ! -d /tmp/ROOT ]; then if [ ! -d $APP_WAR_EXTRACTED ]; then
extract_war extract_war
fi fi
@ -75,3 +69,8 @@ if [ -d $UPGRADE_DB_SCRIPT_DIR ]; then
fi fi
done done
fi fi
## touch upgrade footprint
if [ ! -f /opt/chatopera/upgrade.his ]; then
touch /opt/chatopera/upgrade.his
fi

View File

@ -7956,7 +7956,7 @@ VALUES
('2c9480886e91d9e5016e91f528b901c1', '联系人备注', NULL, NULL, NULL, 'memo', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 255, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('2c9480886e91d9e5016e91f528b901c1', '联系人备注', NULL, NULL, NULL, 'memo', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 255, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
('2c9480886e91d9e5016e91f528b901c3', '修改时间', NULL, NULL, NULL, 'updatetime', 0, 'datetime', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 19, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('2c9480886e91d9e5016e91f528b901c3', '修改时间', NULL, NULL, NULL, 'updatetime', 0, 'datetime', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 19, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
('2c9480886e91d9e5016e91f528ba01c6', '创建时间', NULL, NULL, NULL, 'createtime', 0, 'datetime', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 19, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('2c9480886e91d9e5016e91f528ba01c6', '创建时间', NULL, NULL, NULL, 'createtime', 0, 'datetime', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 19, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
('2c9480886e91d9e5016e91f528ba01c7', '联系人姓名', NULL, NULL, NULL, 'name', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 255, 1, 0, '', NULL, NULL, '', '', NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('2c9480886e91d9e5016e91f528ba01c7', '联系人姓名', NULL, NULL, NULL, 'name', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 255, 1, 0, '', NULL, NULL, '', '', NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 'required', NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
('2c9480886e91d9e5016e91f528ba01ca', '分享给', NULL, NULL, NULL, 'shares', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 255, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('2c9480886e91d9e5016e91f528ba01ca', '分享给', NULL, NULL, NULL, 'shares', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 255, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
('2c9480886e91d9e5016e91f528bb01d0', 'skypeid', NULL, NULL, NULL, 'skypeid', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 100, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('2c9480886e91d9e5016e91f528bb01d0', 'skypeid', NULL, NULL, NULL, 'skypeid', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 100, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
('2c9480886e91d9e5016e91f528bb01d1', '人员id', NULL, NULL, NULL, 'wluid', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 100, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('2c9480886e91d9e5016e91f528bb01d1', '人员id', NULL, NULL, NULL, 'wluid', 0, 'text', '2c9480886e91d9e5016e91f528ab018d', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_contacts', NULL, 100, 0, 1, 0, 100, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
@ -8001,6 +8001,7 @@ VALUES
('402870876e5d9773016e5e9cc63d028e', 'updatetime', NULL, NULL, NULL, 'updatetime', 0, 'datetime', '402870876e5d9773016e5e9cc6370270', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_servicesummary', NULL, 100, 0, 1, 0, 19, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0), ('402870876e5d9773016e5e9cc63d028e', 'updatetime', NULL, NULL, NULL, 'updatetime', 0, 'datetime', '402870876e5d9773016e5e9cc6370270', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_servicesummary', NULL, 100, 0, 1, 0, 19, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0),
('402870876e5d9773016e5e9cc63d028f', 'processmemo', NULL, NULL, NULL, 'processmemo', 0, 'text', '402870876e5d9773016e5e9cc6370270', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_servicesummary', NULL, 100, 0, 1, 0, 65535, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0); ('402870876e5d9773016e5e9cc63d028f', 'processmemo', NULL, NULL, NULL, 'processmemo', 0, 'text', '402870876e5d9773016e5e9cc6370270', NULL, 0, 0, NULL, NULL, 'cskefu', NULL, NULL, 'uk_servicesummary', NULL, 100, 0, 1, 0, 65535, 1, 0, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 0, 0, 0, NULL, 0, NULL, NULL, 0, NULL, NULL, 0);
-- ---------------------------- -- ----------------------------
-- Table structure for uk_tabletask -- Table structure for uk_tabletask
-- ---------------------------- -- ----------------------------