From 819db3ad4bfee0804a27a0da73b314e5256a04ba Mon Sep 17 00:00:00 2001 From: Shaun Chyxion Date: Sun, 9 May 2021 11:35:26 +0800 Subject: [PATCH] add call hangup --- cms/src/main/resources/application.yml | 8 ++-- codegen.yml | 2 +- .../client/transport/model/DataWrapper.java | 8 +++- .../client/transport/util/UrlDecodeUtils.java | 3 +- .../org/freeswitch/esl/client/TestDriver.java | 7 ++++ .../pudonghot/yo/mapper/CallHangupMapper.java | 30 ++++++++++++++ .../pudonghot/yo/mapper/CallHangupMapper.xml | 12 ++++++ .../yo/mapper/CallHangupMapperTest.java | 39 +++++++++++++++++++ .../com/pudonghot/yo/mapper/TestDriver.java | 8 ---- lib/mapper/src/test/resources/application.yml | 4 +- .../pudonghot/yo/model/domain/CallHangup.java | 30 ++++++++++++++ .../raw/src/test/resources/application.yml | 2 +- .../templates/codegen/mapper-test.ftl | 4 +- server/src/main/resources/application.yml | 8 ++-- 14 files changed, 140 insertions(+), 25 deletions(-) create mode 100644 lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.java create mode 100644 lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.xml create mode 100644 lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallHangupMapperTest.java create mode 100644 lib/model/src/main/java/com/pudonghot/yo/model/domain/CallHangup.java diff --git a/cms/src/main/resources/application.yml b/cms/src/main/resources/application.yml index 7afdc659..c7194a59 100644 --- a/cms/src/main/resources/application.yml +++ b/cms/src/main/resources/application.yml @@ -16,7 +16,7 @@ spring: max-file-size: 256MB max-request-size: 256MB redis: - host: 192.168.3.5 + host: 172.16.4.6 port: 6379 password: 123456 @@ -26,12 +26,12 @@ site: # Datasource yo: datasource: - url: jdbc:mysql://192.168.3.5/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://172.16.4.6/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: yoqw password: yoqw_query! freeswitch: datasource: - url: jdbc:mysql://192.168.3.5/fs_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://172.16.4.6/fs_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: freeswitch password: RR!h5IpirsnJ cms: @@ -65,7 +65,7 @@ tigon: ## Dubbo Registry dubbo: registry: - address: zookeeper://192.168.3.5:2181 + address: zookeeper://172.16.4.6:2181 file: ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache consumer: check: false diff --git a/codegen.yml b/codegen.yml index a675fa18..42d75608 100644 --- a/codegen.yml +++ b/codegen.yml @@ -20,7 +20,7 @@ tigon: project-dir: cms datasource: password: yoqw_query! - url: jdbc:mysql://192.168.3.5/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://172.16.4.6/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: yoqw default-gen-items: model,form,mapper,service,service-impl,controller file-doc: diff --git a/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/model/DataWrapper.java b/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/model/DataWrapper.java index ef6c4c60..48c0f189 100644 --- a/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/model/DataWrapper.java +++ b/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/model/DataWrapper.java @@ -1,5 +1,6 @@ package org.freeswitch.esl.client.transport.model; +import lombok.val; import lombok.Getter; import java.util.Map; import lombok.ToString; @@ -218,8 +219,11 @@ public class DataWrapper implements Serializable { * * @return long value of the event header "Event-Date-Timestamp" */ - public long getTimestamp() { - return Long.valueOf(getVal(EventHeaderNames.EVENT_DATE_TIMESTAMP)); + public Long getTimestamp() { + val val = getVal(EventHeaderNames.EVENT_DATE_TIMESTAMP); + return StringUtils.isNotBlank(val) ? + Long.valueOf(val.substring(0, val.length() - 3)) : + System.currentTimeMillis(); } /** diff --git a/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/util/UrlDecodeUtils.java b/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/util/UrlDecodeUtils.java index a7d21c57..0c028d7a 100644 --- a/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/util/UrlDecodeUtils.java +++ b/lib/fsesl-api/src/main/java/org/freeswitch/esl/client/transport/util/UrlDecodeUtils.java @@ -1,5 +1,6 @@ package org.freeswitch.esl.client.transport.util; +import lombok.val; import java.net.URLDecoder; import lombok.extern.slf4j.Slf4j; import java.nio.charset.StandardCharsets; @@ -25,7 +26,7 @@ public class UrlDecodeUtils { } try { - final String decVal = URLDecoder.decode( + val decVal = URLDecoder.decode( val.replace("+", "%2B"), StandardCharsets.UTF_8.name()) .replace("%2B", "+"); diff --git a/lib/fsesl-api/src/test/java/org/freeswitch/esl/client/TestDriver.java b/lib/fsesl-api/src/test/java/org/freeswitch/esl/client/TestDriver.java index 9343e9a9..4f5a8886 100644 --- a/lib/fsesl-api/src/test/java/org/freeswitch/esl/client/TestDriver.java +++ b/lib/fsesl-api/src/test/java/org/freeswitch/esl/client/TestDriver.java @@ -1,5 +1,6 @@ package org.freeswitch.esl.client; +import lombok.val; import org.junit.Test; import lombok.extern.slf4j.Slf4j; import org.freeswitch.esl.client.transport.util.UrlDecodeUtils; @@ -15,4 +16,10 @@ public class TestDriver { public void testUrlDecode() { log.info("Decode [{}].", UrlDecodeUtils.decodeUriComponent("+OK accepted")); } + + @Test + public void testSubStr() { + val str = "1620374364903250"; + log.info("[{}] -> [{}].", str, str.substring(0, str.length() - 3)); + } } diff --git a/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.java b/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.java new file mode 100644 index 00000000..cb7a1469 --- /dev/null +++ b/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.java @@ -0,0 +1,30 @@ +package com.pudonghot.yo.mapper; + +import lombok.val; +import me.chyxion.tigon.mybatis.Search; +import me.chyxion.tigon.mybatis.BaseMapper; +import com.pudonghot.yo.model.domain.CallHangup; + +/** + * @author Donghuang + * @date May 09, 2021 11:04:56 + */ +public interface CallHangupMapper extends BaseMapper { + + /** + * update or insert + * + * @param model model + */ + default void upsert(final CallHangup model) { + val modelExisted = find(new Search(CallHangup.CONN_ID, model.getConnId())); + if (modelExisted != null) { + modelExisted.setCallerHangupStamp(model.getCallerHangupStamp()); + modelExisted.setCalledHangupStamp(model.getCalledHangupStamp()); + update(modelExisted); + } + else { + insert(model); + } + } +} \ No newline at end of file diff --git a/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.xml b/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.xml new file mode 100644 index 00000000..ca4a240f --- /dev/null +++ b/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallHangupMapper.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallHangupMapperTest.java b/lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallHangupMapperTest.java new file mode 100644 index 00000000..8f8fac51 --- /dev/null +++ b/lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallHangupMapperTest.java @@ -0,0 +1,39 @@ +package com.pudonghot.yo.mapper; + +import lombok.val; +import java.util.Date; +import org.junit.Test; +import org.junit.runner.RunWith; +import me.chyxion.tigon.mybatis.Search; +import com.pudonghot.yo.model.domain.CallHangup; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; + +/** + * @author Donghuang + * @date May 09, 2021 11:04:56 + */ +@RunWith(SpringJUnit4ClassRunner.class) +@SpringBootTest(classes = TestDriver.class) +public class CallHangupMapperTest { + @Autowired + private CallHangupMapper mapper; + + @Test + public void mapperTest() { + mapper.list(new Search().limit(8)); + } + + @Test + public void testUpsert() { + val model = new CallHangup(); + model.setTenantId(1); + model.setConnId("5f3e3cd00ed8dd5af0bb3acb"); + model.setCallerHangupStamp(new Date()); + mapper.upsert(model); + model.setCalledHangupStamp(new Date()); + mapper.upsert(model); + } +} \ No newline at end of file diff --git a/lib/mapper/src/test/java/com/pudonghot/yo/mapper/TestDriver.java b/lib/mapper/src/test/java/com/pudonghot/yo/mapper/TestDriver.java index 79d6b11b..9739c26c 100644 --- a/lib/mapper/src/test/java/com/pudonghot/yo/mapper/TestDriver.java +++ b/lib/mapper/src/test/java/com/pudonghot/yo/mapper/TestDriver.java @@ -2,7 +2,6 @@ package com.pudonghot.yo.mapper; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; import org.springframework.context.annotation.ImportResource; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -15,11 +14,4 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @MapperScan("com.pudonghot.yo.mapper") @ImportResource("classpath*:spring/spring-*.xml") public class TestDriver { - - /** - * main - */ - public static void main(String[] args) { - SpringApplication.run(TestDriver.class, args); - } } diff --git a/lib/mapper/src/test/resources/application.yml b/lib/mapper/src/test/resources/application.yml index 16036798..bae0f9cd 100644 --- a/lib/mapper/src/test/resources/application.yml +++ b/lib/mapper/src/test/resources/application.yml @@ -2,11 +2,11 @@ spring: application: name: yo-mapper redis: - host: 192.168.3.5 + host: 172.16.4.6 port: 6379 password: 123456 yo: datasource: password: yoqw_query! - url: jdbc:mysql://192.168.3.5/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://172.16.4.6/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: yoqw diff --git a/lib/model/src/main/java/com/pudonghot/yo/model/domain/CallHangup.java b/lib/model/src/main/java/com/pudonghot/yo/model/domain/CallHangup.java new file mode 100644 index 00000000..c01902dc --- /dev/null +++ b/lib/model/src/main/java/com/pudonghot/yo/model/domain/CallHangup.java @@ -0,0 +1,30 @@ +package com.pudonghot.yo.model.domain; + +import lombok.Getter; +import lombok.Setter; +import java.util.Date; +import me.chyxion.tigon.mybatis.Table; +import me.chyxion.tigon.mybatis.NotUpdate; +import lombok.experimental.FieldNameConstants; +import me.chyxion.tigon.mybatis.NotUpdateWhenNull; + +/** + * @author Donghuang + * @date May 09, 2021 11:04:56 + */ +@Getter +@Setter +@Table("br_call_hangup") +@FieldNameConstants(prefix = "") +public class CallHangup extends BaseDomain { + private static final long serialVersionUID = 1L; + + @NotUpdate + private Integer tenantId; + @NotUpdate + private String connId; + @NotUpdateWhenNull + private Date callerHangupStamp; + @NotUpdateWhenNull + private Date calledHangupStamp; +} \ No newline at end of file diff --git a/lib/redis/raw/src/test/resources/application.yml b/lib/redis/raw/src/test/resources/application.yml index 1cd0c236..28ccd486 100644 --- a/lib/redis/raw/src/test/resources/application.yml +++ b/lib/redis/raw/src/test/resources/application.yml @@ -3,7 +3,7 @@ spring: name: yo-redis-raw redis: database: 0 - host: 192.168.3.5 + host: 172.16.4.6 password: 123456 port: 6379 redisson: diff --git a/lib/tigon/codegen/src/main/resources/templates/codegen/mapper-test.ftl b/lib/tigon/codegen/src/main/resources/templates/codegen/mapper-test.ftl index ee529e4e..384daf86 100644 --- a/lib/tigon/codegen/src/main/resources/templates/codegen/mapper-test.ftl +++ b/lib/tigon/codegen/src/main/resources/templates/codegen/mapper-test.ftl @@ -3,7 +3,7 @@ package ${mapperPkg}; import org.junit.Test; import org.junit.runner.RunWith; import ${searchFullName}; -import org.springframework.test.context.ContextConfiguration; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; @@ -12,7 +12,7 @@ import org.springframework.test.context.junit4.AbstractTransactionalJUnit4Spring ${objDoc} @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration("classpath*:spring/spring-*.xml") +@SpringBootTest(classes = TestDriver.class) public class ${ModelName}MapperTest extends AbstractTransactionalJUnit4SpringContextTests { @Autowired private ${ModelName}Mapper mapper; diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml index 04c50578..72ca7e4a 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -31,7 +31,7 @@ spring: write-dates-as-timestamps: true time-zone: GMT+8 redis: - host: 192.168.3.5 + host: 172.16.4.6 port: 6379 password: 123456 redisson: @@ -49,14 +49,14 @@ dubbo: retries: 0 timeout: 24000 registry: - address: zookeeper://192.168.3.5:2181 + address: zookeeper://172.16.4.6:2181 file: ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache scan: base-packages: com.pudonghot.yo.fsagent.service.dubbo.impl yo: datasource: - url: jdbc:mysql://192.168.3.5/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://172.16.4.6/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: yoqw password: yoqw_query! esl: @@ -64,7 +64,7 @@ yo: host: 192.168.3.7 freeswitch: datasource: - url: jdbc:mysql://192.168.3.5/fs_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://172.16.4.6/fs_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: freeswitch password: RR!h5IpirsnJ fsagent: