Commit e031a93d by 罗胜

2022-01-07 00:02

1.油量分析和导出excel从单表获取数据
parent 03465474
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ejweb.modules.airport.dao.OilAnalysisDao"> <mapper namespace="com.ejweb.modules.airport.dao.OilAnalysisDao">
<select id="getOilAnalysisData" resultType="com.ejweb.modules.airport.entity.OilAnalysisEntity"> <select id="getExcelOilAnalysisData1" resultType="com.ejweb.modules.airport.entity.OilAnalysisEntity">
select DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i')as std, select DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i')as std,
DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i:%s')as stdExcel, DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i:%s')as stdExcel,
sta.flight_no, sta.flight_no,
...@@ -18,8 +18,17 @@ ...@@ -18,8 +18,17 @@
airdep.city_name as depAirPortName, airdep.city_name as depAirPortName,
airArr.airport_icao as arrIcaoId, airArr.airport_icao as arrIcaoId,
airdep.airport_icao as depIcaoId, airdep.airport_icao as depIcaoId,
IFNULL(fat.verify_ac_type,'') as acTypeName IFNULL(fat.verify_ac_type,'') as acTypeName,
sta.airline_oil,
sta.remark_msg,
sta.alt1_fuel,
sta.alt1_distance,
sta.alt1_time,
sta.alt2_fuel,
sta.alt2_time,
sta.alt2_distance,
sta.cruising_altitude,
sta.e_e_t as eet
from foc_flight_dynamics_sta sta from foc_flight_dynamics_sta sta
left join foc_airports airArr on airArr.airport_iata = sta.arr_iata_id left join foc_airports airArr on airArr.airport_iata = sta.arr_iata_id
left join foc_airports airdep on airdep.airport_iata = sta.dep_iata_id left join foc_airports airdep on airdep.airport_iata = sta.dep_iata_id
...@@ -69,4 +78,201 @@ ...@@ -69,4 +78,201 @@
</select> </select>
<select id="getExcelOilAnalysisData" resultType="com.ejweb.modules.airport.entity.OilAnalysisEntity">
select DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i')as std,
DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i:%s')as stdExcel,
sta.flight_no,
sta.ac_no,
sta.dispatcher_name,
IFNULL(sta.dispatcher_account,'') as dispatcherAccount,
sta.total_oil,
sta.dep_iata_id,
sta.arr_iata_id,
sta.extra_oil_fuel_reason,
DATE_FORMAT(sta.update_date, '%Y/%m/%d')as updateDate,
DATE_FORMAT(sta.update_time, '%Y/%m/%d %H:%i:%s')as updateTime,
sta.arr_air_port_name,
sta.dep_air_port_name,
sta.arr_icao_id,
sta.dep_icao_id,
IFNULL(sta.ac_type_name,'') as acTypeName,
sta.airline_oil,
sta.remark_msg,
sta.alt1_fuel,
sta.alt1_distance,
sta.alt1_time,
sta.alt2_fuel,
sta.alt2_time,
sta.alt2_distance,
sta.cruising_altitude,
sta.e_e_t as eet
from foc_flight_dynamics_sta sta
where 1=1
<if test="arrIata!=null and arrIata!='' ">
and sta.arr_iata_id = #{arrIata}
</if>
<if test="depIata!=null and depIata!='' ">
and sta.dep_iata_id = #{depIata}
</if>
<if test="flightNo!=null and flightNo!='' ">
and sta.flight_no = #{flightNo}
</if>
<if test="dispatcherZH!=null and dispatcherZH!=''">
and sta.dispatcher_account LIKE CONCAT('%',#{dispatcherZH}, '%')
</if>
<if test="dispatcherENG!=null and dispatcherENG!=''">
and sta.dispatcher_name LIKE CONCAT('%',#{dispatcherENG}, '%')
</if>
<if test="minDepTime !=null and minDepTime!=''">
and sta.std <![CDATA[>=]]> date_format(#{minDepTime},'%Y-%c-%d %H:%i')
</if>
<if test="maxDepTime !=null and maxDepTime!=''">
and sta.std <![CDATA[<]]> date_format(#{maxDepTime},'%Y-%c-%d %H:%i')
</if>
<if test="mintotalOil !=null and mintotalOil!=''">
and substring_index(sta.total_oil,'KGS',1) >= #{mintotalOil}
</if>
<if test="maxtotalOil !=null and maxtotalOil!=''">
and substring_index(sta.total_oil,'KGS',1) <![CDATA[<]]> #{maxtotalOil}
</if>
group by sta.std,sta.flight_no
order by sta.std desc
</select>
<select id="getOilAnalysisData1" resultType="com.ejweb.modules.airport.entity.OilAnalysisEntity">
select DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i')as std,
sta.flight_no,
sta.ac_no,
sta.dispatcher_name,
IFNULL(u.name,'') as dispatcherAccount,
sta.total_oil,
sta.dep_iata_id,
sta.arr_iata_id,
sta.extra_oil_fuel_reason,
airArr.city_name as arrAirPortName,
airdep.city_name as depAirPortName,
DATE_FORMAT(sta.update_date, '%Y/%m/%d')as updateDate,
DATE_FORMAT(sta.update_time, '%Y/%m/%d %H:%i:%s')as updateTime,
IFNULL(acType.type_name,'') as acTypeName
from foc_flight_dynamics_sta sta
left join foc_airports airArr on airArr.LoginName = sta.arr_iata_id
left join foc_airports airdep on airdep.airport_iata = sta.dep_iata_id
left join foc_ac_type acType on acType.flight_no = sta.ac_no
left join sys_user u on u.login_name = sta.dispatcher_name
where 1=1
<if test="arrIata!=null and arrIata!='' ">
and sta.arr_iata_id = #{arrIata}
</if>
<if test="depIata!=null and depIata!='' ">
and sta.dep_iata_id = #{depIata}
</if>
<if test="flightNo!=null and flightNo!='' ">
and sta.flight_no = #{flightNo}
</if>
<if test="dispatcherZH!=null and dispatcherZH!=''">
and u.name LIKE CONCAT('%',#{dispatcherZH}, '%')
</if>
<if test="dispatcherENG!=null and dispatcherENG!=''">
and sta.dispatcher_name LIKE CONCAT('%',#{dispatcherENG}, '%')
</if>
<if test="minDepTime !=null and minDepTime!=''">
and sta.std <![CDATA[>=]]> date_format(#{minDepTime},'%Y-%c-%d %H:%i')
</if>
<if test="maxDepTime !=null and maxDepTime!=''">
and sta.std <![CDATA[<]]> date_format(#{maxDepTime},'%Y-%c-%d %H:%i')
</if>
<if test="mintotalOil !=null and mintotalOil!=''">
and substring_index(sta.total_oil,'KGS',1) >= #{mintotalOil}
</if>
<if test="maxtotalOil !=null and maxtotalOil!=''">
and substring_index(sta.total_oil,'KGS',1) <![CDATA[<]]> #{maxtotalOil}
</if>
group by sta.std,sta.flight_no
order by sta.std desc
</select>
<select id="getOilAnalysisData" resultType="com.ejweb.modules.airport.entity.OilAnalysisEntity">
select DATE_FORMAT(sta.std, '%Y/%m/%d %H:%i')as std,
sta.flight_no,
sta.ac_no,
sta.dispatcher_name,
sta.dispatcher_account,
sta.total_oil,
sta.dep_iata_id,
sta.arr_iata_id,
sta.extra_oil_fuel_reason,
sta.arr_air_port_name,
sta.dep_air_port_name,
DATE_FORMAT(sta.update_date, '%Y/%m/%d')as updateDate,
DATE_FORMAT(sta.update_time, '%Y/%m/%d %H:%i:%s')as updateTime,
sta.ac_type_name
from foc_flight_dynamics_sta sta
where 1=1
<if test="arrIata!=null and arrIata!='' ">
and sta.arr_iata_id = #{arrIata}
</if>
<if test="depIata!=null and depIata!='' ">
and sta.dep_iata_id = #{depIata}
</if>
<if test="flightNo!=null and flightNo!='' ">
and sta.flight_no = #{flightNo}
</if>
<if test="dispatcherZH!=null and dispatcherZH!=''">
and u.name LIKE CONCAT('%',#{dispatcherZH}, '%')
</if>
<if test="dispatcherENG!=null and dispatcherENG!=''">
and sta.dispatcher_name LIKE CONCAT('%',#{dispatcherENG}, '%')
</if>
<if test="minDepTime !=null and minDepTime!=''">
and sta.std <![CDATA[>=]]> date_format(#{minDepTime},'%Y-%c-%d %H:%i')
</if>
<if test="maxDepTime !=null and maxDepTime!=''">
and sta.std <![CDATA[<]]> date_format(#{maxDepTime},'%Y-%c-%d %H:%i')
</if>
<if test="mintotalOil !=null and mintotalOil!=''">
and substring_index(sta.total_oil,'KGS',1) >= #{mintotalOil}
</if>
<if test="maxtotalOil !=null and maxtotalOil!=''">
and substring_index(sta.total_oil,'KGS',1) <![CDATA[<]]> #{maxtotalOil}
</if>
group by sta.std,sta.flight_no
order by sta.std desc
</select>
</mapper> </mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ejweb.modules.call.dao.CallDao"> <mapper namespace="com.ejweb.modules.call.dao.CallDao">
<!-- 通话主记录 --> <!-- 通话主记录 -->
<insert id="createCallRecord"> <insert id="createCallRecord">
INSERT INTO foc_call_records( INSERT INTO foc_call_records(
id, id,
app_code, app_code,
platform, platform,
version_name, version_name,
channel_type, channel_type,
call_type, call_type,
user_count, user_count,
end_status, end_status,
create_by, create_by,
create_name, create_name,
create_phone, create_phone,
create_show_phone, create_show_phone,
phone_type, phone_type,
start_time, start_time,
end_time, end_time,
download_url, download_url,
duration duration
) VALUE ( ) VALUE (
#{id}, #{id},
#{appCode}, #{appCode},
#{platform}, #{platform},
#{versionName}, #{versionName},
#{channelType}, #{channelType},
#{callType}, #{callType},
#{userCount}, #{userCount},
#{endStatus}, #{endStatus},
#{createBy}, #{createBy},
#{createName}, #{createName},
#{createPhone}, #{createPhone},
#{createShowPhone}, #{createShowPhone},
#{phoneType}, #{phoneType},
#{startTime}, #{startTime},
#{endTime}, #{endTime},
#{downloadUrl}, #{downloadUrl},
#{duration} #{duration}
) )
</insert> </insert>
<select id="getNameByPhone" resultType="java.lang.String"> <select id="getNameByPhone" resultType="java.lang.String">
<![CDATA[ <![CDATA[
SELECT name SELECT name
FROM sys_user FROM sys_user
WHERE phone= CONCAT('0',#{mobileNubmer}) WHERE phone= CONCAT('0',#{mobileNubmer})
OR phone_number= CONCAT('00',#{mobileNubmer}) OR phone_number= CONCAT('00',#{mobileNubmer})
OR mobile= #{mobileNubmer} OR mobile= #{mobileNubmer}
OR mobile_nubmer= CONCAT('00',#{mobileNubmer}) OR mobile_nubmer= CONCAT('00',#{mobileNubmer})
OR huawei_num= #{mobileNubmer} OR huawei_num= #{mobileNubmer}
limit 1 limit 1
]]> ]]>
</select> </select>
<select id="getIdByPhone" resultType="java.lang.String"> <select id="getIdByPhone" resultType="java.lang.String">
<![CDATA[ <![CDATA[
SELECT id SELECT id
FROM sys_user FROM sys_user
WHERE phone= CONCAT('0',#{mobileNubmer}) WHERE phone= CONCAT('0',#{mobileNubmer})
OR phone_number= CONCAT('00',#{mobileNubmer}) OR phone_number= CONCAT('00',#{mobileNubmer})
OR mobile= #{mobileNubmer} OR mobile= #{mobileNubmer}
OR mobile_nubmer= CONCAT('00',#{mobileNubmer}) OR mobile_nubmer= CONCAT('00',#{mobileNubmer})
OR huawei_num= #{mobileNubmer} OR huawei_num= #{mobileNubmer}
limit 1 limit 1
]]> ]]>
</select> </select>
<select id="getNameByPhoneFromSeat" resultType="java.lang.String"> <select id="getNameByPhoneFromSeat" resultType="java.lang.String">
<![CDATA[ <![CDATA[
SELECT seat_name as name SELECT seat_name as name
FROM foc_seats FROM foc_seats
WHERE seat_phone= #{mobileNubmer} WHERE seat_phone= #{mobileNubmer}
OR huawei_num= #{mobileNubmer} OR huawei_num= #{mobileNubmer}
limit 1 limit 1
]]> ]]>
</select> </select>
<select id="getIdByPhoneFromSeat" resultType="java.lang.String"> <select id="getIdByPhoneFromSeat" resultType="java.lang.String">
<![CDATA[ <![CDATA[
SELECT id SELECT id
FROM foc_seats FROM foc_seats
WHERE seat_phone= #{mobileNubmer} WHERE seat_phone= #{mobileNubmer}
OR huawei_num= #{mobileNubmer} OR huawei_num= #{mobileNubmer}
limit 1 limit 1
]]> ]]>
</select> </select>
<!-- 添加电话号码记录 --> <!-- 添加电话号码记录 -->
<insert id="addCallPhoneList"> <insert id="addCallPhoneList">
INSERT INTO foc_call_phones( INSERT INTO foc_call_phones(
id, id,
record_id, record_id,
title, title,
user_id, user_id,
username, username,
phone, phone,
show_phone, show_phone,
phone_type, phone_type,
flow, flow,
download_url, download_url,
center_records_id center_records_id
) VALUES ) VALUES
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
#{item.id}, #{item.id},
#{item.recordId}, #{item.recordId},
#{item.title}, #{item.title},
#{item.userId}, #{item.userId},
#{item.username}, #{item.username},
#{item.phone}, #{item.phone},
#{item.showPhone}, #{item.showPhone},
#{item.phoneType}, #{item.phoneType},
#{item.flow}, #{item.flow},
#{item.downloadUrl}, #{item.downloadUrl},
#{item.centerRecordsId} #{item.centerRecordsId}
) )
</foreach> </foreach>
</insert> </insert>
<update id="updateCallRecord"> <update id="updateCallRecord">
UPDATE foc_call_records SET end_status=#{endStatus}, end_time=#{endTime} WHERE id=#{id} UPDATE foc_call_records SET end_status=#{endStatus}, end_time=#{endTime} WHERE id=#{id}
</update> </update>
<!-- 获取通话记录列表 --> <!-- 获取通话记录列表 -->
<select id="getCallRecordList" resultType="com.ejweb.modules.call.entity.CallRecordListEntity"> <select id="getCallRecordList" resultType="com.ejweb.modules.call.entity.CallRecordListEntity">
SELECT SELECT
r.id, r.id,
r.create_by, r.create_by,
r.create_name, r.create_name,
r.create_phone, r.create_phone,
r.call_type, r.call_type,
r.end_status, r.end_status,
r.user_count, r.user_count,
r.start_time, r.start_time,
r.end_time, r.end_time,
p.user_id AS userId, p.user_id AS userId,
p.username, p.username,
p.phone, p.phone,
p.title, p.title,
p.flow, p.flow,
u.photo AS userPhoto, u.photo AS userPhoto,
uu.photo AS createByPhoto, uu.photo AS createByPhoto,
r.download_url r.download_url
FROM foc_sound_phones p FROM foc_sound_phones p
LEFT JOIN sys_user u LEFT JOIN sys_user u
ON p.user_id = u.id ON p.user_id = u.id
LEFT JOIN foc_sound_records r LEFT JOIN foc_sound_records r
ON p.record_id=r.id ON p.record_id=r.id
LEFT JOIN sys_user uu LEFT JOIN sys_user uu
ON r.create_by = uu.id ON r.create_by = uu.id
WHERE r.start_time BETWEEN #{startTime} AND #{endTime} WHERE r.start_time BETWEEN #{startTime} AND #{endTime}
AND (p.user_id=#{userId} OR r.create_by=#{userId}) AND (p.user_id=#{userId} OR r.create_by=#{userId})
AND r.end_status !='INIT' AND r.end_status !='INIT'
ORDER BY r.start_time DESC ORDER BY r.start_time DESC
</select> </select>
<!-- 查重 --> <!-- 查重 -->
<select id="get" resultType="com.ejweb.modules.call.entity.CallRecordListEntity"> <select id="get" resultType="com.ejweb.modules.call.entity.CallRecordListEntity">
SELECT SELECT
r.id, r.id,
r.create_by, r.create_by,
r.create_name, r.create_name,
r.create_phone, r.create_phone,
r.call_type, r.call_type,
r.end_status, r.end_status,
r.user_count, r.user_count,
r.start_time, r.start_time,
r.end_time, r.end_time,
p.user_id AS userId, p.user_id AS userId,
p.username, p.username,
p.phone, p.phone,
p.title, p.title,
p.flow, p.flow,
u.photo AS userPhoto, u.photo AS userPhoto,
uu.photo AS createByPhoto, uu.photo AS createByPhoto,
r.download_url r.download_url
FROM foc_sound_phones p FROM foc_sound_phones p
LEFT JOIN sys_user u LEFT JOIN sys_user u
ON p.user_id = u.id ON p.user_id = u.id
LEFT JOIN foc_sound_records r LEFT JOIN foc_sound_records r
ON p.record_id=r.id ON p.record_id=r.id
LEFT JOIN sys_user uu LEFT JOIN sys_user uu
ON r.create_by = uu.id ON r.create_by = uu.id
WHERE r.end_status !='INIT' WHERE r.end_status !='INIT'
and r.create_name = #{createName} and r.create_name = #{createName}
and p.username = #{username} and p.username = #{username}
and r.start_time &lt;= #{endTime} and r.start_time &lt;= #{endTime}
ORDER BY r.start_time DESC ORDER BY r.start_time DESC
</select> </select>
<!-- 通过通话的电话号查询用户信息 --> <!-- 通过通话的电话号查询用户信息 -->
<select id="findUserByCallPhone" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity"> <select id="findUserByCallPhone" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity">
SELECT a.id AS userId, SELECT a.id AS userId,
a.name, a.name,
a.email, a.email,
a.phone, a.phone,
a.mobile, a.mobile,
a.photo, a.photo,
a.huawei_num, a.huawei_num,
a.full_office_name AS officeFullName, a.full_office_name AS officeFullName,
c.name AS companyName, c.name AS companyName,
o.name AS officeName, o.name AS officeName,
p.duty_name, p.duty_name,
p.sex, p.sex,
a.mobile_nubmer, a.mobile_nubmer,
a.mobile_province, a.mobile_province,
a.mobile_city, a.mobile_city,
a.mobile_sp, a.mobile_sp,
'USER' AS type, 'USER' AS type,
'USER' AS fromType 'USER' AS fromType
FROM sys_user a FROM sys_user a
LEFT JOIN sys_office c LEFT JOIN sys_office c
ON c.id = a.company_id ON c.id = a.company_id
LEFT JOIN sys_office o LEFT JOIN sys_office o
ON o.id = a.office_id ON o.id = a.office_id
LEFT JOIN sys_user_profiles p LEFT JOIN sys_user_profiles p
ON a.id = p.user_id ON a.id = p.user_id
WHERE a.del_flag = '0' WHERE a.del_flag = '0'
AND (a.phone = #{phoneNumer} AND (a.phone = #{phoneNumer}
OR a.huawei_num = #{phoneNumer} OR a.huawei_num = #{phoneNumer}
OR a.mobile = #{phoneNumer} OR a.mobile = #{phoneNumer}
OR a.mobile_nubmer = #{phoneNumer} OR a.mobile_nubmer = #{phoneNumer}
OR a.mobile_nubmer = #{mobileNubmer0} OR a.mobile_nubmer = #{mobileNubmer0}
OR a.mobile_nubmer = #{mobileNubmer00} OR a.mobile_nubmer = #{mobileNubmer00}
OR a.phone_number = #{phoneNumer} OR a.phone_number = #{phoneNumer}
OR a.phone_number = #{mobileNubmer0} OR a.phone_number = #{mobileNubmer0}
OR a.phone_number = #{mobileNubmer00}) OR a.phone_number = #{mobileNubmer00})
ORDER BY a.login_date DESC ORDER BY a.login_date DESC
</select> </select>
<!-- 通过通话的电话号查询席位信息 --> <!-- 通过通话的电话号查询席位信息 -->
<select id="findSeatListByCallPhone" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity"> <select id="findSeatListByCallPhone" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity">
SELECT s.id AS seatId, SELECT s.id AS seatId,
s.id AS userId, s.id AS userId,
t.station_name, t.station_name,
st.type_name, st.type_name,
s.seat_name, s.seat_name,
s.seat_name AS name, s.seat_name AS name,
s.seat_phone, s.seat_phone,
s.seat_phone AS phone, s.seat_phone AS phone,
s.huawei_num, s.huawei_num,
'SEAT' AS type, 'SEAT' AS type,
'SEAT' AS fromType 'SEAT' AS fromType
FROM foc_seats s FROM foc_seats s
LEFT JOIN foc_seat_type st LEFT JOIN foc_seat_type st
ON s.seat_type=st.id ON s.seat_type=st.id
LEFT JOIN foc_station t LEFT JOIN foc_station t
ON st.station_id=t.id ON st.station_id=t.id
WHERE s.huawei_num = #{phoneNumer} WHERE s.huawei_num = #{phoneNumer}
OR s.seat_phone = #{phoneNumer} OR s.seat_phone = #{phoneNumer}
OR s.seat_phone_number = #{phoneNumer} OR s.seat_phone_number = #{phoneNumer}
</select> </select>
<select id="findUserInfoByNumOrId" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity"> <select id="findUserInfoByNumOrId" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity">
SELECT s.id AS userId, SELECT s.id AS userId,
s.seat_name AS name, s.seat_name AS name,
s.seat_phone AS phone, s.seat_phone AS phone,
s.huawei_num, s.huawei_num,
'SEAT' AS type 'SEAT' AS type
FROM foc_seats s FROM foc_seats s
WHERE s.huawei_num = #{phoneNumer} WHERE s.huawei_num = #{phoneNumer}
OR s.id = #{userId} OR s.id = #{userId}
UNION UNION
SELECT a.id AS userId, SELECT a.id AS userId,
a.name, a.name,
a.phone, a.phone,
a.huawei_num, a.huawei_num,
'USER' AS type 'USER' AS type
FROM sys_user a FROM sys_user a
WHERE a.huawei_num = #{phoneNumer} WHERE a.huawei_num = #{phoneNumer}
OR a.id = #{userId} OR a.id = #{userId}
LIMIT 1 LIMIT 1
</select> </select>
<!-- 通过通话记录获取来电人信息 --> <!-- 通过通话记录获取来电人信息 -->
<select id="findUserByCallRecord" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity"> <select id="findUserByCallRecord" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity">
SELECT a.`id`, SELECT a.`id`,
a.`create_name` AS name, a.`create_name` AS name,
a.`create_phone`, a.`create_phone`,
a.create_by AS userId, a.create_by AS userId,
a.create_by AS seatId, a.create_by AS seatId,
IF(u.id, 'USER', 'SEAT') AS type, IF(u.id, 'USER', 'SEAT') AS type,
IF(u.id, u.phone_number, s.seat_phone_number) AS phone_number, IF(u.id, u.phone_number, s.seat_phone_number) AS phone_number,
IF(u.id, u.photo, su.photo) AS photo, IF(u.id, u.photo, su.photo) AS photo,
s.seat_name, s.seat_name,
a.`start_time`, a.`start_time`,
'RECORD' AS fromType 'RECORD' AS fromType
FROM `foc_sound_records` a FROM `foc_sound_records` a
LEFT JOIN sys_user u LEFT JOIN sys_user u
ON a.create_by=u.id ON a.create_by=u.id
LEFT JOIN foc_seats s LEFT JOIN foc_seats s
ON a.create_by=s.id ON a.create_by=s.id
LEFT JOIN sys_user su LEFT JOIN sys_user su
ON s.login_id=su.id ON s.login_id=su.id
WHERE a.`start_time` BETWEEN #{startTime} AND #{endTime} WHERE a.`start_time` BETWEEN #{startTime} AND #{endTime}
AND a.end_status !='INIT' AND a.end_status !='INIT'
HAVING phone_number=#{phoneNumer} OR create_phone= #{phoneNumer} HAVING phone_number=#{phoneNumer} OR create_phone= #{phoneNumer}
ORDER BY start_time DESC ORDER BY start_time DESC
LIMIT 1 LIMIT 1
</select> </select>
<!-- 通过通话的电话号查询席位信息 --> <!-- 通过通话的电话号查询席位信息 -->
<select id="getPhoneAreaByAreaCode" resultType="com.ejweb.modules.call.entity.CallPhoneAreaEntity"> <select id="getPhoneAreaByAreaCode" resultType="com.ejweb.modules.call.entity.CallPhoneAreaEntity">
SELECT * FROM `foc_phone_area` WHERE `area_code`=#{areaCode} SELECT * FROM `foc_phone_area` WHERE `area_code`=#{areaCode}
</select> </select>
<!-- 通过手机查询 --> <!-- 通过手机查询 -->
<select id="getPhoneAreaByMobile" resultType="com.ejweb.modules.call.entity.CallPhoneAreaEntity"> <select id="getPhoneAreaByMobile" resultType="com.ejweb.modules.call.entity.CallPhoneAreaEntity">
SELECT * FROM `foc_phone_area_records` a SELECT * FROM `foc_phone_area_records` a
WHERE a.mobile=#{mobile} WHERE a.mobile=#{mobile}
OR a.mobile_nubmer=#{mobileNubmer0} OR a.mobile_nubmer=#{mobileNubmer0}
OR a.mobile_nubmer=#{mobileNubmer00} OR a.mobile_nubmer=#{mobileNubmer00}
OR a.mobile_nubmer=#{mobileNubmer000} OR a.mobile_nubmer=#{mobileNubmer000}
ORDER BY update_date DESC ORDER BY update_date DESC
LIMIT 1 LIMIT 1
</select> </select>
<!-- 添加查询记录 --> <!-- 添加查询记录 -->
<insert id="addPhoneAreaCode"> <insert id="addPhoneAreaCode">
INSERT INTO foc_phone_area( INSERT INTO foc_phone_area(
area_code, area_code,
premobile, premobile,
mobile_province, mobile_province,
mobile_city, mobile_city,
mobile_sp, mobile_sp,
type type
) VALUE ( ) VALUE (
#{areaCode}, #{areaCode},
#{premobile}, #{premobile},
#{mobileProvince}, #{mobileProvince},
#{mobileCity}, #{mobileCity},
#{mobileSp}, #{mobileSp},
#{type} #{type}
) )
ON DUPLICATE KEY UPDATE premobile=VALUES(premobile), ON DUPLICATE KEY UPDATE premobile=VALUES(premobile),
mobile_province=VALUES(mobile_province), mobile_province=VALUES(mobile_province),
mobile_city=VALUES(mobile_city) mobile_city=VALUES(mobile_city)
</insert> </insert>
<!-- 添加查询记录 --> <!-- 添加查询记录 -->
<insert id="addPhoneAreaRecord"> <insert id="addPhoneAreaRecord">
INSERT INTO foc_phone_area_records( INSERT INTO foc_phone_area_records(
id, id,
mobile, mobile,
mobile_nubmer, mobile_nubmer,
premobile, premobile,
mobile_province, mobile_province,
mobile_city, mobile_city,
mobile_sp, mobile_sp,
type, type,
update_date update_date
) VALUE ( ) VALUE (
#{id}, #{id},
#{mobile}, #{mobile},
#{mobileNubmer}, #{mobileNubmer},
#{premobile}, #{premobile},
#{mobileProvince}, #{mobileProvince},
#{mobileCity}, #{mobileCity},
#{mobileSp}, #{mobileSp},
#{type}, #{type},
#{updateDate} #{updateDate}
) )
</insert> </insert>
<!-- 添加安科的录音记录 --> <!-- 添加安科的录音记录 -->
<insert id="addSoundRecord"> <insert id="addSoundRecord">
INSERT INTO foc_callcenter_records( INSERT INTO foc_callcenter_records(
id, id,
call_no, call_no,
accept_no, accept_no,
begin_time, begin_time,
end_time, end_time,
result, result,
duration, duration,
download_url, download_url,
download_size, download_size,
current, current,
current_time_millis, current_time_millis,
channel_type, channel_type,
call_record_id, call_record_id,
foc_begin_time, foc_begin_time,
foc_end_time, foc_end_time,
foc_time_millis, foc_time_millis,
foc_diff_millis, foc_diff_millis,
create_date create_date
) VALUE ( ) VALUE (
#{id}, #{id},
#{callNo}, #{callNo},
#{acceptNo}, #{acceptNo},
#{beginTime}, #{beginTime},
#{endTime}, #{endTime},
#{result}, #{result},
#{duration}, #{duration},
#{downloadUrl}, #{downloadUrl},
#{downloadSize}, #{downloadSize},
#{current}, #{current},
#{currentTimeMillis}, #{currentTimeMillis},
#{channelType}, #{channelType},
#{callRecordId}, #{callRecordId},
#{focBeginTime}, #{focBeginTime},
#{focEndTime}, #{focEndTime},
#{focTimeMillis}, #{focTimeMillis},
#{focDiffMillis}, #{focDiffMillis},
#{createDate} #{createDate}
) )
</insert> </insert>
<!-- 安科记录 --> <!-- 安科记录 -->
<select id="getCallSoundList" resultType="com.ejweb.modules.call.entity.CallRecordListEntity"> <select id="getCallSoundList" resultType="com.ejweb.modules.call.entity.CallRecordListEntity">
SELECT * SELECT *
FROM ( FROM (
SELECT SELECT
r.create_by, r.create_by,
r.create_name, r.create_name,
r.create_phone, r.create_phone,
r.call_type, r.call_type,
r.end_status, r.end_status,
r.user_count, r.user_count,
r.start_time, r.start_time,
r.end_time, r.end_time,
r.create_by AS userId, r.create_by AS userId,
r.create_name AS username, r.create_name AS username,
r.create_phone AS phone, r.create_phone AS phone,
CONCAT('由', r.create_name, '发起电话会议') AS title, CONCAT('由', r.create_name, '发起电话会议') AS title,
'CALLING' AS flow, 'CALLING' AS flow,
u.photo AS userPhoto, u.photo AS userPhoto,
u.photo AS createByPhoto u.photo AS createByPhoto
FROM foc_sound_records r FROM foc_sound_records r
LEFT JOIN sys_user u LEFT JOIN sys_user u
ON r.create_by = u.id ON r.create_by = u.id
WHERE r.start_time BETWEEN #{startTime} AND #{endTime} WHERE r.start_time BETWEEN #{startTime} AND #{endTime}
AND r.end_status !='INIT' AND r.end_status !='INIT'
AND r.create_by=#{userId} AND r.create_by=#{userId}
AND r.call_type='GROUP' AND r.call_type='GROUP'
ORDER BY r.start_time DESC ORDER BY r.start_time DESC
UNION UNION
SELECT SELECT
r.create_by, r.create_by,
r.create_name, r.create_name,
r.create_phone, r.create_phone,
r.call_type, r.call_type,
r.end_status, r.end_status,
r.user_count, r.user_count,
r.start_time, r.start_time,
r.end_time, r.end_time,
p.user_id AS userId, p.user_id AS userId,
p.username, p.username,
p.phone, p.phone,
p.title, p.title,
p.flow, p.flow,
u.photo AS userPhoto, u.photo AS userPhoto,
uu.photo AS createByPhoto uu.photo AS createByPhoto
FROM foc_sound_phones p FROM foc_sound_phones p
LEFT JOIN sys_user u LEFT JOIN sys_user u
ON p.user_id = u.id ON p.user_id = u.id
LEFT JOIN foc_sound_records r LEFT JOIN foc_sound_records r
ON p.record_id=r.id ON p.record_id=r.id
LEFT JOIN sys_user uu LEFT JOIN sys_user uu
ON r.create_by = uu.id ON r.create_by = uu.id
WHERE r.start_time BETWEEN #{startTime} AND #{endTime} WHERE r.start_time BETWEEN #{startTime} AND #{endTime}
AND (p.user_id=#{userId} OR r.create_by=#{userId}) AND (p.user_id=#{userId} OR r.create_by=#{userId})
AND p.phone_type != 'HWNUBMER' AND p.phone_type != 'HWNUBMER'
AND r.end_status !='INIT' AND r.end_status !='INIT'
AND r.call_type='USER' AND r.call_type='USER'
ORDER BY r.start_time DESC ORDER BY r.start_time DESC
) t ) t
ORDER BY t.start_time DESC ORDER BY t.start_time DESC
</select> </select>
<!-- 通过华为号码查询用户信息 --> <!-- 通过华为号码查询用户信息 -->
<select id="findPhneListByHuaweiNum" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity"> <select id="findPhneListByHuaweiNum" resultType="com.ejweb.modules.call.entity.CallPhoneInfoListEntity">
SELECT s.id AS userId, SELECT s.id AS userId,
s.seat_name AS name, s.seat_name AS name,
s.seat_phone AS phone, s.seat_phone AS phone,
s.huawei_num, s.huawei_num,
'SEAT' AS type, 'SEAT' AS type,
'' AS mobile '' AS mobile
FROM foc_seats s FROM foc_seats s
WHERE s.huawei_num IN WHERE s.huawei_num IN
<foreach collection="huweiNumList" open="(" close=")" separator="," item="item"> <foreach collection="huweiNumList" open="(" close=")" separator="," item="item">
#{item} #{item}
</foreach> </foreach>
UNION UNION
SELECT a.id AS userId, SELECT a.id AS userId,
a.name, a.name,
a.phone, a.phone,
a.huawei_num, a.huawei_num,
'USER' AS type, 'USER' AS type,
a.mobile a.mobile
FROM sys_user a FROM sys_user a
WHERE a.huawei_num IN WHERE a.huawei_num IN
<foreach collection="huweiNumList" open="(" close=")" separator="," item="item"> <foreach collection="huweiNumList" open="(" close=")" separator="," item="item">
#{item} #{item}
</foreach> </foreach>
</select> </select>
<select id="GetPhoneById" resultType="String"> <select id="GetPhoneById" resultType="String">
SELECT SELECT
CASE WHEN phone_number is not null AND LENGTH(phone_number) >0 THEN phone_number CASE WHEN phone_number is not null AND LENGTH(phone_number) >0 THEN phone_number
WHEN mobile is not null AND LENGTH(mobile) >0 THEN mobile WHEN mobile is not null AND LENGTH(mobile) >0 THEN mobile
END mobile END mobile
FROM sys_user u FROM sys_user u
WHERE id=#{userId} WHERE id=#{userId}
UNION UNION
SELECT seat_phone_number FROM foc_seats s SELECT seat_phone_number FROM foc_seats s
WHERE id=#{userId} WHERE id=#{userId}
limit 1 limit 1
</select> </select>
<select id="getMemberList" resultType="com.ejweb.modules.call.entity.MemberEntity"> <select id="getMemberList" resultType="com.ejweb.modules.call.entity.MemberEntity">
SELECT p.user_id AS userCode,p.username,p.phone, SELECT p.user_id AS userCode,p.username,p.phone,
IFNULL(s.photo,u.photo) AS userPhoto IFNULL(s.photo,u.photo) AS userPhoto
FROM foc_sound_phones p FROM foc_sound_phones p
LEFT JOIN sys_user u on p.user_id=u.id LEFT JOIN sys_user u on p.user_id=u.id
LEFT JOIN foc_seats s on p.user_id=s.id LEFT JOIN foc_seats s on p.user_id=s.id
WHERE p.record_id=#{recordId} WHERE p.record_id=#{recordId}
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -78,4 +78,5 @@ public class RequestBean { ...@@ -78,4 +78,5 @@ public class RequestBean {
public String toString() { public String toString() {
return JSON.toJSONString(this); return JSON.toJSONString(this);
} }
} }
...@@ -111,6 +111,7 @@ public class BasicVerifyFilter implements Filter { ...@@ -111,6 +111,7 @@ public class BasicVerifyFilter implements Filter {
if (content != null) { if (content != null) {
message = "无效请求"; message = "无效请求";
BaseUserBean baseUserBean = JSON.parseObject(content, BaseUserBean.class); BaseUserBean baseUserBean = JSON.parseObject(content, BaseUserBean.class);
// BaseUserBean baseUserBean = JSON.parseObject("{\"userSign\":\"1000849147\"}", BaseUserBean.class); //测试使用
String userSign = baseUserBean.getUserSign(); String userSign = baseUserBean.getUserSign();
if (userSign != null && !"".equals(userSign) && !"undefind".equals(userSign)) { if (userSign != null && !"".equals(userSign) && !"undefind".equals(userSign)) {
ServletContext context = request.getServletContext(); ServletContext context = request.getServletContext();
...@@ -161,4 +162,8 @@ public class BasicVerifyFilter implements Filter { ...@@ -161,4 +162,8 @@ public class BasicVerifyFilter implements Filter {
} }
} }
} }
public static void main(String[] args) {
System.out.println(1638349534590L-1638349534589L);
}
} }
...@@ -12,7 +12,9 @@ import com.ejweb.modules.airport.entity.OilAnalysisEntity; ...@@ -12,7 +12,9 @@ import com.ejweb.modules.airport.entity.OilAnalysisEntity;
import com.ejweb.modules.airport.service.OilAnalysisService; import com.ejweb.modules.airport.service.OilAnalysisService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -33,6 +35,9 @@ public class OilAnalysisController { ...@@ -33,6 +35,9 @@ public class OilAnalysisController {
PageEntity<OilAnalysisEntity> list = null; PageEntity<OilAnalysisEntity> list = null;
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
OilAnalysisBean bean = requestBean.getObjectBean(OilAnalysisBean.class); OilAnalysisBean bean = requestBean.getObjectBean(OilAnalysisBean.class);
// OilAnalysisBean bean =new OilAnalysisBean(); //测试使用
// bean.setPageNo(20);
// bean.setPageSize(10);
list = oilAnalysisService.getAnalysisData(bean, true); list = oilAnalysisService.getAnalysisData(bean, true);
if (list == null) { if (list == null) {
responseBean.setMessage(GConstants.EMPTY); responseBean.setMessage(GConstants.EMPTY);
...@@ -46,6 +51,7 @@ public class OilAnalysisController { ...@@ -46,6 +51,7 @@ public class OilAnalysisController {
return responseBean; return responseBean;
} }
@RequestMapping(value = "/oilAnalysisExport") @RequestMapping(value = "/oilAnalysisExport")
public ResponseBean newExport(RequestBean requestBean, HttpServletResponse response) { public ResponseBean newExport(RequestBean requestBean, HttpServletResponse response) {
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
...@@ -59,6 +65,7 @@ public class OilAnalysisController { ...@@ -59,6 +65,7 @@ public class OilAnalysisController {
String fileName = "油量分析统计(油量单位:KGS).xlsx"; String fileName = "油量分析统计(油量单位:KGS).xlsx";
try { try {
new ExportExcel("油量分析统计(油量单位:KGS)", OilAnalysisEntity.class).setDataList(list).write(response, fileName).dispose(); new ExportExcel("油量分析统计(油量单位:KGS)", OilAnalysisEntity.class).setDataList(list).write(response, fileName).dispose();
// new ExportExcel("油量分析统计(油量单位:KGS)", OilAnalysisEntity.class).setDataList(list).writeFile("D:\\"+fileName).dispose();
} catch (IOException e) { } catch (IOException e) {
responseBean.setMessage("导出数据失败" + e.getMessage()); responseBean.setMessage("导出数据失败" + e.getMessage());
return responseBean; return responseBean;
......
...@@ -12,4 +12,7 @@ public interface OilAnalysisDao extends BaseDao { ...@@ -12,4 +12,7 @@ public interface OilAnalysisDao extends BaseDao {
// 查询油量分析数据 // 查询油量分析数据
List<OilAnalysisEntity> getOilAnalysisData(OilAnalysisBean bean); List<OilAnalysisEntity> getOilAnalysisData(OilAnalysisBean bean);
// 导出查询油量分析数据
List<OilAnalysisEntity> getExcelOilAnalysisData(OilAnalysisBean bean);
} }
...@@ -79,11 +79,112 @@ public class OilAnalysisEntity { ...@@ -79,11 +79,112 @@ public class OilAnalysisEntity {
@ExcelField(title="数据更新时间", type=0, align=1, sort=50 ) @ExcelField(title="数据更新时间", type=0, align=1, sort=50 )
private String updateTime; // 数据更新时间 private String updateTime; // 数据更新时间
@ExcelField(title="航线耗油", type=0, align=1, sort=51 )
private String airlineOil; // 航线耗油
@ExcelField(title="签派放行备注", type=0, align=1, sort=52 )
private String remarkMsg; // 签派放行备注
@ExcelField(title="目的机场到第一备降所需油量", type=0, align=1, sort=53 )
private String alt1Fuel; // 目的机场到第一备降所需油量
@ExcelField(title="目的机场到第一备降所需时间", type=0, align=1, sort=54 )
private String alt1Time; // 目的机场到第一备降所需时间
@ExcelField(title="目的机场到第一备降距离", type=0, align=1, sort=55 )
private String alt1Distance; // 目的机场到第一备降距离
@ExcelField(title="目的机场到第二备降所需油量", type=0, align=1, sort=56 )
private String alt2Fuel; // 目的机场到第二备降所需油量
@ExcelField(title="目的机场到第二备降所需时间", type=0, align=1, sort=57 )
private String alt2Time; // 目的机场到第二备降所需时间
@ExcelField(title="目的机场到第二备降距离", type=0, align=1, sort=58 )
private String alt2Distance; // 目的机场到第二备降距离
@ExcelField(title="巡航高度", type=0, align=1, sort=59 )
private String cruisingAltitude; // 巡航高度
@ExcelField(title="EET", type=0, align=1, sort=60 )
private String eeT; // EET
private String updateDate; // 数据更新时间 private String updateDate; // 数据更新时间
private String extraOilFuelReason; // 额外油加注原因 private String extraOilFuelReason; // 额外油加注原因
private String totalOil; // 总油量 private String totalOil; // 总油量
private String std; // 计划起飞时间 private String std; // 计划起飞时间
public String getAirlineOil() {
return airlineOil;
}
public void setAirlineOil(String airlineOil) {
this.airlineOil = airlineOil;
}
public String getRemarkMsg() {
return remarkMsg;
}
public void setRemarkMsg(String remarkMsg) {
this.remarkMsg = remarkMsg;
}
public String getAlt1Fuel() {
return alt1Fuel;
}
public void setAlt1Fuel(String alt1Fuel) {
this.alt1Fuel = alt1Fuel;
}
public String getAlt1Time() {
return alt1Time;
}
public void setAlt1Time(String alt1Time) {
this.alt1Time = alt1Time;
}
public String getAlt1Distance() {
return alt1Distance;
}
public void setAlt1Distance(String alt1Distance) {
this.alt1Distance = alt1Distance;
}
public String getAlt2Fuel() {
return alt2Fuel;
}
public void setAlt2Fuel(String alt2Fuel) {
this.alt2Fuel = alt2Fuel;
}
public String getAlt2Time() {
return alt2Time;
}
public void setAlt2Time(String alt2Time) {
this.alt2Time = alt2Time;
}
public String getAlt2Distance() {
return alt2Distance;
}
public void setAlt2Distance(String alt2Distance) {
this.alt2Distance = alt2Distance;
}
public String getCruisingAltitude() {
return cruisingAltitude;
}
public void setCruisingAltitude(String cruisingAltitude) {
this.cruisingAltitude = cruisingAltitude;
}
public String getEeT() {
return eeT;
}
public void setEeT(String eET) {
this.eeT = eET;
}
public String getDepIcaoId() { public String getDepIcaoId() {
return depIcaoId; return depIcaoId;
} }
......
...@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Service @Service
...@@ -19,6 +20,8 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> { ...@@ -19,6 +20,8 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> {
@Autowired @Autowired
protected OilAnalysisDao oilAnalysisDao; protected OilAnalysisDao oilAnalysisDao;
public PageEntity<OilAnalysisEntity> getAnalysisData(OilAnalysisBean bean, Boolean isPage) { public PageEntity<OilAnalysisEntity> getAnalysisData(OilAnalysisBean bean, Boolean isPage) {
if (isPage == true) { if (isPage == true) {
...@@ -36,9 +39,12 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> { ...@@ -36,9 +39,12 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> {
} }
PageInfo<OilAnalysisEntity> pageInfo = null; PageInfo<OilAnalysisEntity> pageInfo = null;
List<OilAnalysisEntity> oilAnalysisEntityList =null;
List<OilAnalysisEntity> oilAnalysisEntityList = oilAnalysisDao.getOilAnalysisData(bean); if(isPage){
oilAnalysisEntityList= oilAnalysisDao.getOilAnalysisData(bean);
}else{
oilAnalysisEntityList = oilAnalysisDao.getExcelOilAnalysisData(bean);
}
for (OilAnalysisEntity oilAnalysisEntity : oilAnalysisEntityList) { for (OilAnalysisEntity oilAnalysisEntity : oilAnalysisEntityList) {
int index = oilAnalysisEntityList.indexOf(oilAnalysisEntity); int index = oilAnalysisEntityList.indexOf(oilAnalysisEntity);
oilAnalysisEntity.setNo(index + 1); oilAnalysisEntity.setNo(index + 1);
...@@ -140,5 +146,4 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> { ...@@ -140,5 +146,4 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> {
} }
} }
package com.ejweb.modules.call.api; package com.ejweb.modules.call.api;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.ejweb.core.api.RequestBean; import com.ejweb.core.api.RequestBean;
import com.ejweb.core.api.ResponseBean; import com.ejweb.core.api.ResponseBean;
import com.ejweb.core.base.PageEntity; import com.ejweb.core.base.PageEntity;
import com.ejweb.core.conf.ErrorCode; import com.ejweb.core.conf.ErrorCode;
import com.ejweb.core.conf.GConstants; import com.ejweb.core.conf.GConstants;
import com.ejweb.core.util.IdWorker; import com.ejweb.core.util.IdWorker;
import com.ejweb.core.util.Util; import com.ejweb.core.util.Util;
import com.ejweb.modules.call.bean.CallFindPhoneInfoBean; import com.ejweb.modules.call.bean.CallFindPhoneInfoBean;
import com.ejweb.modules.call.bean.CallLogListBean; import com.ejweb.modules.call.bean.CallLogListBean;
import com.ejweb.modules.call.bean.CallPhoneAreaBean; import com.ejweb.modules.call.bean.CallPhoneAreaBean;
import com.ejweb.modules.call.bean.CallPhoneBean; import com.ejweb.modules.call.bean.CallPhoneBean;
import com.ejweb.modules.call.bean.CallRecordBean; import com.ejweb.modules.call.bean.CallRecordBean;
import com.ejweb.modules.call.bean.CallRecordListBean; import com.ejweb.modules.call.bean.CallRecordListBean;
import com.ejweb.modules.call.entity.CallListEntity; import com.ejweb.modules.call.entity.CallListEntity;
import com.ejweb.modules.call.entity.CallPhoneAreaEntity; import com.ejweb.modules.call.entity.CallPhoneAreaEntity;
import com.ejweb.modules.call.entity.CallPhoneInfoListEntity; import com.ejweb.modules.call.entity.CallPhoneInfoListEntity;
import com.ejweb.modules.call.entity.CallRecordEntity; import com.ejweb.modules.call.entity.CallRecordEntity;
import com.ejweb.modules.call.entity.CallRecordListEntity; import com.ejweb.modules.call.entity.CallRecordListEntity;
import com.ejweb.modules.call.entity.CallSoundRecordBean; import com.ejweb.modules.call.entity.CallSoundRecordBean;
import com.ejweb.modules.call.entity.MemberEntity; import com.ejweb.modules.call.entity.MemberEntity;
import com.ejweb.modules.call.service.CallService; import com.ejweb.modules.call.service.CallService;
import com.ejweb.modules.user.entity.User; import com.ejweb.modules.user.entity.User;
import com.ejweb.modules.user.entity.UserEntity; import com.ejweb.modules.user.entity.UserEntity;
import com.ejweb.modules.user.entity.UserSeatEntity; import com.ejweb.modules.user.entity.UserSeatEntity;
import com.ejweb.modules.user.service.UserService; import com.ejweb.modules.user.service.UserService;
/** /**
* 电话会议记录及查询 * 电话会议记录及查询
* *
* @team IT Team * @team IT Team
* @author renmb * @author renmb
* @version 1.0 * @version 1.0
* @time 2016年10月6日 * @time 2016年10月6日
*/ */
@Controller @Controller
@RequestMapping(value = "/api/call") @RequestMapping(value = "/api/call")
public class CallController { public class CallController {
@Autowired @Autowired
private CallService callService; private CallService callService;
@Autowired @Autowired
private UserService userService; private UserService userService;
/** /**
* 批量查询电话号码列表 * 批量查询电话号码列表
* *
* @author renmb * @author renmb
* @time 2017年1月22日 * @time 2017年1月22日
* @param requestBean * @param requestBean
* @return * @return
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "/phoneAreaList") @RequestMapping(value = "/phoneAreaList")
public ResponseBean phoneAreaList(RequestBean requestBean) { public ResponseBean phoneAreaList(RequestBean requestBean) {
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
CallPhoneAreaBean bean = requestBean.getObjectBean(CallPhoneAreaBean.class); CallPhoneAreaBean bean = requestBean.getObjectBean(CallPhoneAreaBean.class);
String message = this.callService.validate(bean); String message = this.callService.validate(bean);
List<CallPhoneAreaEntity> searchPhoneList = bean.getCallPhoneList(); List<CallPhoneAreaEntity> searchPhoneList = bean.getCallPhoneList();
if(message == null && searchPhoneList !=null && searchPhoneList.size()>0){ if(message == null && searchPhoneList !=null && searchPhoneList.size()>0){
List<CallPhoneAreaEntity> callPhoneList = new ArrayList<CallPhoneAreaEntity>(); List<CallPhoneAreaEntity> callPhoneList = new ArrayList<CallPhoneAreaEntity>();
for (CallPhoneAreaEntity phone:searchPhoneList) { for (CallPhoneAreaEntity phone:searchPhoneList) {
CallPhoneAreaEntity callPhone = callService.addPhoneArea(phone.getMobile()); CallPhoneAreaEntity callPhone = callService.addPhoneArea(phone.getMobile());
if(callPhone == null){// 未查询到相关数据 if(callPhone == null){// 未查询到相关数据
callPhone = new CallPhoneAreaEntity(); callPhone = new CallPhoneAreaEntity();
} }
callPhone.setMobile(phone.getMobile()); callPhone.setMobile(phone.getMobile());
callPhone.setShowPhone(phone.getMobile()); callPhone.setShowPhone(phone.getMobile());
if("PHONE".equals(callPhone.getType())){ if("PHONE".equals(callPhone.getType())){
callPhone.setMobileNubmer(callPhone.getPhone()); callPhone.setMobileNubmer(callPhone.getPhone());
callPhone.setShowPhone(callPhone.getShowPhone()); callPhone.setShowPhone(callPhone.getShowPhone());
} else if("MOBILE".equals(callPhone.getType())){ } else if("MOBILE".equals(callPhone.getType())){
callPhone.setShowPhone(callPhone.getMobile()); callPhone.setShowPhone(callPhone.getMobile());
callPhone.setPhone(callPhone.getMobileNubmer()); callPhone.setPhone(callPhone.getMobileNubmer());
} }
callPhoneList.add(callPhone); callPhoneList.add(callPhone);
} }
responseBean.setData(callPhoneList); responseBean.setData(callPhoneList);
responseBean.setMessage(GConstants.OK); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
responseBean.setMessage(message); responseBean.setMessage(message);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean; return responseBean;
} }
/** /**
* 格式化手机号码 * 格式化手机号码
* 42.4 查询手机归属地信息接口 * 42.4 查询手机归属地信息接口
* *
* @author renmb * @author renmb
* @time 2016年12月6日 * @time 2016年12月6日
* @param requestBean * @param requestBean
* @return * @return
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "/phoneArea") @RequestMapping(value = "/phoneArea")
public ResponseBean phoneArea(RequestBean requestBean) { public ResponseBean phoneArea(RequestBean requestBean) {
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
CallPhoneAreaBean bean = requestBean.getObjectBean(CallPhoneAreaBean.class); CallPhoneAreaBean bean = requestBean.getObjectBean(CallPhoneAreaBean.class);
String message = this.callService.validate(bean); String message = this.callService.validate(bean);
CallPhoneAreaEntity callPhone = new CallPhoneAreaEntity(); CallPhoneAreaEntity callPhone = new CallPhoneAreaEntity();
if(message == null){ if(message == null){
callPhone.setPhone(bean.getPhone()); callPhone.setPhone(bean.getPhone());
callPhone.setMobile(bean.getMobile()); callPhone.setMobile(bean.getMobile());
// 格式化手机号 // 格式化手机号
if(StringUtils.isNotBlank(bean.getMobile())){ if(StringUtils.isNotBlank(bean.getMobile())){
String mobile = bean.getMobile(); String mobile = bean.getMobile();
// 只使用第一个手机号 // 只使用第一个手机号
String[] species = mobile.split("\\s+"); String[] species = mobile.split("\\s+");
if(species.length>1 && species[0].matches("1\\d+") && species[1].matches("1\\d+")){ if(species.length>1 && species[0].matches("1\\d+") && species[1].matches("1\\d+")){
mobile = species[0]; mobile = species[0];
} }
callPhone = callService.addPhoneArea(mobile); callPhone = callService.addPhoneArea(mobile);
// 未查询到相关数据 // 未查询到相关数据
if(callPhone == null){ if(callPhone == null){
callPhone = new CallPhoneAreaEntity(); callPhone = new CallPhoneAreaEntity();
} }
callPhone.setMobile(bean.getMobile()); callPhone.setMobile(bean.getMobile());
} }
if(StringUtils.isNotBlank(bean.getPhone())){ if(StringUtils.isNotBlank(bean.getPhone())){
callPhone.setShowPhone(bean.getPhone()); callPhone.setShowPhone(bean.getPhone());
callPhone.setPhone(Util.formatedWorkPhone(bean.getPhone())); callPhone.setPhone(Util.formatedWorkPhone(bean.getPhone()));
callPhone.setType("PHONE"); callPhone.setType("PHONE");
} }
if("PHONE".equals(callPhone.getType())){ if("PHONE".equals(callPhone.getType())){
callPhone.setMobileNubmer(callPhone.getPhone()); callPhone.setMobileNubmer(callPhone.getPhone());
callPhone.setShowPhone(callPhone.getShowPhone()); callPhone.setShowPhone(callPhone.getShowPhone());
} else if("MOBILE".equals(callPhone.getType())){ } else if("MOBILE".equals(callPhone.getType())){
callPhone.setShowPhone(callPhone.getMobile()); callPhone.setShowPhone(callPhone.getMobile());
callPhone.setPhone(callPhone.getMobileNubmer()); callPhone.setPhone(callPhone.getMobileNubmer());
} }
responseBean.setMessage(GConstants.OK); responseBean.setMessage(GConstants.OK);
responseBean.setData(callPhone); responseBean.setData(callPhone);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
responseBean.setMessage(message); responseBean.setMessage(message);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean; return responseBean;
} }
/** /**
* 42.1 开始会话提交接口,在发起人拨打电话时调用 * 42.1 开始会话提交接口,在发起人拨打电话时调用
* *
* @author renmb * @author renmb
* @time 2016年10月6日 * @time 2016年10月6日
* @param requestBean * @param requestBean
* @return * @return
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "/start") @RequestMapping(value = "/start")
public ResponseBean start(RequestBean requestBean) { public ResponseBean start(RequestBean requestBean) {
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
CallRecordBean bean = requestBean.getObjectBean(CallRecordBean.class); CallRecordBean bean = requestBean.getObjectBean(CallRecordBean.class);
String message = callService.validate(bean); String message = callService.validate(bean);
if (message == null) {// 校验通过 if (message == null) {// 校验通过
List<CallPhoneBean> phoneList = bean.getPhoneList(); List<CallPhoneBean> phoneList = bean.getPhoneList();
int userCount = phoneList.size()+1; int userCount = phoneList.size()+1;
CallRecordEntity record = new CallRecordEntity(); CallRecordEntity record = new CallRecordEntity();
record.setCallType(bean.getCallType()); record.setCallType(bean.getCallType());
record.setCreateBy(bean.getCreateBy()); record.setCreateBy(bean.getCreateBy());
if(StringUtils.isEmpty(bean.getCreateName())){ if(StringUtils.isEmpty(bean.getCreateName())){
String name = callService.getNameByPhoneFromSeat(bean.getCreatePhone()); String name = callService.getNameByPhoneFromSeat(bean.getCreatePhone());
if (name != null) { if (name != null) {
record.setCreateName(name); record.setCreateName(name);
} else { } else {
name = callService.getNameByPhone(bean.getCreatePhone()); name = callService.getNameByPhone(bean.getCreatePhone());
if (name != null) { if (name != null) {
record.setCreateName(name); record.setCreateName(name);
} else { } else {
record.setCreateName(bean.getCreatePhone()); record.setCreateName(bean.getCreatePhone());
} }
} }
}else{ }else{
record.setCreateName(bean.getCreateName()); record.setCreateName(bean.getCreateName());
} }
// record.setCreateName(StringUtils.isEmpty(bean.getCreateName()) ? bean.getCreatePhone() : bean.getCreateName()); // record.setCreateName(StringUtils.isEmpty(bean.getCreateName()) ? bean.getCreatePhone() : bean.getCreateName());
record.setEndStatus(bean.getEndStatus()); record.setEndStatus(bean.getEndStatus());
record.setId(IdWorker.getNextId()); record.setId(IdWorker.getNextId());
record.setChannelType(bean.getChannelType()); record.setChannelType(bean.getChannelType());
record.setStartTime(new Date()); record.setStartTime(new Date());
record.setAppCode(bean.getAppCode()); record.setAppCode(bean.getAppCode());
record.setPlatform(bean.getPlatform()); record.setPlatform(bean.getPlatform());
record.setVersionName(bean.getVersionName()); record.setVersionName(bean.getVersionName());
if("APP".equals(bean.getChannelType()) == false){// 通过系统拨打的电话记录 if("APP".equals(bean.getChannelType()) == false){// 通过系统拨打的电话记录
if(bean.getStartTime() != null){ if(bean.getStartTime() != null){
record.setStartTime(bean.getStartTime()); record.setStartTime(bean.getStartTime());
} }
} }
record.setUserCount(userCount); record.setUserCount(userCount);
record.setCreatePhone(bean.getCreatePhone()); record.setCreatePhone(bean.getCreatePhone());
record.setCreateShowPhone(bean.getCreateShowPhone()); record.setCreateShowPhone(bean.getCreateShowPhone());
record.setPhoneType(Util.getPhoneType(bean.getCreatePhone())); record.setPhoneType(Util.getPhoneType(bean.getCreatePhone()));
callService.createCallRecord(record);// 添加主记录 callService.createCallRecord(record);// 添加主记录
for (CallPhoneBean phone : phoneList) { for (CallPhoneBean phone : phoneList) {
phone.setId(IdWorker.getNextId()); phone.setId(IdWorker.getNextId());
phone.setPhoneType(Util.getPhoneType(phone.getPhone())); phone.setPhoneType(Util.getPhoneType(phone.getPhone()));
phone.setRecordId(record.getId()); phone.setRecordId(record.getId());
if ("GROUP".equals(record.getCallType())) {// 群组聊天的时候记录标题 if ("GROUP".equals(record.getCallType())) {// 群组聊天的时候记录标题
phone.setTitle("由" + record.getCreateName() + "发起电话会议"); phone.setTitle("由" + record.getCreateName() + "发起电话会议");
} else { } else {
phone.setTitle(record.getCreateName()); phone.setTitle(record.getCreateName());
} }
if (StringUtils.isEmpty(phone.getUserId()) if (StringUtils.isEmpty(phone.getUserId())
&& StringUtils.isNotEmpty(phone.getPhone())){// 如果没有匹配用户信息则通过号码匹配用户信息 && StringUtils.isNotEmpty(phone.getPhone())){// 如果没有匹配用户信息则通过号码匹配用户信息
CallFindPhoneInfoBean phoneBean = new CallFindPhoneInfoBean(); CallFindPhoneInfoBean phoneBean = new CallFindPhoneInfoBean();
Date current = new Date();// 用于查询通话记录 Date current = new Date();// 用于查询通话记录
phoneBean.setEndTime(current);// 查询时间 phoneBean.setEndTime(current);// 查询时间
phoneBean.setStartTime(new Date(current.getTime()-3*60*1000));// 开始时间=查询时间-3分钟 phoneBean.setStartTime(new Date(current.getTime()-3*60*1000));// 开始时间=查询时间-3分钟
phoneBean.setPhoneNumer(phone.getPhone()); phoneBean.setPhoneNumer(phone.getPhone());
List<CallPhoneInfoListEntity> userList = callService.findUserByCallPhone(phoneBean, true); List<CallPhoneInfoListEntity> userList = callService.findUserByCallPhone(phoneBean, true);
if(userList != null && userList.size() == 1){ if(userList != null && userList.size() == 1){
CallPhoneInfoListEntity callPhoneInfo = userList.get(0); CallPhoneInfoListEntity callPhoneInfo = userList.get(0);
if(StringUtils.isNotEmpty(callPhoneInfo.getUserId())){ if(StringUtils.isNotEmpty(callPhoneInfo.getUserId())){
phone.setUserId(callPhoneInfo.getUserId()); phone.setUserId(callPhoneInfo.getUserId());
phone.setUsername(callPhoneInfo.getName()); phone.setUsername(callPhoneInfo.getName());
} }
} }
} }
} }
callService.addCallPhoneList(phoneList);// 添加电话列表 callService.addCallPhoneList(phoneList);// 添加电话列表
responseBean.setData(record); responseBean.setData(record);
responseBean.setMessage(GConstants.OK); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
responseBean.setMessage(message); responseBean.setMessage(message);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean; return responseBean;
} }
/** /**
* 42.2 结束会话提交接口 * 42.2 结束会话提交接口
* *
* @author renmb * @author renmb
* @time 2016年10月6日 * @time 2016年10月6日
* @param requestBean * @param requestBean
* @return * @return
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "/end") @RequestMapping(value = "/end")
public ResponseBean end(RequestBean requestBean) { public ResponseBean end(RequestBean requestBean) {
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
CallRecordBean bean = requestBean.getObjectBean(CallRecordBean.class); CallRecordBean bean = requestBean.getObjectBean(CallRecordBean.class);
String message = callService.validate(bean); String message = callService.validate(bean);
if (message == null) {// 校验通过 if (message == null) {// 校验通过
CallRecordEntity record = new CallRecordEntity(); CallRecordEntity record = new CallRecordEntity();
record.setEndStatus(bean.getEndStatus()); record.setEndStatus(bean.getEndStatus());
record.setEndTime(bean.getEndTime()); record.setEndTime(bean.getEndTime());
if("APP".equals(bean.getChannelType()) == false){// 通过系统拨打的电话记录 if("APP".equals(bean.getChannelType()) == false){// 通过系统拨打的电话记录
if(bean.getEndTime() != null){ if(bean.getEndTime() != null){
record.setEndTime(bean.getEndTime()); record.setEndTime(bean.getEndTime());
} }
} }
record.setId(bean.getRecordCode()); record.setId(bean.getRecordCode());
callService.updateCallRecord(record);// 添加主记录 callService.updateCallRecord(record);// 添加主记录
responseBean.setMessage(GConstants.OK); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
responseBean.setMessage(message); responseBean.setMessage(message);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean; return responseBean;
} }
/** /**
* 42.3 会话列表接口 * 42.3 会话列表接口
* V2.0 添加分页 * V2.0 添加分页
* *
* @author renmb * @author renmb
* @time 2016年10月6日 * @time 2016年10月6日
* @param requestBean * @param requestBean
* @return * @return
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "/list") @RequestMapping(value = "/list")
public ResponseBean list(RequestBean requestBean) { public ResponseBean list(RequestBean requestBean) {
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
CallRecordListBean bean = requestBean.getObjectBean(CallRecordListBean.class); CallRecordListBean bean = requestBean.getObjectBean(CallRecordListBean.class);
// CallRecordListBean bean=new CallRecordListBean();
String message = callService.validate(bean); // bean.setUserId("1000849147");
if (message == null) {// 校验通过 // bean.setPageNo(0);
Boolean show = false; // bean.setPageSize(10);
UserEntity ue = new UserEntity(); // String message=null;
ue.setUsercode(bean.getUserId()); String message = callService.validate(bean);
User user = userService.getUserByUserCode(ue); if (message == null) {// 校验通过
if (user != null) { Boolean show = false;
if (StringUtils.isNoneBlank(user.getPhone())) { UserEntity ue = new UserEntity();
show = true; ue.setUsercode(bean.getUserId());
} User user = userService.getUserByUserCode(ue);
} else { if (user != null) {
UserSeatEntity seat = userService.getSeatsEntity(bean.getUserId()); if (StringUtils.isNoneBlank(user.getPhone())) {
if (seat != null && StringUtils.isNoneBlank(seat.getPhone())) { show = true;
show = true; }
} } else {
} UserSeatEntity seat = userService.getSeatsEntity(bean.getUserId());
PageEntity<CallRecordListEntity> page = callService.getCallRecordList(bean); if (seat != null && StringUtils.isNoneBlank(seat.getPhone())) {
if(page == null){ show = true;
}
responseBean.setMessage(GConstants.OK); }
responseBean.setStatus(ErrorCode.STATUS_CODE_2001); PageEntity<CallRecordListEntity> page = callService.getCallRecordList(bean);
return responseBean; if(page == null){
}
List<CallRecordListEntity> callRecordList = page.getList(); responseBean.setMessage(GConstants.OK);
List<CallListEntity> callList = new ArrayList<CallListEntity>(); responseBean.setStatus(ErrorCode.STATUS_CODE_2001);
List<String> huweiNumList = new ArrayList<>(); return responseBean;
for(CallRecordListEntity record:callRecordList){ }
List<CallRecordListEntity> callRecordList = page.getList();
CallListEntity call = new CallListEntity(); List<CallListEntity> callList = new ArrayList<CallListEntity>();
call.setCallType(record.getCallType()); List<String> huweiNumList = new ArrayList<>();
call.setEndStatus(record.getEndStatus()); for(CallRecordListEntity record:callRecordList){
call.setPhone(record.getPhone());
call.setStartTime(record.getStartTime()); CallListEntity call = new CallListEntity();
call.setEndTime(record.getEndTime()); call.setCallType(record.getCallType());
call.setTitle(record.getTitle()); call.setEndStatus(record.getEndStatus());
call.setUserCount(record.getUserCount()); call.setPhone(record.getPhone());
call.setFlow(record.getFlow()); call.setStartTime(record.getStartTime());
call.setEndTime(record.getEndTime());
if(bean.getUserId().equals(record.getCreateBy())){// 是本人发起的电话,即主叫 call.setTitle(record.getTitle());
call.setUserCount(record.getUserCount());
call.setFlow("CALLING"); call.setFlow(record.getFlow());
call.setUserId(record.getUserId());
// call.setPhone( callService.GetPhoneById(record.getUserId())); if(bean.getUserId().equals(record.getCreateBy())){// 是本人发起的电话,即主叫
call.setUsername(record.getUsername());
// call.setUsername(record.getName()); call.setFlow("CALLING");
call.setUserPhoto(Util.getAbsoluteUrl(record.getUserPhoto(), GConstants.DEFAULT_SEAT_PHOTO)); call.setUserId(record.getUserId());
} else {// 他人发起的电话,电话号码显示 // call.setPhone( callService.GetPhoneById(record.getUserId()));
call.setUsername(record.getUsername());
call.setFlow("CALLED"); // call.setUsername(record.getName());
call.setPhone(record.getCreatePhone()); call.setUserPhoto(Util.getAbsoluteUrl(record.getUserPhoto(), GConstants.DEFAULT_SEAT_PHOTO));
// call.setPhone( callService.GetPhoneById(record.getCreateBy())); } else {// 他人发起的电话,电话号码显示
call.setUserId(record.getCreateBy());
call.setUsername(record.getCreateName()); call.setFlow("CALLED");
// call.setUsername(record.getName()); call.setPhone(record.getCreatePhone());
call.setUserPhoto(Util.getAbsoluteUrl(record.getCreateByPhoto(), GConstants.DEFAULT_SEAT_PHOTO)); // call.setPhone( callService.GetPhoneById(record.getCreateBy()));
} call.setUserId(record.getCreateBy());
if("GROUP".equals(record.getCallType())){// 群组聊天时所有的电话均设置为群发起人电话 call.setUsername(record.getCreateName());
// call.setUsername(record.getName());
call.setPhone(record.getCreatePhone()); call.setUserPhoto(Util.getAbsoluteUrl(record.getCreateByPhoto(), GConstants.DEFAULT_SEAT_PHOTO));
List<MemberEntity> memberlist = callService.getMemberList(record.getId()); }
memberlist.forEach(mEntity->huweiNumList.add(mEntity.getPhone())); if("GROUP".equals(record.getCallType())){// 群组聊天时所有的电话均设置为群发起人电话
call.setMemberList(memberlist);
call.setPhone(record.getCreatePhone());
} else if(bean.getUserId().equals(record.getCreateBy())){// 非群聊,且是本人发起的电话 List<MemberEntity> memberlist = callService.getMemberList(record.getId());
// call.setTitle(record.getName()); memberlist.forEach(mEntity->huweiNumList.add(mEntity.getPhone()));
call.setTitle(record.getUsername()); call.setMemberList(memberlist);
}
} else if(bean.getUserId().equals(record.getCreateBy())){// 非群聊,且是本人发起的电话
// if(show){ // call.setTitle(record.getName());
// call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl())); call.setTitle(record.getUsername());
// } }
// if(show){
call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl())); // call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl()));
// }
huweiNumList.add(call.getPhone());
// call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl()));
call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl()));
callList.add(call);
} huweiNumList.add(call.getPhone());
// call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl()));
Map<String, String> map = callService.findPhoneByHuaweiNum(huweiNumList);// 通过华为短号查询座机号
for(CallListEntity record:callList){ callList.add(call);
if(map != null ){ }
if(StringUtils.isNotEmpty(map.get(record.getPhone()))){
record.setPhone(Util.formatedWorkPhone(map.get(record.getPhone()))); Map<String, String> map = callService.findPhoneByHuaweiNum(huweiNumList);// 通过华为短号查询座机号
} for(CallListEntity record:callList){
if(map != null ){
if("GROUP".equals(record.getCallType())){ if(StringUtils.isNotEmpty(map.get(record.getPhone()))){
record.getMemberList().forEach(entity->{ record.setPhone(Util.formatedWorkPhone(map.get(record.getPhone())));
if(StringUtils.isNotEmpty(map.get(entity.getPhone()))){ }
entity.setPhone(Util.formatedWorkPhone(map.get(entity.getPhone())));
if("GROUP".equals(record.getCallType())){
} record.getMemberList().forEach(entity->{
entity.setShowPhone(Util.getShowPhone(entity.getPhone())); if(StringUtils.isNotEmpty(map.get(entity.getPhone()))){
}); entity.setPhone(Util.formatedWorkPhone(map.get(entity.getPhone())));
}
}
} entity.setShowPhone(Util.getShowPhone(entity.getPhone()));
if(StringUtils.isNotEmpty(record.getPhone()) });
&& record.getPhone().startsWith("6") }
&& record.getPhone().length() == 4) {// 6开头的华为短号不展示
}
record.setPhone(""); if(StringUtils.isNotEmpty(record.getPhone())
} && record.getPhone().startsWith("6")
record.setShowPhone(Util.getShowPhone(record.getPhone())); && record.getPhone().length() == 4) {// 6开头的华为短号不展示
}
PageEntity<CallListEntity> retPage = new PageEntity<CallListEntity>(); record.setPhone("");
retPage.setCount(page.getCount()); }
retPage.setPageNo(page.getPageNo()); record.setShowPhone(Util.getShowPhone(record.getPhone()));
retPage.setList(callList); }
retPage.setPageSize(page.getPageSize()); PageEntity<CallListEntity> retPage = new PageEntity<CallListEntity>();
retPage.setTotalPage(page.getTotalPage()); retPage.setCount(page.getCount());
retPage.setPageNo(page.getPageNo());
responseBean.setData(retPage); retPage.setList(callList);
responseBean.setMessage(GConstants.OK); retPage.setPageSize(page.getPageSize());
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); retPage.setTotalPage(page.getTotalPage());
return responseBean;
} responseBean.setData(retPage);
responseBean.setMessage(message); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
/** responseBean.setMessage(message);
* 安科录音接口 responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
* return responseBean;
* @author renmb }
* @time 2017年3月15日 /**
* @param requestBean * 安科录音接口
* @return *
*/ * @author renmb
@ResponseBody * @time 2017年3月15日
@RequestMapping(value = "/soundList") * @param requestBean
public ResponseBean soundList(RequestBean requestBean) { * @return
ResponseBean responseBean = new ResponseBean(); */
@ResponseBody
CallRecordListBean bean = requestBean.getObjectBean(CallRecordListBean.class); @RequestMapping(value = "/soundList")
String message = callService.validate(bean); public ResponseBean soundList(RequestBean requestBean) {
if (message == null) {// 校验通过 ResponseBean responseBean = new ResponseBean();
PageEntity<CallRecordListEntity> page = callService.getCallRecordList(bean); CallRecordListBean bean = requestBean.getObjectBean(CallRecordListBean.class);
// PageEntity<CallRecordListEntity> page = callService.getCallSoundList(bean); String message = callService.validate(bean);
if(page == null){ if (message == null) {// 校验通过
responseBean.setMessage(GConstants.OK); PageEntity<CallRecordListEntity> page = callService.getCallRecordList(bean);
responseBean.setStatus(ErrorCode.STATUS_CODE_2001); // PageEntity<CallRecordListEntity> page = callService.getCallSoundList(bean);
return responseBean; if(page == null){
}
List<CallRecordListEntity> callRecordList = page.getList(); responseBean.setMessage(GConstants.OK);
List<CallListEntity> callList = new ArrayList<CallListEntity>(); responseBean.setStatus(ErrorCode.STATUS_CODE_2001);
List<String> huweiNumList = new ArrayList<>(); return responseBean;
for(CallRecordListEntity record:callRecordList){ }
List<CallRecordListEntity> callRecordList = page.getList();
CallListEntity call = new CallListEntity(); List<CallListEntity> callList = new ArrayList<CallListEntity>();
call.setCallType(record.getCallType()); List<String> huweiNumList = new ArrayList<>();
call.setEndStatus(record.getEndStatus()); for(CallRecordListEntity record:callRecordList){
call.setPhone(record.getPhone());
call.setStartTime(record.getStartTime()); CallListEntity call = new CallListEntity();
call.setTitle(record.getTitle()); call.setCallType(record.getCallType());
call.setUserCount(record.getUserCount()); call.setEndStatus(record.getEndStatus());
call.setFlow(record.getFlow()); call.setPhone(record.getPhone());
call.setStartTime(record.getStartTime());
if(bean.getUserId().equals(record.getCreateBy())){// 是本人发起的电话,即主叫 call.setTitle(record.getTitle());
call.setUserCount(record.getUserCount());
call.setFlow("CALLING"); call.setFlow(record.getFlow());
call.setUserId(record.getUserId());
call.setUsername(record.getUsername()); if(bean.getUserId().equals(record.getCreateBy())){// 是本人发起的电话,即主叫
call.setUserPhoto(Util.getAbsoluteUrl(record.getUserPhoto(), GConstants.DEFAULT_SEAT_PHOTO));
} else {// 他人发起的电话,电话号码显示 call.setFlow("CALLING");
call.setUserId(record.getUserId());
call.setFlow("CALLED"); call.setUsername(record.getUsername());
call.setPhone(record.getCreatePhone()); call.setUserPhoto(Util.getAbsoluteUrl(record.getUserPhoto(), GConstants.DEFAULT_SEAT_PHOTO));
call.setUserId(record.getCreateBy()); } else {// 他人发起的电话,电话号码显示
call.setUsername(record.getCreateName());
call.setUserPhoto(Util.getAbsoluteUrl(record.getCreateByPhoto(), GConstants.DEFAULT_SEAT_PHOTO)); call.setFlow("CALLED");
} call.setPhone(record.getCreatePhone());
if("GROUP".equals(record.getCallType())){// 群组聊天时所有的电话均设置为群发起人电话 call.setUserId(record.getCreateBy());
call.setUsername(record.getCreateName());
call.setPhone(record.getCreatePhone()); call.setUserPhoto(Util.getAbsoluteUrl(record.getCreateByPhoto(), GConstants.DEFAULT_SEAT_PHOTO));
} else if(bean.getUserId().equals(record.getCreateBy())){// 非群聊,且是本人发起的电话 }
if("GROUP".equals(record.getCallType())){// 群组聊天时所有的电话均设置为群发起人电话
call.setTitle(record.getUsername());
} call.setPhone(record.getCreatePhone());
huweiNumList.add(call.getPhone()); } else if(bean.getUserId().equals(record.getCreateBy())){// 非群聊,且是本人发起的电话
call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl()));
callList.add(call); call.setTitle(record.getUsername());
} }
Map<String, String> map = callService.findPhoneByHuaweiNum(huweiNumList);// 通过华为短号查询座机号 huweiNumList.add(call.getPhone());
for(CallListEntity record:callList){ call.setDownloadUrl(this.formatedDownloadUrl(record.getDownloadUrl()));
if(map != null && callList.add(call);
StringUtils.isNotEmpty(map.get(record.getPhone()))){ }
Map<String, String> map = callService.findPhoneByHuaweiNum(huweiNumList);// 通过华为短号查询座机号
record.setPhone(Util.formatedWorkPhone(map.get(record.getPhone()))); for(CallListEntity record:callList){
} if(map != null &&
// if(StringUtils.isNotEmpty(record.getPhone()) StringUtils.isNotEmpty(map.get(record.getPhone()))){
// && record.getPhone().startsWith("6")
// && record.getPhone().length() == 4){// 6开头的华为短号不展示 record.setPhone(Util.formatedWorkPhone(map.get(record.getPhone())));
// }
// record.setPhone(""); // if(StringUtils.isNotEmpty(record.getPhone())
// } // && record.getPhone().startsWith("6")
record.setShowPhone(Util.getShowPhone(record.getPhone())); // && record.getPhone().length() == 4){// 6开头的华为短号不展示
} //
PageEntity<CallListEntity> retPage = new PageEntity<CallListEntity>(); // record.setPhone("");
retPage.setCount(page.getCount()); // }
retPage.setPageNo(page.getPageNo()); record.setShowPhone(Util.getShowPhone(record.getPhone()));
retPage.setList(callList); }
retPage.setPageSize(page.getPageSize()); PageEntity<CallListEntity> retPage = new PageEntity<CallListEntity>();
retPage.setTotalPage(page.getTotalPage()); retPage.setCount(page.getCount());
retPage.setPageNo(page.getPageNo());
responseBean.setData(retPage); retPage.setList(callList);
responseBean.setMessage(GConstants.OK); retPage.setPageSize(page.getPageSize());
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); retPage.setTotalPage(page.getTotalPage());
return responseBean;
} responseBean.setData(retPage);
responseBean.setMessage(message); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
/** responseBean.setMessage(message);
* 根据电话号码查询电话相关的席位或者用户信息 responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
* return responseBean;
* @author renmb }
* @time 2017年1月5日 /**
* @param requestBean * 根据电话号码查询电话相关的席位或者用户信息
* @return *
*/ * @author renmb
@ResponseBody * @time 2017年1月5日
@RequestMapping(value = "/findPhoneInfo") * @param requestBean
public ResponseBean findPhoneInfo(RequestBean requestBean) { * @return
ResponseBean responseBean = new ResponseBean(); */
@ResponseBody
CallFindPhoneInfoBean bean = requestBean.getObjectBean(CallFindPhoneInfoBean.class); @RequestMapping(value = "/findPhoneInfo")
String message = callService.validate(bean); public ResponseBean findPhoneInfo(RequestBean requestBean) {
if (message == null) {// 校验通过 ResponseBean responseBean = new ResponseBean();
Date current = new Date();// 用于查询通话记录 CallFindPhoneInfoBean bean = requestBean.getObjectBean(CallFindPhoneInfoBean.class);
bean.setEndTime(current);// 查询时间 String message = callService.validate(bean);
bean.setStartTime(new Date(current.getTime()-3*60*1000));// 开始时间=查询时间-3分钟 if (message == null) {// 校验通过
List<CallPhoneInfoListEntity> userList = callService.findUserByCallPhone(bean, false); Date current = new Date();// 用于查询通话记录
if(userList == null || userList.size() == 0){ bean.setEndTime(current);// 查询时间
responseBean.setMessage(GConstants.EMPTY); bean.setStartTime(new Date(current.getTime()-3*60*1000));// 开始时间=查询时间-3分钟
responseBean.setStatus(ErrorCode.STATUS_CODE_2001);
return responseBean; List<CallPhoneInfoListEntity> userList = callService.findUserByCallPhone(bean, false);
} if(userList == null || userList.size() == 0){
for(CallPhoneInfoListEntity call:userList){ responseBean.setMessage(GConstants.EMPTY);
responseBean.setStatus(ErrorCode.STATUS_CODE_2001);
call.setPhoto(Util.getAbsoluteUrl(call.getPhoto(), GConstants.DEFAULT_SEAT_PHOTO)); return responseBean;
} }
// callService.addCallRecordByCalled(bean, userList.get(0)); for(CallPhoneInfoListEntity call:userList){
responseBean.setData(userList); call.setPhoto(Util.getAbsoluteUrl(call.getPhoto(), GConstants.DEFAULT_SEAT_PHOTO));
responseBean.setMessage(GConstants.OK); }
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); // callService.addCallRecordByCalled(bean, userList.get(0));
return responseBean;
} responseBean.setData(userList);
responseBean.setMessage(message); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
/** responseBean.setMessage(message);
* 一次性批量提交电话会议记录 responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
* return responseBean;
* 42.4 批量提交通话记录接口 }
* /**
* @author renmb * 一次性批量提交电话会议记录
* @time 2017年2月17日 *
* @param requestBean * 42.4 批量提交通话记录接口
* @return *
*/ * @author renmb
@ResponseBody * @time 2017年2月17日
@RequestMapping(value = "/postCallLogList") * @param requestBean
public ResponseBean postCallLogList(RequestBean requestBean) { * @return
ResponseBean responseBean = new ResponseBean(); */
@ResponseBody
CallLogListBean callLog = requestBean.getObjectBean(CallLogListBean.class); @RequestMapping(value = "/postCallLogList")
if (callLog != null && callLog.getCallLogList() != null) {// 校验通过 public ResponseBean postCallLogList(RequestBean requestBean) {
ResponseBean responseBean = new ResponseBean();
List<CallRecordBean> callLogList = callLog.getCallLogList();
for (CallRecordBean bean:callLogList) { CallLogListBean callLog = requestBean.getObjectBean(CallLogListBean.class);
List<CallPhoneBean> phoneList = bean.getPhoneList(); if (callLog != null && callLog.getCallLogList() != null) {// 校验通过
int userCount = phoneList.size()+1; List<CallRecordBean> callLogList = callLog.getCallLogList();
CallRecordEntity record = new CallRecordEntity(); for (CallRecordBean bean:callLogList) {
record.setCallType(bean.getCallType()); List<CallPhoneBean> phoneList = bean.getPhoneList();
record.setCreateBy(bean.getCreateBy());
record.setCreateName(bean.getCreateName()); int userCount = phoneList.size()+1;
record.setEndStatus(record.getEndStatus()); CallRecordEntity record = new CallRecordEntity();
record.setChannelType(bean.getChannelType()); record.setCallType(bean.getCallType());
record.setId(IdWorker.getNextId()); record.setCreateBy(bean.getCreateBy());
record.setAppCode(bean.getAppCode()); record.setCreateName(bean.getCreateName());
record.setPlatform(bean.getPlatform()); record.setEndStatus(record.getEndStatus());
record.setVersionName(bean.getVersionName()); record.setChannelType(bean.getChannelType());
record.setId(IdWorker.getNextId());
if(bean.getStartTime() == null){ record.setAppCode(bean.getAppCode());
record.setStartTime(new Date()); record.setPlatform(bean.getPlatform());
} else{ record.setVersionName(bean.getVersionName());
record.setStartTime(bean.getStartTime());
} if(bean.getStartTime() == null){
record.setUserCount(userCount); record.setStartTime(new Date());
record.setCreatePhone(bean.getCreatePhone()); } else{
record.setPhoneType(Util.getPhoneType(bean.getCreatePhone())); record.setStartTime(bean.getStartTime());
}
callService.createCallRecord(record);// 添加主记录 record.setUserCount(userCount);
record.setCreatePhone(bean.getCreatePhone());
record.setPhoneType(Util.getPhoneType(bean.getCreatePhone()));
for (CallPhoneBean phone : phoneList) {
callService.createCallRecord(record);// 添加主记录
phone.setId(IdWorker.getNextId());
phone.setRecordId(record.getId());
if ("GROUP".equals(record.getCallType())) {// 群组聊天的时候记录标题 for (CallPhoneBean phone : phoneList) {
phone.setTitle("由" + record.getCreateName() + "发起电话会议"); phone.setId(IdWorker.getNextId());
} else { phone.setRecordId(record.getId());
if ("GROUP".equals(record.getCallType())) {// 群组聊天的时候记录标题
phone.setTitle(record.getCreateName());
} phone.setTitle("由" + record.getCreateName() + "发起电话会议");
} } else {
callService.addCallPhoneList(phoneList);// 添加电话列表 phone.setTitle(record.getCreateName());
} }
responseBean.setMessage(GConstants.OK); }
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; callService.addCallPhoneList(phoneList);// 添加电话列表
} }
responseBean.setMessage(GConstants.EMPTY); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean; return responseBean;
} }
responseBean.setMessage(GConstants.EMPTY);
/** responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
* 用于安科同步录音数据 return responseBean;
* }
* @author renmb
* @time 2017年2月28日 /**
* @param requestBean * 用于安科同步录音数据
* @return *
*/ * @author renmb
@ResponseBody * @time 2017年2月28日
@RequestMapping(value = "/addSoundRecord") * @param requestBean
public ResponseBean addSoundRecord(RequestBean requestBean) { * @return
ResponseBean responseBean = new ResponseBean(); */
@ResponseBody
CallSoundRecordBean bean = requestBean.getObjectBean(CallSoundRecordBean.class); @RequestMapping(value = "/addSoundRecord")
String message = callService.validate(bean); public ResponseBean addSoundRecord(RequestBean requestBean) {
if (message == null) {// 校验通过 ResponseBean responseBean = new ResponseBean();
bean.setFocTimeMillis(System.currentTimeMillis()); CallSoundRecordBean bean = requestBean.getObjectBean(CallSoundRecordBean.class);
Date createDate = new Date(bean.getFocTimeMillis()); String message = callService.validate(bean);
bean.setCreateDate(createDate); if (message == null) {// 校验通过
long focDiffMillis = bean.getCurrentTimeMillis() - bean.getFocTimeMillis()+GConstants.getIntValue("add.diff.millis", 100); bean.setFocTimeMillis(System.currentTimeMillis());
// if(focDiffMillis<1000){ Date createDate = new Date(bean.getFocTimeMillis());
// focDiffMillis = 0; bean.setCreateDate(createDate);
// }
bean.setFocDiffMillis((int)focDiffMillis); long focDiffMillis = bean.getCurrentTimeMillis() - bean.getFocTimeMillis()+GConstants.getIntValue("add.diff.millis", 100);
Date start = new Date(bean.getBeginTime().getTime()-focDiffMillis); // if(focDiffMillis<1000){
bean.setFocBeginTime(start); // focDiffMillis = 0;
if(bean.getEndTime() != null){ // }
bean.setFocDiffMillis((int)focDiffMillis);
Date end = new Date(bean.getEndTime().getTime()-focDiffMillis); Date start = new Date(bean.getBeginTime().getTime()-focDiffMillis);
bean.setFocEndTime(end); bean.setFocBeginTime(start);
} if(bean.getEndTime() != null){
//添加通话记录call_record,call_office
CallRecordEntity record = new CallRecordEntity(); Date end = new Date(bean.getEndTime().getTime()-focDiffMillis);
record.setCallType("USER"); bean.setFocEndTime(end);
String name = callService.getNameByPhoneFromSeat(bean.getCallNo()); }
String id = callService.getIdByPhoneFromSeat(bean.getCallNo()); //添加通话记录call_record,call_office
if (name != null) { CallRecordEntity record = new CallRecordEntity();
record.setCreateName(name); record.setCallType("USER");
record.setCreateBy(id); String name = callService.getNameByPhoneFromSeat(bean.getCallNo());
} else { String id = callService.getIdByPhoneFromSeat(bean.getCallNo());
name = callService.getNameByPhone(bean.getCallNo()); if (name != null) {
if (name != null) { record.setCreateName(name);
id = callService.getIdByPhone(bean.getCallNo()); record.setCreateBy(id);
record.setCreateName(name); } else {
record.setCreateBy(id); name = callService.getNameByPhone(bean.getCallNo());
} else { if (name != null) {
record.setCreateName(bean.getCallNo()); id = callService.getIdByPhone(bean.getCallNo());
record.setCreateBy("1"); record.setCreateName(name);
} record.setCreateBy(id);
} } else {
int userCount = 1; record.setCreateName(bean.getCallNo());
if (bean.getResult() != null && !bean.getResult().equals("0")) { record.setCreateBy("1");
record.setEndStatus("SUCCESS"); }
userCount = 2; }
} else { int userCount = 1;
record.setEndStatus("FAILD"); if (bean.getResult() != null && !bean.getResult().equals("0")) {
} record.setEndStatus("SUCCESS");
record.setId(IdWorker.getNextId()); userCount = 2;
record.setChannelType(bean.getChannelType()); } else {
record.setAppCode("30011"); record.setEndStatus("FAILD");
record.setPlatform("JAVA"); }
record.setVersionName("1.0"); record.setId(IdWorker.getNextId());
record.setDownloadUrl(bean.getDownloadUrl()); record.setChannelType(bean.getChannelType());
record.setDuration(bean.getDuration()); record.setAppCode("30011");
record.setStartTime(bean.getBeginTime()); record.setPlatform("JAVA");
record.setEndTime(bean.getEndTime()); record.setVersionName("1.0");
record.setUserCount(userCount); record.setDownloadUrl(bean.getDownloadUrl());
record.setCreatePhone(bean.getCallNo()); record.setDuration(bean.getDuration());
record.setCreateShowPhone(bean.getCallNo()); record.setStartTime(bean.getBeginTime());
record.setPhoneType(Util.getPhoneType(bean.getCallNo())); record.setEndTime(bean.getEndTime());
// callService.createCallRecord(record);// 添加主记录 record.setUserCount(userCount);
//添加被叫记录 record.setCreatePhone(bean.getCallNo());
List<CallPhoneBean> phoneList = new ArrayList<CallPhoneBean>(); record.setCreateShowPhone(bean.getCallNo());
CallPhoneBean phone = new CallPhoneBean(); record.setPhoneType(Util.getPhoneType(bean.getCallNo()));
// callService.createCallRecord(record);// 添加主记录
phone.setId(IdWorker.getNextId()); //添加被叫记录
phone.setPhoneType(Util.getPhoneType(phone.getPhone())); List<CallPhoneBean> phoneList = new ArrayList<CallPhoneBean>();
phone.setRecordId(record.getId()); CallPhoneBean phone = new CallPhoneBean();
phone.setDownloadUrl(bean.getDownloadUrl());
phone.setCenterRecordsId(bean.getId()); phone.setId(IdWorker.getNextId());
if ("GROUP".equals(record.getCallType())) {// 群组聊天的时候记录标题 phone.setPhoneType(Util.getPhoneType(phone.getPhone()));
phone.setRecordId(record.getId());
phone.setTitle("由" + record.getCreateName() + "发起电话会议"); phone.setDownloadUrl(bean.getDownloadUrl());
} else { phone.setCenterRecordsId(bean.getId());
if ("GROUP".equals(record.getCallType())) {// 群组聊天的时候记录标题
phone.setTitle(record.getCreateName());
} phone.setTitle("由" + record.getCreateName() + "发起电话会议");
String acceptName = callService.getNameByPhoneFromSeat(bean.getAcceptNo()); } else {
String acceptId = callService.getIdByPhoneFromSeat(bean.getAcceptNo());
if (acceptName != null) { phone.setTitle(record.getCreateName());
phone.setUserId(acceptId); }
phone.setUsername(acceptName); String acceptName = callService.getNameByPhoneFromSeat(bean.getAcceptNo());
} else { String acceptId = callService.getIdByPhoneFromSeat(bean.getAcceptNo());
acceptName = callService.getNameByPhone(bean.getAcceptNo()); if (acceptName != null) {
if (acceptName != null) { phone.setUserId(acceptId);
acceptId = callService.getIdByPhone(bean.getAcceptNo()); phone.setUsername(acceptName);
phone.setUserId(acceptId); } else {
phone.setUsername(acceptName); acceptName = callService.getNameByPhone(bean.getAcceptNo());
} else { if (acceptName != null) {
phone.setUserId("1"); acceptId = callService.getIdByPhone(bean.getAcceptNo());
phone.setUsername(bean.getAcceptNo()); phone.setUserId(acceptId);
} phone.setUsername(acceptName);
} } else {
phone.setPhone(bean.getAcceptNo()); phone.setUserId("1");
phone.setShowPhone(bean.getAcceptNo()); phone.setUsername(bean.getAcceptNo());
phone.setPhoneType(Util.getPhoneType(bean.getAcceptNo())); }
phone.setFlow("CALLED"); }
phoneList.add(phone); phone.setPhone(bean.getAcceptNo());
// callService.addCallPhoneList(phoneList);// 添加电话列表 phone.setShowPhone(bean.getAcceptNo());
phone.setPhoneType(Util.getPhoneType(bean.getAcceptNo()));
bean.setCallRecordId(record.getId()); phone.setFlow("CALLED");
if(callService.addSoundRecord(bean,phoneList,record)){ phoneList.add(phone);
// callService.addCallPhoneList(phoneList);// 添加电话列表
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); bean.setCallRecordId(record.getId());
return responseBean; if(callService.addSoundRecord(bean,phoneList,record)){
} else{
responseBean.setData(bean); responseBean.setMessage(GConstants.OK);
responseBean.setMessage("记录保存失败!"); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); return responseBean;
return responseBean; } else{
} responseBean.setData(bean);
} responseBean.setMessage("记录保存失败!");
responseBean.setMessage(message); responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); return responseBean;
return responseBean; }
} }
public String formatedDownloadUrl(String downloadUrl){ responseBean.setMessage(message);
try { responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
if(StringUtils.isEmpty(downloadUrl)) return responseBean;
return null; }
return GConstants.getValue("jd.sound.recording.prefix", "https://ifos.jdair.net/sounds") public String formatedDownloadUrl(String downloadUrl){
+downloadUrl.replaceAll("\\\\+", "/").replace(GConstants.getValue("ak.sound.recording.prefix", "http://10.72.23.187"), ""); try {
} catch (Exception e) { if(StringUtils.isEmpty(downloadUrl))
// TODO: handle exception return null;
} return GConstants.getValue("jd.sound.recording.prefix", "https://ifos.jdair.net/sounds")
return null; +downloadUrl.replaceAll("\\\\+", "/").replace(GConstants.getValue("ak.sound.recording.prefix", "http://10.72.23.187"), "");
} } catch (Exception e) {
// public static void main(String[] args){ // TODO: handle exception
// System.out.println(formatedDownloadUrl("http://10.72.23.187\\01\\log20170105204535S000Ch001.wav")); }
// } return null;
} }
// public static void main(String[] args){
// System.out.println(formatedDownloadUrl("http://10.72.23.187\\01\\log20170105204535S000Ch001.wav"));
// }
}
package com.ejweb.modules.call.service; package com.ejweb.modules.call.service;
import com.ejweb.core.base.BaseService; import com.ejweb.core.base.BaseService;
import com.ejweb.core.base.PageEntity; import com.ejweb.core.base.PageEntity;
import com.ejweb.core.util.IdWorker; import com.ejweb.core.util.IdWorker;
import com.ejweb.core.util.Util; import com.ejweb.core.util.Util;
import com.ejweb.modules.call.bean.CallFindPhoneInfoBean; import com.ejweb.modules.call.bean.CallFindPhoneInfoBean;
import com.ejweb.modules.call.bean.CallPhoneBean; import com.ejweb.modules.call.bean.CallPhoneBean;
import com.ejweb.modules.call.bean.CallRecordListBean; import com.ejweb.modules.call.bean.CallRecordListBean;
import com.ejweb.modules.call.dao.CallDao; import com.ejweb.modules.call.dao.CallDao;
import com.ejweb.modules.call.entity.*; import com.ejweb.modules.call.entity.*;
import com.ejweb.modules.call.util.PhoneAreaEntity; import com.ejweb.modules.call.util.PhoneAreaEntity;
import com.ejweb.modules.call.util.PhoneAreaUtil; import com.ejweb.modules.call.util.PhoneAreaUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.lang3.time.DateUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
@Service @Service
@Transactional(readOnly = true) @Transactional(readOnly = true)
public class CallService extends BaseService<CallDao> { public class CallService extends BaseService<CallDao> {
public void createCallRecord(CallRecordEntity entity){ public void createCallRecord(CallRecordEntity entity){
dao.createCallRecord(entity); dao.createCallRecord(entity);
} }
public void updateCallRecord(CallRecordEntity entity){ public void updateCallRecord(CallRecordEntity entity){
dao.updateCallRecord(entity); dao.updateCallRecord(entity);
} }
public Integer addCallPhoneList(List<CallPhoneBean> phoneList){ public Integer addCallPhoneList(List<CallPhoneBean> phoneList){
return dao.addCallPhoneList(phoneList); return dao.addCallPhoneList(phoneList);
} }
/** /**
* 获取通话记录列表 * 获取通话记录列表
* *
* @author renmb * @author renmb
* @time 2016年12月6日 * @time 2016年12月6日
* @param bean * @param bean
* @return * @return
*/ */
public PageEntity<CallRecordListEntity> getCallRecordList(CallRecordListBean bean){ public PageEntity<CallRecordListEntity> getCallRecordList(CallRecordListBean bean){
PageInfo<CallRecordListEntity> pageInfo = null; PageInfo<CallRecordListEntity> pageInfo = null;
Date current = new Date(); Date current = new Date();
Date startTime = DateUtils.addDays(current, -3); Date startTime = DateUtils.addDays(current, -3);
bean.setStartTime(DateFormatUtils.format(startTime, "yyyy-MM-dd 00:00:00")); bean.setStartTime(DateFormatUtils.format(startTime, "yyyy-MM-dd 00:00:00"));
bean.setEndTime(DateFormatUtils.format(current, "yyyy-MM-dd 23:59:59")); bean.setEndTime(DateFormatUtils.format(current, "yyyy-MM-dd 23:59:59"));
// 必须紧贴dao的查询方法 // List<CallRecordListEntity> callRecordList = dao.getCallRecordList(bean);
PageHelper.startPage(bean.getPageNo(), bean.getPageSize()); // 必须紧贴dao的查询方法
pageInfo = new PageInfo<CallRecordListEntity>(dao.getCallRecordList(bean)); PageHelper.startPage(bean.getPageNo(), bean.getPageSize());
pageInfo = new PageInfo<CallRecordListEntity>(dao.getCallRecordList(bean));
if(pageInfo.getPages()<bean.getPageNo()){// 页码大于总页数,则返回NULL
// if(pageInfo.getPages()<bean.getPageNo()){// 页码大于总页数,则返回NULL
return null; //
} // return null;
List<CallRecordListEntity> list = pageInfo.getList(); // }
if (list == null || list.size() == 0) {// 如果没有数据则返回NULL List<CallRecordListEntity> list = pageInfo.getList();
return null; if (list == null || list.size() == 0) {// 如果没有数据则返回NULL
} return null;
//过滤重复记录 }
List<CallRecordListEntity> templist = new ArrayList<CallRecordListEntity>(); //过滤重复记录
for (int i = 0; i < list.size(); i++) { List<CallRecordListEntity> templist = new ArrayList<CallRecordListEntity>();
CallRecordListEntity callRecordListEntity = list.get(i); for (int i = 0; i < list.size(); i++) {
if (i > 0 && "FAILD".equals(callRecordListEntity.getEndStatus())) { CallRecordListEntity callRecordListEntity = list.get(i);
CallRecordListEntity last = list.get(i - 1); if (i > 0 && "FAILD".equals(callRecordListEntity.getEndStatus())) {
if ("SUCCESS".equals(last.getEndStatus()) CallRecordListEntity last = list.get(i - 1);
&& callRecordListEntity.getCreateName().equals(last.getCreateName()) if ("SUCCESS".equals(last.getEndStatus())
&& callRecordListEntity.getUsername().equals(last.getUsername()) && callRecordListEntity.getCreateName().equals(last.getCreateName())
&& !callRecordListEntity.getEndTime().before(last.getStartTime())) { && callRecordListEntity.getUsername().equals(last.getUsername())
templist.add(callRecordListEntity); && !callRecordListEntity.getEndTime().before(last.getStartTime())) {
} templist.add(callRecordListEntity);
} }
} }
if(templist.size()>0){ }
list.removeAll(templist); if(templist.size()>0){
pageInfo.setSize(list.size()); list.removeAll(templist);
pageInfo.setTotal(list.size()); pageInfo.setSize(list.size());
} pageInfo.setTotal(list.size());
PageEntity<CallRecordListEntity> page = new PageEntity<CallRecordListEntity>(); }
page.setPageNo(pageInfo.getPageNum()); PageEntity<CallRecordListEntity> page = new PageEntity<CallRecordListEntity>();
page.setPageSize(pageInfo.getPageSize()); page.setPageNo(pageInfo.getPageNum());
page.setCount(pageInfo.getTotal()); page.setPageSize(pageInfo.getPageSize());
page.setTotalPage(pageInfo.getPages()); page.setCount(pageInfo.getTotal());
page.setList(pageInfo.getList()); page.setTotalPage(pageInfo.getPages());
page.setList(pageInfo.getList());
return page;
} return page;
public PageEntity<CallRecordListEntity> getCallSoundList(CallRecordListBean bean){ }
public PageEntity<CallRecordListEntity> getCallSoundList(CallRecordListBean bean){
PageInfo<CallRecordListEntity> pageInfo = null;
Date current = new Date(); PageInfo<CallRecordListEntity> pageInfo = null;
Date startTime = DateUtils.addDays(current, -6); Date current = new Date();
bean.setStartTime(DateFormatUtils.format(startTime, "yyyy-MM-dd 00:00:00")); Date startTime = DateUtils.addDays(current, -6);
bean.setEndTime(DateFormatUtils.format(current, "yyyy-MM-dd 23:59:59")); bean.setStartTime(DateFormatUtils.format(startTime, "yyyy-MM-dd 00:00:00"));
// 必须紧贴dao的查询方法 bean.setEndTime(DateFormatUtils.format(current, "yyyy-MM-dd 23:59:59"));
PageHelper.startPage(bean.getPageNo(), bean.getPageSize()); // 必须紧贴dao的查询方法
pageInfo = new PageInfo<CallRecordListEntity>(dao.getCallSoundList(bean)); PageHelper.startPage(bean.getPageNo(), bean.getPageSize());
pageInfo = new PageInfo<CallRecordListEntity>(dao.getCallSoundList(bean));
if (pageInfo.getPages() < bean.getPageNo()) {// 页码大于总页数,则返回NULL
if (pageInfo.getPages() < bean.getPageNo()) {// 页码大于总页数,则返回NULL
return null;
} return null;
List<CallRecordListEntity> list = pageInfo.getList(); }
if (list == null || list.size() == 0) {// 如果没有数据则返回NULL List<CallRecordListEntity> list = pageInfo.getList();
return null; if (list == null || list.size() == 0) {// 如果没有数据则返回NULL
} return null;
PageEntity<CallRecordListEntity> page = new PageEntity<CallRecordListEntity>(); }
page.setPageNo(pageInfo.getPageNum()); PageEntity<CallRecordListEntity> page = new PageEntity<CallRecordListEntity>();
page.setPageSize(pageInfo.getPageSize()); page.setPageNo(pageInfo.getPageNum());
page.setCount(pageInfo.getTotal()); page.setPageSize(pageInfo.getPageSize());
page.setTotalPage(pageInfo.getPages()); page.setCount(pageInfo.getTotal());
page.setList(pageInfo.getList()); page.setTotalPage(pageInfo.getPages());
page.setList(pageInfo.getList());
return page;
} return page;
/** }
* 根据电话号码查询,通话来电号码查询用户信息 /**
* * 根据电话号码查询,通话来电号码查询用户信息
* 1、席位优先 *
* 2、查询最近通话记录 * 1、席位优先
* 3、查询用户表,如果有多个用户就展示用户手机号或者座机号 * 2、查询最近通话记录
* * 3、查询用户表,如果有多个用户就展示用户手机号或者座机号
* @author renmb *
* @time 2017年1月5日 * @author renmb
* @param bean * @time 2017年1月5日
* @return * @param bean
*/ * @return
public List<CallPhoneInfoListEntity> findUserByCallPhone(CallFindPhoneInfoBean bean, boolean isOnlySearch){ */
public List<CallPhoneInfoListEntity> findUserByCallPhone(CallFindPhoneInfoBean bean, boolean isOnlySearch){
bean.setMobileNubmer0("0"+bean.getPhoneNumer());
bean.setMobileNubmer00("00"+bean.getPhoneNumer()); bean.setMobileNubmer0("0"+bean.getPhoneNumer());
List<CallPhoneInfoListEntity> callList = dao.findUserByCallRecord(bean); bean.setMobileNubmer00("00"+bean.getPhoneNumer());
if(callList == null || callList.size() == 0){// 没有匹配到席位信息 List<CallPhoneInfoListEntity> callList = dao.findUserByCallRecord(bean);
if(callList == null || callList.size() == 0){// 没有匹配到席位信息
List<CallPhoneInfoListEntity> seatList = dao.findSeatListByCallPhone(bean); List<CallPhoneInfoListEntity> seatList = dao.findSeatListByCallPhone(bean);
if(seatList == null || seatList.size() == 0){// 没有匹配到通话记录信息 if(seatList == null || seatList.size() == 0){// 没有匹配到通话记录信息
List<CallPhoneInfoListEntity> userList = dao.findUserByCallPhone(bean); List<CallPhoneInfoListEntity> userList = dao.findUserByCallPhone(bean);
if(userList == null || userList.size() == 0 || userList.size() > 1){// 没有匹配到用户信息,或者匹配个数大于1 if(userList == null || userList.size() == 0 || userList.size() > 1){// 没有匹配到用户信息,或者匹配个数大于1
CallPhoneInfoListEntity entity = new CallPhoneInfoListEntity(); CallPhoneInfoListEntity entity = new CallPhoneInfoListEntity();
entity.setType("PHONE"); entity.setType("PHONE");
entity.setUserId(""); entity.setUserId("");
entity.setName(bean.getPhoneNumer()); entity.setName(bean.getPhoneNumer());
entity.setPhone(bean.getPhoneNumer()); entity.setPhone(bean.getPhoneNumer());
List<CallPhoneInfoListEntity> phoneList = new ArrayList<CallPhoneInfoListEntity>(1); List<CallPhoneInfoListEntity> phoneList = new ArrayList<CallPhoneInfoListEntity>(1);
phoneList.add(entity); phoneList.add(entity);
return phoneList; return phoneList;
} else{// 有用户信息直接返回 } else{// 有用户信息直接返回
return userList; return userList;
} }
} else {// 有通话记录信息,直接返回 } else {// 有通话记录信息,直接返回
return seatList; return seatList;
} }
} else{// 有席位信息直接返回 } else{// 有席位信息直接返回
return callList; return callList;
} }
} }
/** /**
* 被叫方添加通话记录 * 被叫方添加通话记录
* *
* @author renmb * @author renmb
* @time 2017年3月17日 * @time 2017年3月17日
* @param bean * @param bean
* @param fromUser * @param fromUser
*/ */
// public void addCallRecordByCalled(CallFindPhoneInfoBean bean, CallPhoneInfoListEntity fromUser){ // public void addCallRecordByCalled(CallFindPhoneInfoBean bean, CallPhoneInfoListEntity fromUser){
// if("RECORD".equals(fromUser.getFromType())){// 记录是从通话记录里面获取的 // if("RECORD".equals(fromUser.getFromType())){// 记录是从通话记录里面获取的
// //
// return ; // return ;
// } // }
// CallPhoneInfoListEntity calledUser = dao.findUserInfoByNumOrId(bean);// 被拨打方用户信息 // CallPhoneInfoListEntity calledUser = dao.findUserInfoByNumOrId(bean);// 被拨打方用户信息
// if(calledUser == null){ // if(calledUser == null){
// //
// return ; // return ;
// } // }
// CallRecordEntity record = new CallRecordEntity(); // CallRecordEntity record = new CallRecordEntity();
// record.setCallType("USER"); // record.setCallType("USER");
// record.setEndStatus("CALLING"); // record.setEndStatus("CALLING");
// record.setId(IdWorker.getNextId()); // record.setId(IdWorker.getNextId());
// record.setChannelType("APP"); // record.setChannelType("APP");
// record.setStartTime(new Date()); // record.setStartTime(new Date());
// record.setAppCode(bean.getAppCode()); // record.setAppCode(bean.getAppCode());
// record.setPlatform(bean.getPlatform()); // record.setPlatform(bean.getPlatform());
// record.setVersionName(bean.getVersionName()); // record.setVersionName(bean.getVersionName());
// record.setUserCount(1); // record.setUserCount(1);
// if(StringUtils.isEmpty(fromUser.getUserId())){ // if(StringUtils.isEmpty(fromUser.getUserId())){
// record.setCreateBy(""); // record.setCreateBy("");
// record.setCreateName(bean.getPhoneNumer()); // record.setCreateName(bean.getPhoneNumer());
// record.setCreatePhone(bean.getPhoneNumer()); // record.setCreatePhone(bean.getPhoneNumer());
// record.setCreateShowPhone(bean.getPhoneNumer()); // record.setCreateShowPhone(bean.getPhoneNumer());
// record.setPhoneType(Util.getPhoneType(bean.getPhoneNumer())); // record.setPhoneType(Util.getPhoneType(bean.getPhoneNumer()));
// } else{ // } else{
// //
// record.setCreateBy(fromUser.getUserId()); // record.setCreateBy(fromUser.getUserId());
// record.setCreateName(fromUser.getName()); // record.setCreateName(fromUser.getName());
// record.setCreatePhone(fromUser.getHuaweiNum()); // record.setCreatePhone(fromUser.getHuaweiNum());
// record.setCreateShowPhone(bean.getPhoneNumer()); // record.setCreateShowPhone(bean.getPhoneNumer());
// record.setPhoneType(Util.getPhoneType(fromUser.getHuaweiNum())); // record.setPhoneType(Util.getPhoneType(fromUser.getHuaweiNum()));
// } // }
// this.createCallRecord(record);// 添加主记录 // this.createCallRecord(record);// 添加主记录
// //
// CallPhoneBean calledPhone = new CallPhoneBean(); // CallPhoneBean calledPhone = new CallPhoneBean();
// calledPhone.setId(IdWorker.getNextId()); // calledPhone.setId(IdWorker.getNextId());
// calledPhone.setPhoneType(Util.getPhoneType(bean.getPhoneNumer())); // calledPhone.setPhoneType(Util.getPhoneType(bean.getPhoneNumer()));
// calledPhone.setRecordId(record.getId()); // calledPhone.setRecordId(record.getId());
// calledPhone.setTitle(bean.getPhoneNumer()); // calledPhone.setTitle(bean.getPhoneNumer());
// calledPhone.setFlow("CALLED"); // calledPhone.setFlow("CALLED");
// calledPhone.setUsername(calledUser.getName()); // calledPhone.setUsername(calledUser.getName());
// calledPhone.setUserId(calledUser.getUserId()); // calledPhone.setUserId(calledUser.getUserId());
// //
// List<CallPhoneBean> phoneList = new ArrayList<CallPhoneBean>(1); // List<CallPhoneBean> phoneList = new ArrayList<CallPhoneBean>(1);
// phoneList.add(calledPhone); // phoneList.add(calledPhone);
// this.addCallPhoneList(phoneList);// 添加电话列表 // this.addCallPhoneList(phoneList);// 添加电话列表
// } // }
/** /**
* 综合查询手机号的归属地信息 * 综合查询手机号的归属地信息
* *
* @author renmb * @author renmb
* @time 2017年1月22日 * @time 2017年1月22日
* @param mobile * @param mobile
* @return * @return
*/ */
@Transactional(readOnly = false) @Transactional(readOnly = false)
public CallPhoneAreaEntity addPhoneArea(String mobile){ public CallPhoneAreaEntity addPhoneArea(String mobile){
if(StringUtils.isEmpty(mobile) || mobile.length()<7){ if(StringUtils.isEmpty(mobile) || mobile.length()<7){
return null; return null;
} }
String src = new String(mobile); String src = new String(mobile);
CallPhoneAreaEntity phoneArea = null; CallPhoneAreaEntity phoneArea = null;
mobile = mobile.replaceAll("^0+", "");// 去掉手机号前面的0 mobile = mobile.replaceAll("^0+", "");// 去掉手机号前面的0
if(mobile.length()>7){ if(mobile.length()>7){
CallPhoneAreaEntity searchMobile = new CallPhoneAreaEntity(); CallPhoneAreaEntity searchMobile = new CallPhoneAreaEntity();
// 第二步: 通过地区码查询手机归宿地信息 // 第二步: 通过地区码查询手机归宿地信息
searchMobile.setAreaCode(mobile.substring(0, 7)); searchMobile.setAreaCode(mobile.substring(0, 7));
searchMobile.setMobile(mobile); searchMobile.setMobile(mobile);
phoneArea = dao.getPhoneAreaByAreaCode(searchMobile); phoneArea = dao.getPhoneAreaByAreaCode(searchMobile);
if(phoneArea != null && StringUtils.isNotEmpty(phoneArea.getPremobile())){ if(phoneArea != null && StringUtils.isNotEmpty(phoneArea.getPremobile())){
phoneArea.setMobileNubmer(phoneArea.getPremobile()+mobile); phoneArea.setMobileNubmer(phoneArea.getPremobile()+mobile);
return phoneArea; return phoneArea;
} }
// 第三步:通过360接口获取归属地信息 // 第三步:通过360接口获取归属地信息
phoneArea = this.getCallPhoneAreaBy360(mobile); phoneArea = this.getCallPhoneAreaBy360(mobile);
if(phoneArea != null){ if(phoneArea != null){
if(StringUtils.isNotEmpty(phoneArea.getPremobile())){// 手机类型进行缓存数据库 if(StringUtils.isNotEmpty(phoneArea.getPremobile())){// 手机类型进行缓存数据库
phoneArea.setId(IdWorker.getNextId()); phoneArea.setId(IdWorker.getNextId());
phoneArea.setUpdateDate(new Date()); phoneArea.setUpdateDate(new Date());
if(phoneArea.getMobile().length()>=7){ if(phoneArea.getMobile().length()>=7){
phoneArea.setAreaCode(phoneArea.getMobile().substring(0, 7)); phoneArea.setAreaCode(phoneArea.getMobile().substring(0, 7));
dao.addPhoneAreaCode(phoneArea); dao.addPhoneAreaCode(phoneArea);
} }
dao.addPhoneAreaRecord(phoneArea); dao.addPhoneAreaRecord(phoneArea);
} else{// 非手机号,按座机号处理 } else{// 非手机号,按座机号处理
phoneArea.setShowPhone(src); phoneArea.setShowPhone(src);
phoneArea.setPhone(Util.formatedWorkPhone(src)); phoneArea.setPhone(Util.formatedWorkPhone(src));
phoneArea.setType("PHONE"); phoneArea.setType("PHONE");
} }
return phoneArea; return phoneArea;
} }
} }
phoneArea = new CallPhoneAreaEntity(); phoneArea = new CallPhoneAreaEntity();
phoneArea.setShowPhone(src); phoneArea.setShowPhone(src);
phoneArea.setPhone(Util.formatedWorkPhone(src)); phoneArea.setPhone(Util.formatedWorkPhone(src));
phoneArea.setType("PHONE"); phoneArea.setType("PHONE");
return phoneArea; return phoneArea;
} }
@Transactional(readOnly = false) @Transactional(readOnly = false)
public CallPhoneAreaEntity getCallPhoneAreaBy360(String mobile){ public CallPhoneAreaEntity getCallPhoneAreaBy360(String mobile){
CallPhoneAreaEntity callPhone = new CallPhoneAreaEntity(); CallPhoneAreaEntity callPhone = new CallPhoneAreaEntity();
callPhone.setMobile(mobile); callPhone.setMobile(mobile);
// 格式化手机号 // 格式化手机号
if(StringUtils.isNotBlank(mobile)){ if(StringUtils.isNotBlank(mobile)){
// 国外手机号,前面加拨3个0 // 国外手机号,前面加拨3个0
if(mobile.startsWith("+")){ if(mobile.startsWith("+")){
callPhone.setType("MOBILE"); callPhone.setType("MOBILE");
callPhone.setPremobile("000"); callPhone.setPremobile("000");
callPhone.setMobileNubmer("000"+mobile.replace("+", "")); callPhone.setMobileNubmer("000"+mobile.replace("+", ""));
return callPhone; return callPhone;
// 可能是手机号 // 可能是手机号
} else if(mobile.startsWith("0") == false){ } else if(mobile.startsWith("0") == false){
PhoneAreaEntity area = PhoneAreaUtil.get360PhoneArea(mobile); PhoneAreaEntity area = PhoneAreaUtil.get360PhoneArea(mobile);
if(area == null){ if(area == null){
area = PhoneAreaUtil.get360PhoneArea(mobile); area = PhoneAreaUtil.get360PhoneArea(mobile);
} }
if(area != null && StringUtils.isNotBlank(area.getProvince())){// 能够查到省份信息 if(area != null && StringUtils.isNotBlank(area.getProvince())){// 能够查到省份信息
if(area.getProvince().contains("北京") if(area.getProvince().contains("北京")
|| (StringUtils.isNotBlank(area.getCity()) && area.getCity().contains("北京"))){// 北京前面加拨一个0 || (StringUtils.isNotBlank(area.getCity()) && area.getCity().contains("北京"))){// 北京前面加拨一个0
callPhone.setType("MOBILE"); callPhone.setType("MOBILE");
callPhone.setMobileNubmer("0"+mobile);// 加拨1个0 callPhone.setMobileNubmer("0"+mobile);// 加拨1个0
callPhone.setPremobile("0"); callPhone.setPremobile("0");
callPhone.setMobileProvince("北京"); callPhone.setMobileProvince("北京");
callPhone.setMobileCity("北京"); callPhone.setMobileCity("北京");
callPhone.setMobileSp(StringUtils.isBlank(area.getSp()) ? "" : area.getSp()); callPhone.setMobileSp(StringUtils.isBlank(area.getSp()) ? "" : area.getSp());
return callPhone; return callPhone;
} else {// 非北京号码加拨两个0 } else {// 非北京号码加拨两个0
callPhone.setType("MOBILE"); callPhone.setType("MOBILE");
callPhone.setMobileNubmer("00"+mobile);// 加拨2个0 callPhone.setMobileNubmer("00"+mobile);// 加拨2个0
callPhone.setPremobile("00"); callPhone.setPremobile("00");
callPhone.setMobileProvince(area.getProvince()); callPhone.setMobileProvince(area.getProvince());
callPhone.setMobileCity(StringUtils.isBlank(area.getCity()) ? "" : area.getCity()); callPhone.setMobileCity(StringUtils.isBlank(area.getCity()) ? "" : area.getCity());
callPhone.setMobileSp(StringUtils.isBlank(area.getSp()) ? "" : area.getSp()); callPhone.setMobileSp(StringUtils.isBlank(area.getSp()) ? "" : area.getSp());
return callPhone; return callPhone;
} }
} }
} }
} }
// 非手机号,按座机号处理 // 非手机号,按座机号处理
callPhone.setShowPhone(mobile); callPhone.setShowPhone(mobile);
callPhone.setPhone(Util.formatedWorkPhone(mobile)); callPhone.setPhone(Util.formatedWorkPhone(mobile));
callPhone.setType("PHONE"); callPhone.setType("PHONE");
return callPhone; return callPhone;
} }
/** /**
* 添加安科同步过来的数据 * 添加安科同步过来的数据
* *
* @author renmb * @author renmb
* @time 2017年2月28日 * @time 2017年2月28日
* @param entity * @param entity
* @return * @return
*/ */
public boolean addSoundRecord(CallSoundRecordBean entity,List<CallPhoneBean> phoneList,CallRecordEntity record){ public boolean addSoundRecord(CallSoundRecordBean entity,List<CallPhoneBean> phoneList,CallRecordEntity record){
dao.createCallRecord(record); dao.createCallRecord(record);
dao.addCallPhoneList(phoneList); dao.addCallPhoneList(phoneList);
Integer count = dao.addSoundRecord(entity); Integer count = dao.addSoundRecord(entity);
return count != null && count > 0; return count != null && count > 0;
} }
public Map<String, String> findPhoneByHuaweiNum(List<String> huweiNumList){ public Map<String, String> findPhoneByHuaweiNum(List<String> huweiNumList){
HuaweiNumListEntity entity = new HuaweiNumListEntity(); HuaweiNumListEntity entity = new HuaweiNumListEntity();
entity.setHuweiNumList(huweiNumList); entity.setHuweiNumList(huweiNumList);
List<CallPhoneInfoListEntity> list = dao.findPhneListByHuaweiNum(entity); List<CallPhoneInfoListEntity> list = dao.findPhneListByHuaweiNum(entity);
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
return null; return null;
} }
Map<String, String> map = new HashMap<String, String>(); Map<String, String> map = new HashMap<String, String>();
for(CallPhoneInfoListEntity p:list){ for(CallPhoneInfoListEntity p:list){
map.put(p.getHuaweiNum(), p.getPhone()); map.put(p.getHuaweiNum(), p.getPhone());
} }
return map; return map;
} }
// public String GetPhoneById(String id){ // public String GetPhoneById(String id){
// return dao. GetPhoneById( id); // return dao. GetPhoneById( id);
// } // }
public List<MemberEntity> getMemberList(String id) { public List<MemberEntity> getMemberList(String id) {
return dao.getMemberList( id); return dao.getMemberList( id);
} }
public String getNameByPhone(String createPhone) { public String getNameByPhone(String createPhone) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return dao.getNameByPhone(createPhone); return dao.getNameByPhone(createPhone);
} }
public String getNameByPhoneFromSeat(String createPhone) { public String getNameByPhoneFromSeat(String createPhone) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return dao.getNameByPhoneFromSeat(createPhone); return dao.getNameByPhoneFromSeat(createPhone);
} }
public String getIdByPhoneFromSeat(String callNo) { public String getIdByPhoneFromSeat(String callNo) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return dao.getIdByPhoneFromSeat(callNo); return dao.getIdByPhoneFromSeat(callNo);
} }
public String getIdByPhone(String callNo) { public String getIdByPhone(String callNo) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return dao.getIdByPhone(callNo); return dao.getIdByPhone(callNo);
} }
} }
...@@ -82,7 +82,10 @@ public class UserController { ...@@ -82,7 +82,10 @@ public class UserController {
String message = userService.validate(requestBean, errors); String message = userService.validate(requestBean, errors);
if (message == null) { if (message == null) {
UserFindByCodeBean reqUserBean = requestBean.getObjectBean(UserFindByCodeBean.class); UserFindByCodeBean reqUserBean = requestBean.getObjectBean(UserFindByCodeBean.class);
// reqUserBean.setUsercode("1000154873");
message = userService.validate(reqUserBean, errors); message = userService.validate(reqUserBean, errors);
message=null;
if (message == null) { if (message == null) {
UserEntity userEntity = userService.findByCode(reqUserBean.getUsercode()); UserEntity userEntity = userService.findByCode(reqUserBean.getUsercode());
message = userService.validate(userEntity, errors); message = userService.validate(userEntity, errors);
......
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment