diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..8c90c6d
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "server/lib/tigon"]
+ path = server/lib/tigon
+ url = git@git.pudong-hot.com:donghuang/tigon.git
diff --git a/server/crm/pom.xml b/server/crm/pom.xml
index 027e235..ab3935d 100644
--- a/server/crm/pom.xml
+++ b/server/crm/pom.xml
@@ -10,9 +10,9 @@
com.pudonghot.ambition
- web-parent
+ ambition-crm
0.0.1-SNAPSHOT
- ../web-parent
+ ../
@@ -22,8 +22,23 @@
- com.pudonghot.ambition
- util
+ me.chyxion.tigon
+ tigon-web
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-log4j2
+
+
+ commons-codec
+ commons-codec
com.pudonghot.ambition
@@ -39,7 +54,7 @@
me.chyxion.tigon
- tigon-shiro-spring-boot
+ tigon-shiro
commons-io
@@ -55,6 +70,11 @@
joda-time
2.9.9
+
+ org.projectlombok
+ lombok
+ provided
+
org.springframework
@@ -73,6 +93,16 @@
+
+ ${project.build.finalName}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
dev
diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/AmbitionCRM.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/AmbitionCRM.java
index d6797a7..32b8941 100644
--- a/server/crm/src/main/java/com/pudonghot/ambition/crm/AmbitionCRM.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/AmbitionCRM.java
@@ -1,20 +1,15 @@
package com.pudonghot.ambition.crm;
import org.springframework.boot.SpringApplication;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
/**
* @author Shaun Chyxion
* chyxion@163.com
* Mar 05, 2017 14:40:30
*/
-@EnableAutoConfiguration(exclude = {
- RedisAutoConfiguration.class,
- DataSourceAutoConfiguration.class})
-@ComponentScan("com.pudonghot.ambition.crm")
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class AmbitionCRM {
/**
diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/auth/AuthCallbackSupport.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/auth/AuthCallbackSupport.java
index ef32fca..e3c4602 100644
--- a/server/crm/src/main/java/com/pudonghot/ambition/crm/auth/AuthCallbackSupport.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/auth/AuthCallbackSupport.java
@@ -15,7 +15,7 @@ import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.AuthenticationException;
import com.pudonghot.ambition.crm.service.AuthLogService;
-import com.pudonghot.ambition.util.HttpServletRequestUtils;
+import com.pudonghot.ambition.crm.util.HttpServletRequestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.pudonghot.ambition.crm.service.AuthFailedLogService;
import com.pudonghot.ambition.crm.form.create.AuthLogFormForCreate;
diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/FileController.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/FileController.java
index c36552a..ac960db 100644
--- a/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/FileController.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/controller/FileController.java
@@ -39,8 +39,7 @@ public class FileController {
final File file = fileApi.getFile(fileInfo);
if (file.exists()) {
rm = new ResourceModel(file,
- fileInfo.getContentType(), null);
- rm.setName(fileInfo.getDownloadName());
+ fileInfo.getContentType(), fileInfo.getDownloadName());
}
}
return rm != null ?
diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java
index c47562f..2334c0c 100644
--- a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java
@@ -208,7 +208,7 @@ public class ApplicationServiceSupport
*/
@Override
@Transactional(rollbackFor = Throwable.class)
- public int delete(final String id) {
+ public Application delete(final String id) {
log.info("Delete application [{}].", id);
final Application app = find(id);
Assert.state(app != null, "No application [" + id + "] found");
@@ -224,7 +224,8 @@ public class ApplicationServiceSupport
attachmentMapper.list(appFileSearch).forEach(
attachment -> fileApi.deleteById(attachment.getFileId()));
attachmentMapper.delete(appFileSearch);
- return mapper.delete(id);
+ mapper.delete(id);
+ return app;
}
private List uploadFiles(
diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerIssueServiceSupport.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerIssueServiceSupport.java
index 7df3c75..7669d37 100644
--- a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerIssueServiceSupport.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/CustomerIssueServiceSupport.java
@@ -40,7 +40,7 @@ public class CustomerIssueServiceSupport
final CustomerIssue issue = find(id);
Assert.state(issue != null, "No issue [" + id + "] found");
if (!issue.getIssue().equals(form.getIssue()) ||
- !form.getEnabled().equals(issue.isEnabled())) {
+ form.isEnabled() != issue.isEnabled()) {
return super.update(form);
}
log.info("Issue [{}] not changed", issue);
diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/HomePageServiceSupport.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/HomePageServiceSupport.java
index 0b0e88c..41b1f9b 100644
--- a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/HomePageServiceSupport.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/HomePageServiceSupport.java
@@ -60,7 +60,7 @@ public class HomePageServiceSupport
* {@inheritDoc}
*/
@Override
- public int delete(final String id) {
+ public HomePage delete(final String id) {
final HomePage homePage = find(id);
Assert.state(homePage != null, "No home page [" + id + "] found");
Assert.state(!homePage.isEnabled(), "Home page [" + id + "] is enabled");
diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/UserServiceSupport.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/UserServiceSupport.java
index 398b11d..f9200f0 100644
--- a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/UserServiceSupport.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/UserServiceSupport.java
@@ -7,7 +7,7 @@ import me.chyxion.tigon.model.ViewModel;
import org.apache.commons.lang3.StringUtils;
import com.pudonghot.ambition.crm.model.User;
import org.springframework.stereotype.Service;
-import com.pudonghot.ambition.util.Sha512Utils;
+import com.pudonghot.ambition.crm.util.Sha512Utils;
import org.hibernate.validator.constraints.NotBlank;
import com.pudonghot.ambition.crm.mapper.UserMapper;
import com.pudonghot.ambition.crm.service.UserService;
@@ -46,7 +46,7 @@ public class UserServiceSupport
* {@inheritDoc}
*/
@Override
- public int delete(final String id) {
+ public User delete(final String id) {
User user = find(id);
Assert.state(user != null, "No user [" + id + "] found");
Assert.state(!user.isEnabled(), "User [" + id + "] is enabled");
diff --git a/server/util/src/main/java/com/pudonghot/ambition/util/HttpServletRequestUtils.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/util/HttpServletRequestUtils.java
similarity index 96%
rename from server/util/src/main/java/com/pudonghot/ambition/util/HttpServletRequestUtils.java
rename to server/crm/src/main/java/com/pudonghot/ambition/crm/util/HttpServletRequestUtils.java
index 7f10f13..94714c6 100644
--- a/server/util/src/main/java/com/pudonghot/ambition/util/HttpServletRequestUtils.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/util/HttpServletRequestUtils.java
@@ -1,4 +1,4 @@
-package com.pudonghot.ambition.util;
+package com.pudonghot.ambition.crm.util;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
diff --git a/server/util/src/main/java/com/pudonghot/ambition/util/Sha512Utils.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/util/Sha512Utils.java
similarity index 93%
rename from server/util/src/main/java/com/pudonghot/ambition/util/Sha512Utils.java
rename to server/crm/src/main/java/com/pudonghot/ambition/crm/util/Sha512Utils.java
index bc90d1a..f2d8d02 100644
--- a/server/util/src/main/java/com/pudonghot/ambition/util/Sha512Utils.java
+++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/util/Sha512Utils.java
@@ -1,4 +1,4 @@
-package com.pudonghot.ambition.util;
+package com.pudonghot.ambition.crm.util;
import java.security.MessageDigest;
import org.apache.commons.codec.binary.Hex;
diff --git a/server/file-api/pom.xml b/server/file-api/pom.xml
index cde17ae..ee60c89 100644
--- a/server/file-api/pom.xml
+++ b/server/file-api/pom.xml
@@ -17,7 +17,7 @@
- org.hibernate
+ org.hibernate.validator
hibernate-validator
diff --git a/server/lib/pom.xml b/server/lib/pom.xml
new file mode 100644
index 0000000..4e7c32e
--- /dev/null
+++ b/server/lib/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+ ambition-lib
+ pom
+ Ambition Library
+ Ambition Library
+
+
+ com.pudonghot.ambition
+ ambition-crm
+ 0.0.1-SNAPSHOT
+ ../
+
+
+
+ tigon
+
+
+
diff --git a/server/lib/tigon b/server/lib/tigon
new file mode 160000
index 0000000..7a0c14b
--- /dev/null
+++ b/server/lib/tigon
@@ -0,0 +1 @@
+Subproject commit 7a0c14ba3f821049872595609dbf278cf410cbd5
diff --git a/server/mapper/pom.xml b/server/mapper/pom.xml
index 4ba0e15..6320587 100644
--- a/server/mapper/pom.xml
+++ b/server/mapper/pom.xml
@@ -33,10 +33,6 @@
me.chyxion.tigon
tigon-mybatis
-
- org.mybatis
- mybatis-spring
-
org.springframework
spring-jdbc
@@ -51,6 +47,11 @@
mysql
mysql-connector-java
+
+ org.projectlombok
+ lombok
+ provided
+
@@ -145,7 +146,7 @@
me.chyxion.tigon
- tigon-webmvc-war
+ tigon-web
org.apache.logging.log4j
diff --git a/server/model/pom.xml b/server/model/pom.xml
index f2320b6..2080bba 100644
--- a/server/model/pom.xml
+++ b/server/model/pom.xml
@@ -26,7 +26,7 @@
tigon-model
- org.hibernate
+ org.hibernate.validator
hibernate-validator
@@ -35,12 +35,13 @@
me.chyxion.tigon
- tigon-webmvc-war
+ tigon-web
${tigon.webmvc.scrope}
org.projectlombok
lombok
+ provided
diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/Application.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/Application.java
index 7671a59..1d8b446 100644
--- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/Application.java
+++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/Application.java
@@ -19,11 +19,13 @@ public class Application extends M3 {
// Column Names
public static final String NAME = "name";
+ public static final String NAME_PREFIX = "name_prefix";
public static final String CONTENT = "content";
public static final String OWNER = "owner";
// Properties
private String name;
+ private String namePrefix;
private String content;
private String owner;
diff --git a/server/pinyin-util/README.md b/server/pinyin-util/README.md
deleted file mode 100644
index 5cd132f..0000000
--- a/server/pinyin-util/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# name-pinyin
diff --git a/server/pinyin-util/pom.xml b/server/pinyin-util/pom.xml
deleted file mode 100644
index fc0dae0..0000000
--- a/server/pinyin-util/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
- 4.0.0
- pinyin-util
- Pinyin Util
- jar
-
-
- com.pudonghot.ambition
- ambition-crm
- 0.0.1-SNAPSHOT
- ../
-
-
-
-
- com.belerweb
- pinyin4j
- 2.5.0
-
-
- junit
- junit
- test
-
-
-
-
-
-
- true
- src/main/resources
-
- pinyin/*
-
-
-
- false
- src/main/resources
-
- pinyin/*
-
-
-
-
-
- src/test/resources
- true
-
-
-
-
diff --git a/server/pinyin-util/src/main/java/com/pudonghot/ambition/pinyin/PinyinUtil.java b/server/pinyin-util/src/main/java/com/pudonghot/ambition/pinyin/PinyinUtil.java
deleted file mode 100644
index 1bb177f..0000000
--- a/server/pinyin-util/src/main/java/com/pudonghot/ambition/pinyin/PinyinUtil.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package com.pudonghot.ambition.pinyin;
-
-import java.util.List;
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import net.sourceforge.pinyin4j.PinyinHelper;
-import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
-import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
-import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
-import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
-import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
-
-/**
- * @version 0.0.1
- * @since 0.0.1
- * @author Shaun Chyxion
- * chyxion@163.com
- * Apr 23, 2015 1:30:51 PM
- */
-@SuppressWarnings("unchecked")
-public class PinyinUtil {
- static final List CN_FAMILY_NAMES;
- static HanyuPinyinOutputFormat PINYIN_FORMAT =
- new HanyuPinyinOutputFormat();
-
- static {
- PINYIN_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
- PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_V);
- InputStream fin = null;
- ObjectInputStream oin = null;
- try {
- // load names data
- fin = PinyinUtil.class.getResourceAsStream("/pinyin/cn-family-names.list");
- oin = new ObjectInputStream(fin);
- CN_FAMILY_NAMES = (List) oin.readObject();
- }
- catch (Exception e) {
- throw new IllegalStateException(
- "Init Name Tool Error Caused", e);
- }
- finally {
- close(oin);
- close(fin);
- }
- }
-
- /**
- * get name pinyin
- * @param name
- * @return
- */
- public static String getNamePinyin(String name) {
- return getNamePinyin(name, null, true);
- }
-
- /**
- * get name pinyin
- * @param name
- * @param withTone
- * @return
- */
- public static String getNamePinyin(String name, String splitter, boolean withTone) {
- String pyRtn = null;
- boolean hasSplitter = splitter != null && !splitter.isEmpty();
- for (String[] it : CN_FAMILY_NAMES) {
- String fName = it[0];
- if (name.startsWith(fName)) {
- // family name pinyin
- StringBuilder sbRtn = new StringBuilder();
- String fNamePy = it[2];
- if (!withTone) {
- fNamePy = fNamePy.replaceAll("\\d", "");
- }
- // replace splitter
- fNamePy = fNamePy.replace(" ", hasSplitter ? splitter : "");
- sbRtn.append(fNamePy);
- // name pinyin
- String shortName = name.substring(fName.length());
- if (shortName != null && !shortName.isEmpty()) {
- if (hasSplitter) {
- sbRtn.append(splitter);
- }
- sbRtn.append(getDefaultPinyin(shortName, splitter, withTone));
- }
- pyRtn = sbRtn.toString();
- break;
- }
- }
- if (pyRtn == null) {
- pyRtn = getDefaultPinyin(name, splitter, withTone);
- }
- return pyRtn;
- }
-
- /**
- * get default pinyin
- * @param input
- * @param withTone
- * @return
- */
- public static String getDefaultPinyin(String input, String splitter, boolean withTone) {
- StringBuilder sbRtn = new StringBuilder();
- try {
- if (input != null && !input.isEmpty()) {
- boolean hasSplitter = splitter != null && !splitter.isEmpty();
- for (char ch : input.toCharArray()) {
- String sc = Character.toString(ch);
- if (sc.matches("^[\u4E00-\u9FA5]$")) {
- String pinyin =
- PinyinHelper.toHanyuPinyinStringArray(
- ch, PINYIN_FORMAT)[0];
- if (!withTone) {
- pinyin = pinyin.substring(0, pinyin.length() - 1);
- }
- sbRtn.append(pinyin);
- if (hasSplitter) {
- sbRtn.append(splitter);
- }
- }
- else {
- sbRtn.append(sc);
- }
- }
- // remove last splitter
- if (hasSplitter) {
- sbRtn.deleteCharAt(sbRtn.length() - 1);
- }
- }
- }
- catch (BadHanyuPinyinOutputFormatCombination e) {
- throw new IllegalStateException(
- "Get Pinyin Error Caused", e);
- }
- return sbRtn.toString().trim();
- }
-
- /**
- * close closeable
- * @param c
- */
- private static void close(Closeable c) {
- if (c != null) {
- try {
- c.close();
- }
- catch (IOException e) {
- // ignore
- }
- }
- }
-}
diff --git a/server/pinyin-util/src/main/resources/pinyin/cn-family-names.json b/server/pinyin-util/src/main/resources/pinyin/cn-family-names.json
deleted file mode 100644
index 9da0dd8..0000000
--- a/server/pinyin-util/src/main/resources/pinyin/cn-family-names.json
+++ /dev/null
@@ -1,1946 +0,0 @@
-{
- "赵":[
- "zhào",
- "zhao4"
- ],
- "钱":[
- "qián",
- "qian2"
- ],
- "孙":[
- "sūn",
- "sun1"
- ],
- "李":[
- "lĭ",
- "li3"
- ],
- "周":[
- "zhōu",
- "zhou1"
- ],
- "吴":[
- "wú",
- "wu2"
- ],
- "郑":[
- "zhèng",
- "zheng4"
- ],
- "王":[
- "wáng",
- "wang2"
- ],
- "冯":[
- "féng",
- "feng2"
- ],
- "陈":[
- "chén",
- "chen2"
- ],
- "褚":[
- "chŭ",
- "chu3"
- ],
- "卫":[
- "wèi",
- "wei4"
- ],
- "蒋":[
- "jiăng",
- "jiang3"
- ],
- "沈":[
- "shĕn",
- "shen3"
- ],
- "韩":[
- "hán",
- "han2"
- ],
- "杨":[
- "yáng",
- "yang2"
- ],
- "朱":[
- "zhū",
- "zhu1"
- ],
- "秦":[
- "qín",
- "qin2"
- ],
- "尤":[
- "yóu",
- "you2"
- ],
- "许":[
- "xŭ",
- "xu3"
- ],
- "何":[
- "hé",
- "he2"
- ],
- "吕":[
- "lǚ",
- "lv3"
- ],
- "施":[
- "shī",
- "shi1"
- ],
- "张":[
- "zhāng",
- "zhang1"
- ],
- "孔":[
- "kŏng",
- "kong3"
- ],
- "曹":[
- "cáo",
- "cao2"
- ],
- "严":[
- "yán",
- "yan2"
- ],
- "华":[
- "huà",
- "hua4"
- ],
- "金":[
- "jīn",
- "jin1"
- ],
- "魏":[
- "wèi",
- "wei4"
- ],
- "陶":[
- "táo",
- "tao2"
- ],
- "姜":[
- "jiāng",
- "jiang1"
- ],
- "戚":[
- "qī",
- "qi1"
- ],
- "谢":[
- "xiè",
- "xie4"
- ],
- "邹":[
- "zōu",
- "zou1"
- ],
- "喻":[
- "yù",
- "yu4"
- ],
- "柏":[
- "băi",
- "bai3"
- ],
- "水":[
- "shuĭ",
- "shui3"
- ],
- "窦":[
- "dòu",
- "dou4"
- ],
- "章":[
- "zhāng",
- "zhang1"
- ],
- "云":[
- "yún",
- "yun2"
- ],
- "苏":[
- "sū",
- "su1"
- ],
- "潘":[
- "pān",
- "pan1"
- ],
- "葛":[
- "gĕ",
- "ge3"
- ],
- "奚":[
- "xī",
- "xi1"
- ],
- "范":[
- "fàn",
- "fan4"
- ],
- "彭":[
- "péng",
- "peng2"
- ],
- "郎":[
- "láng",
- "lang2"
- ],
- "鲁":[
- "lŭ",
- "lu3"
- ],
- "韦":[
- "wéi",
- "wei2"
- ],
- "昌":[
- "chāng",
- "chang1"
- ],
- "马":[
- "mă",
- "ma3"
- ],
- "苗":[
- "miáo",
- "miao2"
- ],
- "凤":[
- "fèng",
- "feng4"
- ],
- "花":[
- "huā",
- "hua1"
- ],
- "方":[
- "fāng",
- "fang1"
- ],
- "俞":[
- "yú",
- "yu2"
- ],
- "任":[
- "rèn",
- "ren4"
- ],
- "袁":[
- "yuán",
- "yuan2"
- ],
- "柳":[
- "liŭ",
- "liu3"
- ],
- "酆":[
- "fēng",
- "feng1"
- ],
- "鲍":[
- "bào",
- "bao4"
- ],
- "史":[
- "shĭ",
- "shi3"
- ],
- "唐":[
- "táng",
- "tang2"
- ],
- "费":[
- "fèi",
- "fei4"
- ],
- "廉":[
- "lián",
- "lian2"
- ],
- "岑":[
- "cén",
- "cen2"
- ],
- "薛":[
- "xuē",
- "xue1"
- ],
- "雷":[
- "léi",
- "lei2"
- ],
- "贺":[
- "hè",
- "he4"
- ],
- "倪":[
- "ní",
- "ni2"
- ],
- "汤":[
- "tāng",
- "tang1"
- ],
- "滕":[
- "téng",
- "teng2"
- ],
- "殷":[
- "yīn",
- "yin1"
- ],
- "罗":[
- "luó",
- "luo2"
- ],
- "毕":[
- "bì",
- "bi4"
- ],
- "郝":[
- "hăo",
- "hao3"
- ],
- "邬":[
- "wū",
- "wu1"
- ],
- "安":[
- "ān",
- "an1"
- ],
- "常":[
- "cháng",
- "chang2"
- ],
- "乐":[
- "yuè",
- "yue4"
- ],
- "于":[
- "yú",
- "yu2"
- ],
- "时":[
- "shí",
- "shi2"
- ],
- "傅":[
- "fù",
- "fu4"
- ],
- "皮":[
- "pí",
- "pi2"
- ],
- "卞":[
- "biàn",
- "bian4"
- ],
- "齐":[
- "qí",
- "qi2"
- ],
- "康":[
- "kāng",
- "kang1"
- ],
- "伍":[
- "wŭ",
- "wu3"
- ],
- "余":[
- "yú",
- "yu2"
- ],
- "元":[
- "yuán",
- "yuan2"
- ],
- "卜":[
- "bŭ",
- "bu3"
- ],
- "顾":[
- "gù",
- "gu4"
- ],
- "孟":[
- "mèng",
- "meng4"
- ],
- "平":[
- "píng",
- "ping2"
- ],
- "黄":[
- "huáng",
- "huang2"
- ],
- "和":[
- "hé",
- "he2"
- ],
- "穆":[
- "mù",
- "mu4"
- ],
- "萧":[
- "xiāo",
- "xiao1"
- ],
- "尹":[
- "yĭn",
- "yin3"
- ],
- "姚":[
- "yáo",
- "yao2"
- ],
- "邵":[
- "shào",
- "shao4"
- ],
- "湛":[
- "zhàn",
- "zhan4"
- ],
- "汪":[
- "wāng",
- "wang1"
- ],
- "祁":[
- "qí",
- "qi2"
- ],
- "毛":[
- "máo",
- "mao2"
- ],
- "禹":[
- "yŭ",
- "yu3"
- ],
- "狄":[
- "dí",
- "di2"
- ],
- "米":[
- "mĭ",
- "mi3"
- ],
- "贝":[
- "bèi",
- "bei4"
- ],
- "明":[
- "míng",
- "ming2"
- ],
- "臧":[
- "zāng",
- "zang1"
- ],
- "计":[
- "jì",
- "ji4"
- ],
- "伏":[
- "fú",
- "fu2"
- ],
- "成":[
- "chéng",
- "cheng2"
- ],
- "戴":[
- "dài",
- "dai4"
- ],
- "谈":[
- "tán",
- "tan2"
- ],
- "宋":[
- "sòng",
- "song4"
- ],
- "茅":[
- "máo",
- "mao2"
- ],
- "庞":[
- "páng",
- "pang2"
- ],
- "熊":[
- "xióng",
- "xiong2"
- ],
- "纪":[
- "jì",
- "ji4"
- ],
- "舒":[
- "shū",
- "shu1"
- ],
- "屈":[
- "qū",
- "qu1"
- ],
- "项":[
- "xiàng",
- "xiang4"
- ],
- "祝":[
- "zhù",
- "zhu4"
- ],
- "董":[
- "dŏng",
- "dong3"
- ],
- "梁":[
- "liáng",
- "liang2"
- ],
- "杜":[
- "dù",
- "du4"
- ],
- "阮":[
- "ruăn",
- "ruan3"
- ],
- "蓝":[
- "lán",
- "lan2"
- ],
- "闵":[
- "mĭn",
- "min3"
- ],
- "席":[
- "xí",
- "xi2"
- ],
- "季":[
- "jì",
- "ji4"
- ],
- "麻":[
- "má",
- "ma2"
- ],
- "强":[
- "qiáng",
- "qiang2"
- ],
- "贾":[
- "jiă",
- "jia3"
- ],
- "路":[
- "lù",
- "lu4"
- ],
- "娄":[
- "lóu",
- "lou2"
- ],
- "危":[
- "wēi",
- "wei1"
- ],
- "江":[
- "jiāng",
- "jiang1"
- ],
- "童":[
- "tóng",
- "tong2"
- ],
- "颜":[
- "yán",
- "yan2"
- ],
- "郭":[
- "guō",
- "guo1"
- ],
- "梅":[
- "méi",
- "mei2"
- ],
- "盛":[
- "shèng",
- "sheng4"
- ],
- "林":[
- "lín",
- "lin2"
- ],
- "刁":[
- "diāo",
- "diao1"
- ],
- "钟":[
- "zhōng",
- "zhong1"
- ],
- "徐":[
- "xú",
- "xu2"
- ],
- "邱":[
- "qiū",
- "qiu1"
- ],
- "骆":[
- "luò",
- "luo4"
- ],
- "高":[
- "gāo",
- "gao1"
- ],
- "夏":[
- "xià",
- "xia4"
- ],
- "蔡":[
- "cài",
- "cai4"
- ],
- "田":[
- "tián",
- "tian2"
- ],
- "樊":[
- "fán",
- "fan2"
- ],
- "胡":[
- "hú",
- "hu2"
- ],
- "凌":[
- "líng",
- "ling2"
- ],
- "霍":[
- "huò",
- "huo4"
- ],
- "虞":[
- "yú",
- "yu2"
- ],
- "万":[
- "wàn",
- "wan4"
- ],
- "支":[
- "zhī",
- "zhi1"
- ],
- "柯":[
- "kē",
- "ke1"
- ],
- "昝":[
- "zăn",
- "zan3"
- ],
- "管":[
- "guăn",
- "guan3"
- ],
- "卢":[
- "lú",
- "lu2"
- ],
- "莫":[
- "mò",
- "mo4"
- ],
- "经":[
- "jīng",
- "jing1"
- ],
- "房":[
- "fáng",
- "fang2"
- ],
- "裘":[
- "qiú",
- "qiu2"
- ],
- "缪":[
- "miào",
- "miao4"
- ],
- "干":[
- "gān",
- "gan1"
- ],
- "解":[
- "xiè",
- "xie4"
- ],
- "应":[
- "yīng",
- "ying1"
- ],
- "宗":[
- "zōng",
- "zong1"
- ],
- "丁":[
- "dīng",
- "ding1"
- ],
- "宣":[
- "xuān",
- "xuan1"
- ],
- "贲":[
- "bēn",
- "ben1"
- ],
- "邓":[
- "dèng",
- "deng4"
- ],
- "郁":[
- "yù",
- "yu4"
- ],
- "单":[
- "shàn",
- "shan4"
- ],
- "杭":[
- "háng",
- "hang2"
- ],
- "洪":[
- "hóng",
- "hong2"
- ],
- "包":[
- "bāo",
- "bao1"
- ],
- "诸":[
- "zhū",
- "zhu1"
- ],
- "左":[
- "zuŏ",
- "zuo3"
- ],
- "石":[
- "shí",
- "shi2"
- ],
- "崔":[
- "cuī",
- "cui1"
- ],
- "吉":[
- "jí",
- "ji2"
- ],
- "钮":[
- "niŭ",
- "niu3"
- ],
- "龚":[
- "gōng",
- "gong1"
- ],
- "程":[
- "chéng",
- "cheng2"
- ],
- "嵇":[
- "jī",
- "ji1"
- ],
- "邢":[
- "xíng",
- "xing2"
- ],
- "滑":[
- "huá",
- "hua2"
- ],
- "裴":[
- "péi",
- "pei2"
- ],
- "陆":[
- "lù",
- "lu4"
- ],
- "荣":[
- "róng",
- "rong2"
- ],
- "翁":[
- "wēng",
- "weng1"
- ],
- "荀":[
- "xún",
- "xun2"
- ],
- "羊":[
- "yáng",
- "yang2"
- ],
- "於":[
- "yū",
- "yu1"
- ],
- "惠":[
- "huì",
- "hui4"
- ],
- "甄":[
- "zhēn",
- "zhen1"
- ],
- "曲":[
- "qū",
- "qu1"
- ],
- "家":[
- "jiā",
- "jia1"
- ],
- "封":[
- "fēng",
- "feng1"
- ],
- "芮":[
- "ruì",
- "rui4"
- ],
- "羿":[
- "yì",
- "yi4"
- ],
- "储":[
- "chŭ",
- "chu3"
- ],
- "靳":[
- "jìn",
- "jin4"
- ],
- "汲":[
- "jí",
- "ji2"
- ],
- "邴":[
- "bĭng",
- "bing3"
- ],
- "糜":[
- "mí",
- "mi2"
- ],
- "松":[
- "sōng",
- "song1"
- ],
- "井":[
- "jĭng",
- "jing3"
- ],
- "段":[
- "duàn",
- "duan4"
- ],
- "富":[
- "fù",
- "fu4"
- ],
- "巫":[
- "wū",
- "wu1"
- ],
- "乌":[
- "wū",
- "wu1"
- ],
- "焦":[
- "jiāo",
- "jiao1"
- ],
- "巴":[
- "bā",
- "ba1"
- ],
- "弓":[
- "gōng",
- "gong1"
- ],
- "牧":[
- "mù",
- "mu4"
- ],
- "隗":[
- "kuí",
- "kui2"
- ],
- "山":[
- "shān",
- "shan1"
- ],
- "谷":[
- "gŭ",
- "gu3"
- ],
- "车":[
- "chē",
- "che1"
- ],
- "侯":[
- "hóu",
- "hou2"
- ],
- "宓":[
- "mì",
- "mi4"
- ],
- "蓬":[
- "péng",
- "peng2"
- ],
- "全":[
- "quán",
- "quan2"
- ],
- "郗":[
- "xī",
- "xi1"
- ],
- "班":[
- "bān",
- "ban1"
- ],
- "仰":[
- "yăng",
- "yang3"
- ],
- "秋":[
- "qiū",
- "qiu1"
- ],
- "仲":[
- "zhòng",
- "zhong4"
- ],
- "伊":[
- "yī",
- "yi1"
- ],
- "宫":[
- "gōng",
- "gong1"
- ],
- "宁":[
- "nìng",
- "ning4"
- ],
- "仇":[
- "qiú",
- "qiu2"
- ],
- "栾":[
- "luán",
- "luan2"
- ],
- "暴":[
- "bào",
- "bao4"
- ],
- "甘":[
- "gān",
- "gan1"
- ],
- "钭":[
- "tŏu",
- "tou3"
- ],
- "厉":[
- "lì",
- "li4"
- ],
- "戎":[
- "róng",
- "rong2"
- ],
- "祖":[
- "zŭ",
- "zu3"
- ],
- "武":[
- "wŭ",
- "wu3"
- ],
- "符":[
- "fú",
- "fu2"
- ],
- "刘":[
- "liú",
- "liu2"
- ],
- "景":[
- "jĭng",
- "jing3"
- ],
- "詹":[
- "zhān",
- "zhan1"
- ],
- "束":[
- "shù",
- "shu4"
- ],
- "龙":[
- "lóng",
- "long2"
- ],
- "叶":[
- "yè",
- "ye4"
- ],
- "幸":[
- "xìng",
- "xing4"
- ],
- "司":[
- "sī",
- "si1"
- ],
- "韶":[
- "sháo",
- "shao2"
- ],
- "郜":[
- "gào",
- "gao4"
- ],
- "黎":[
- "lí",
- "li2"
- ],
- "蓟":[
- "jì",
- "ji4"
- ],
- "薄":[
- "bó",
- "bo2"
- ],
- "印":[
- "yìn",
- "yin4"
- ],
- "宿":[
- "sù",
- "su4"
- ],
- "白":[
- "bái",
- "bai2"
- ],
- "怀":[
- "huái",
- "huai2"
- ],
- "蒲":[
- "pú",
- "pu2"
- ],
- "邰":[
- "tái",
- "tai2"
- ],
- "从":[
- "cóng",
- "cong2"
- ],
- "鄂":[
- "è",
- "e4"
- ],
- "索":[
- "suŏ",
- "suo3"
- ],
- "咸":[
- "xián",
- "xian2"
- ],
- "籍":[
- "jí",
- "ji2"
- ],
- "赖":[
- "lài",
- "lai4"
- ],
- "卓":[
- "zhuó",
- "zhuo2"
- ],
- "蔺":[
- "lìn",
- "lin4"
- ],
- "屠":[
- "tú",
- "tu2"
- ],
- "蒙":[
- "méng",
- "meng2"
- ],
- "池":[
- "chí",
- "chi2"
- ],
- "乔":[
- "qiáo",
- "qiao2"
- ],
- "阴":[
- "yīn",
- "yin1"
- ],
- "鬱":[
- "yù",
- "yu4"
- ],
- "胥":[
- "xū",
- "xu1"
- ],
- "能":[
- "néng",
- "neng2"
- ],
- "苍":[
- "cāng",
- "cang1"
- ],
- "双":[
- "shuāng",
- "shuang1"
- ],
- "闻":[
- "wén",
- "wen2"
- ],
- "莘":[
- "shēn",
- "shen1"
- ],
- "党":[
- "dăng",
- "dang3"
- ],
- "翟":[
- "zhái",
- "zhai2"
- ],
- "谭":[
- "tán",
- "tan2"
- ],
- "贡":[
- "gòng",
- "gong4"
- ],
- "劳":[
- "láo",
- "lao2"
- ],
- "逄":[
- "páng",
- "pang2"
- ],
- "姬":[
- "jī",
- "ji1"
- ],
- "申":[
- "shēn",
- "shen1"
- ],
- "扶":[
- "fú",
- "fu2"
- ],
- "堵":[
- "dŭ",
- "du3"
- ],
- "冉":[
- "răn",
- "ran3"
- ],
- "宰":[
- "zăi",
- "zai3"
- ],
- "郦":[
- "lì",
- "li4"
- ],
- "雍":[
- "yōng",
- "yong1"
- ],
- "郤":[
- "xì",
- "xi4"
- ],
- "璩":[
- "qú",
- "qu2"
- ],
- "桑":[
- "sāng",
- "sang1"
- ],
- "桂":[
- "guì",
- "gui4"
- ],
- "濮":[
- "pú",
- "pu2"
- ],
- "牛":[
- "niú",
- "niu2"
- ],
- "寿":[
- "shòu",
- "shou4"
- ],
- "通":[
- "tōng",
- "tong1"
- ],
- "边":[
- "biān",
- "bian1"
- ],
- "扈":[
- "hù",
- "hu4"
- ],
- "燕":[
- "yān",
- "yan1"
- ],
- "冀":[
- "jì",
- "ji4"
- ],
- "郏":[
- "jiá",
- "jia2"
- ],
- "浦":[
- "pŭ",
- "pu3"
- ],
- "尚":[
- "shàng",
- "shang4"
- ],
- "农":[
- "nóng",
- "nong2"
- ],
- "温":[
- "wēn",
- "wen1"
- ],
- "别":[
- "bié",
- "bie2"
- ],
- "庄":[
- "zhuāng",
- "zhuang1"
- ],
- "晏":[
- "yàn",
- "yan4"
- ],
- "柴":[
- "chái",
- "chai2"
- ],
- "瞿":[
- "qú",
- "qu2"
- ],
- "阎":[
- "yán",
- "yan2"
- ],
- "充":[
- "chōng",
- "chong1"
- ],
- "慕":[
- "mù",
- "mu4"
- ],
- "连":[
- "lián",
- "lian2"
- ],
- "茹":[
- "rú",
- "ru2"
- ],
- "习":[
- "xí",
- "xi2"
- ],
- "宦":[
- "huàn",
- "huan4"
- ],
- "艾":[
- "ài",
- "ai4"
- ],
- "鱼":[
- "yú",
- "yu2"
- ],
- "容":[
- "róng",
- "rong2"
- ],
- "向":[
- "xiàng",
- "xiang4"
- ],
- "古":[
- "gŭ",
- "gu3"
- ],
- "易":[
- "yì",
- "yi4"
- ],
- "慎":[
- "shèn",
- "shen4"
- ],
- "戈":[
- "gē",
- "ge1"
- ],
- "廖":[
- "liào",
- "liao4"
- ],
- "庾":[
- "yŭ",
- "yu3"
- ],
- "终":[
- "zhōng",
- "zhong1"
- ],
- "暨":[
- "jì",
- "ji4"
- ],
- "居":[
- "jū",
- "ju1"
- ],
- "衡":[
- "héng",
- "heng2"
- ],
- "步":[
- "bù",
- "bu4"
- ],
- "都":[
- "dū",
- "du1"
- ],
- "耿":[
- "gĕng",
- "geng3"
- ],
- "满":[
- "măn",
- "man3"
- ],
- "弘":[
- "hóng",
- "hong2"
- ],
- "匡":[
- "kuāng",
- "kuang1"
- ],
- "国":[
- "guó",
- "guo2"
- ],
- "文":[
- "wén",
- "wen2"
- ],
- "寇":[
- "kòu",
- "kou4"
- ],
- "广":[
- "guăng",
- "guang3"
- ],
- "禄":[
- "lù",
- "lu4"
- ],
- "阙":[
- "quē",
- "que1"
- ],
- "东":[
- "dōng",
- "dong1"
- ],
- "欧":[
- "ōu",
- "ou1"
- ],
- "殳":[
- "shū",
- "shu1"
- ],
- "沃":[
- "wò",
- "wo4"
- ],
- "利":[
- "lì",
- "li4"
- ],
- "蔚":[
- "wèi",
- "wei4"
- ],
- "越":[
- "yuè",
- "yue4"
- ],
- "夔":[
- "kuí",
- "kui2"
- ],
- "隆":[
- "lóng",
- "long2"
- ],
- "师":[
- "shī",
- "shi1"
- ],
- "巩":[
- "gŏng",
- "gong3"
- ],
- "厍":[
- "shè",
- "she4"
- ],
- "聂":[
- "niè",
- "nie4"
- ],
- "晁":[
- "cháo",
- "chao2"
- ],
- "勾":[
- "gōu",
- "gou1"
- ],
- "敖":[
- "áo",
- "ao2"
- ],
- "融":[
- "róng",
- "rong2"
- ],
- "冷":[
- "lĕng",
- "leng3"
- ],
- "訾":[
- "zĭ",
- "zi3"
- ],
- "辛":[
- "xīn",
- "xin1"
- ],
- "阚":[
- "kàn",
- "kan4"
- ],
- "那":[
- "nā",
- "na1"
- ],
- "简":[
- "jiăn",
- "jian3"
- ],
- "饶":[
- "ráo",
- "rao2"
- ],
- "空":[
- "kōng",
- "kong1"
- ],
- "曾":[
- "zēng",
- "zeng1"
- ],
- "母":[
- "mŭ",
- "mu3"
- ],
- "沙":[
- "shā",
- "sha1"
- ],
- "乜":[
- "niè",
- "nie4"
- ],
- "养":[
- "yăng",
- "yang3"
- ],
- "鞠":[
- "jū",
- "ju1"
- ],
- "须":[
- "xū",
- "xu1"
- ],
- "丰":[
- "fēng",
- "feng1"
- ],
- "巢":[
- "cháo",
- "chao2"
- ],
- "关":[
- "guān",
- "guan1"
- ],
- "蒯":[
- "kuăi",
- "kuai3"
- ],
- "相":[
- "xiàng",
- "xiang4"
- ],
- "查":[
- "zhā",
- "zha1"
- ],
- "后":[
- "hòu",
- "hou4"
- ],
- "荆":[
- "jīng",
- "jing1"
- ],
- "红":[
- "hóng",
- "hong2"
- ],
- "游":[
- "yóu",
- "you2"
- ],
- "竺":[
- "zhú",
- "zhu2"
- ],
- "权":[
- "quán",
- "quan2"
- ],
- "逯":[
- "lù",
- "lu4"
- ],
- "盖":[
- "gài",
- "gai4"
- ],
- "益":[
- "yì",
- "yi4"
- ],
- "桓":[
- "huán",
- "huan2"
- ],
- "公":[
- "gōng",
- "gong1"
- ],
- "万俟":[
- "mò qí",
- "mo4 qi2"
- ],
- "司马":[
- "sī mă",
- "si1 ma3"
- ],
- "上官":[
- "shàng guān",
- "shang4 guan1"
- ],
- "欧阳":[
- "ōu yáng",
- "ou1 yang2"
- ],
- "夏侯":[
- "xià hóu",
- "xia4 hou2"
- ],
- "诸葛":[
- "zhū gĕ",
- "zhu1 ge3"
- ],
- "闻人":[
- "wén rén",
- "wen2 ren2"
- ],
- "东方":[
- "dōng fāng",
- "dong1 fang1"
- ],
- "赫连":[
- "hè lián",
- "he4 lian2"
- ],
- "皇甫":[
- "huáng fŭ",
- "huang2 fu3"
- ],
- "尉迟":[
- "yù chí",
- "yu4 chi2"
- ],
- "公羊":[
- "gōng yáng",
- "gong1 yang2"
- ],
- "澹台":[
- "tán tái",
- "tan2 tai2"
- ],
- "公冶":[
- "gōng yĕ",
- "gong1 ye3"
- ],
- "宗政":[
- "zōng zhèng",
- "zong1 zheng4"
- ],
- "濮阳":[
- "pú yáng",
- "pu2 yang2"
- ],
- "淳于":[
- "chún yú",
- "chun2 yu2"
- ],
- "单于":[
- "chán yú",
- "chan2 yu2"
- ],
- "太叔":[
- "tài shū",
- "tai4 shu1"
- ],
- "申屠":[
- "shēn tú",
- "shen1 tu2"
- ],
- "公孙":[
- "gōng sūn",
- "gong1 sun1"
- ],
- "仲孙":[
- "zhòng sūn",
- "zhong4 sun1"
- ],
- "轩辕":[
- "xuān yuán",
- "xuan1 yuan2"
- ],
- "令狐":[
- "lìng hú",
- "ling4 hu2"
- ],
- "钟离":[
- "zhōng lí",
- "zhong1 li2"
- ],
- "宇文":[
- "yŭ wén",
- "yu3 wen2"
- ],
- "长孙":[
- "zhăng",
- "zhang3 sun1"
- ],
- "慕容":[
- "mù róng",
- "mu4 rong2"
- ],
- "鲜于":[
- "xiān yú",
- "xian1 yu2"
- ],
- "闾丘":[
- "lǘ qiū",
- "lv2 qiu1"
- ],
- "司徒":[
- "sī tú",
- "si1 tu2"
- ],
- "司空":[
- "sī kōng",
- "si1 kong1"
- ],
- "亓官":[
- "qí guān",
- "qi2 guan1"
- ],
- "司寇":[
- "sī kòu",
- "si1 kou4"
- ],
- "仉督":[
- "zhăng dū",
- "zhang3 du1"
- ],
- "子车":[
- "zĭ jū",
- "zi3 ju1"
- ],
- "颛孙":[
- "zhuān sūn",
- "zhuan1 sun1"
- ],
- "端木":[
- "duān mù",
- "duan1 mu4"
- ],
- "巫马":[
- "wū mă",
- "wu1 ma3"
- ],
- "公西":[
- "gōng xī",
- "gong1 xi1"
- ],
- "漆雕":[
- "qī diāo",
- "qi1 diao1"
- ],
- "乐正":[
- "yuè zhèng",
- "yue4 zheng4"
- ],
- "壤驷":[
- "răng sì",
- "rang3 si4"
- ],
- "公良":[
- "gōng liáng",
- "gong1 liang2"
- ],
- "拓跋":[
- "tuò bá",
- "tuo4 ba2"
- ],
- "夹谷":[
- "jiá gŭ",
- "jia2 gu3"
- ],
- "宰父":[
- "zăi fŭ",
- "zai3 fu3"
- ],
- "榖梁":[
- "gŭ liáng",
- "gu3 liang2"
- ],
- "晋楚":[
- "jìn chŭ",
- "jin4 chu3"
- ],
- "闫法":[
- "yán fă",
- "yan2 fa3"
- ],
- "汝鄢":[
- "rŭ yān",
- "ru3 yan1"
- ],
- "涂钦":[
- "tú qīn",
- "tu2 qin1"
- ],
- "段干":[
- "duàn gān",
- "duan4 gan1"
- ],
- "百里":[
- "băi lĭ",
- "bai3 li3"
- ],
- "东郭":[
- "dōng guō",
- "dong1 guo1"
- ],
- "南门":[
- "nán mén",
- "nan2 men2"
- ],
- "呼延":[
- "hū yán",
- "hu1 yan2"
- ],
- "归海 ":[
- "guī hăi",
- "gui1 hai3"
- ],
- "羊舌":[
- "yáng shé",
- "yang2 she2"
- ],
- "微生":[
- "wēi shēng",
- "wei1 sheng1"
- ],
- "岳帅":[
- "yuè shuài",
- "yue4 shuai4"
- ],
- "缑亢":[
- "gōu kàng",
- "gou1 kang4"
- ],
- "况后":[
- "kuàng hòu",
- "kuang4 hou4"
- ],
- "有琴":[
- "yŏu qín",
- "you3 qin2"
- ],
- "梁丘":[
- "liáng qiū",
- "liang2 qiu1"
- ],
- "左丘":[
- "zuŏ qiū",
- "zuo3 qiu1"
- ],
- "东门":[
- "dōng mén",
- "dong1 men2"
- ],
- "西门":[
- "xī mén",
- "xi1 men2"
- ],
- "商牟":[
- "shāng móu",
- "shang1 mou2"
- ],
- "佘佴":[
- "shé nài",
- "she2 nai4"
- ],
- "伯赏":[
- "bó shăng",
- "bo2 shang3"
- ],
- "南宫":[
- "nán gōng",
- "nan2 gong1"
- ],
- "墨哈":[
- "mò hă",
- "mo4 ha3"
- ],
- "谯笪":[
- "qiáo dá",
- "qiao2 da2"
- ],
- "年爱":[
- "nián ài",
- "nian2 ai4"
- ],
- "阳佟":[
- "yáng tóng",
- "yang2 tong2"
- ],
- "第五":[
- "dì wŭ",
- "di4 wu3"
- ],
- "言福":[
- "yán fú",
- "yan2 fu2"
- ]
-}
diff --git a/server/pinyin-util/src/main/resources/pinyin/cn-family-names.list b/server/pinyin-util/src/main/resources/pinyin/cn-family-names.list
deleted file mode 100644
index 7f461e9..0000000
Binary files a/server/pinyin-util/src/main/resources/pinyin/cn-family-names.list and /dev/null differ
diff --git a/server/pinyin-util/src/test/java/cn/com/flaginfo/utils/NameUtilsTest.java b/server/pinyin-util/src/test/java/cn/com/flaginfo/utils/NameUtilsTest.java
deleted file mode 100644
index 8db42ce..0000000
--- a/server/pinyin-util/src/test/java/cn/com/flaginfo/utils/NameUtilsTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package cn.com.flaginfo.utils;
-
-import net.sourceforge.pinyin4j.PinyinHelper;
-import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
-import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
-import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
-import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
-import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
-
-import org.junit.Test;
-
-import com.pudonghot.ambition.pinyin.PinyinUtil;
-
-/**
- * @version 0.0.1
- * @since 0.0.1
- * @author Shaun Chyxion
- * xiaoning.chen@flaginfo.com.cn
- * Jan 4, 2015 11:24:35 AM
- */
-public class NameUtilsTest {
-
- @Test
- public void testPinyin() {
- HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
- format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
-// format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
- format.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
- format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
-
- char[] input = "陈晓宁".trim().toCharArray();
- StringBuffer output = new StringBuffer();
- try {
- for (int i = 0; i < input.length; i++) {
- if (Character.toString(input[i]).matches("[\u4E00-\u9FA5]+")) {
- String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
- for (String s : temp) {
- System.err.println(s);
- }
- output.append(temp[0]);
- output.append(" ");
- } else
- output.append(Character.toString(input[i]));
- }
- }
- catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- System.err.println(output);
- }
-
- @Test
- public void testGetPy() {
- System.err.println(PinyinUtil.getDefaultPinyin("陈晓宁", " ", true));
- System.err.println(PinyinUtil.getNamePinyin("曾国藩", "", false));
- System.err.println(PinyinUtil.getNamePinyin("东方不败", "", true));
- System.err.println(PinyinUtil.getNamePinyin("东方不败", "_", false));
- System.err.println(PinyinUtil.getDefaultPinyin("曾国藩", " ", true));
- }
-}
diff --git a/server/pom.xml b/server/pom.xml
index cc11bc1..24cd92c 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -17,22 +17,14 @@
1.8
utf-8
- 8080
- /
- false
- 1.7.25
- 2.8.2
- 3.2.0
0.0.1-SNAPSHOT
- 4.3.8.RELEASE
- 1.5.10.RELEASE
- 1.3.2
+ 2.0.3.RELEASE
1.8.10
PudongHot
- http://www.pudonghot.com
+ http://www.pudong-hot.com
@@ -42,7 +34,7 @@
chyxion@163.com
http://chyxion.github.io
PudongHot
- http://www.pudonghot.com
+ http://www.pudong-hot.com
architect
developer
@@ -52,11 +44,7 @@
- web-parent
- web-common
- util
- svg-util
- pinyin-util
+ lib
model
mapper
file-api
@@ -76,21 +64,6 @@
web-common
${project.version}
-
- com.pudonghot.ambition
- util
- ${project.version}
-
-
- com.pudonghot.ambition
- svg-util
- ${project.version}
-
-
- com.pudonghot.ambition
- pinyin-util
- ${project.version}
-
com.pudonghot.ambition
crm-model
@@ -114,150 +87,18 @@
me.chyxion.tigon
- tigon-model
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-mybatis
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-sequence
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-webmvc-core
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-webmvc-spring-boot
- ${tigon.version}
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
-
-
- me.chyxion.tigon
- tigon-webmvc-war
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-redis
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-mybatis-redis-cache
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-shiro-redis-cache
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-shiro-core
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-shiro-war
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-shiro-spring-boot
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-service-api
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-service-support
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-extjs
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-freemarker-support
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-jsp-support
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-codegen
- ${tigon.version}
-
-
- me.chyxion.tigon
- tigon-props-config
+ tigon
${tigon.version}
+ pom
+ import
-
- com.caucho
- hessian
- 4.0.38
-
-
- com.googlecode.plist
- dd-plist
- 1.16
-
-
- com.google.zxing
- core
- 3.2.0
-
-
- com.google.zxing
- javase
- 3.2.0
-
-
- org.imgscalr
- imgscalr-lib
- 4.2
-
-
commons-beanutils
commons-beanutils
1.8.3
-
-
- spring-core
- org.springframework
- ${spring.version}
-
-
- commons-logging
- commons-logging
-
-
-
org.jdom
jdom
@@ -273,76 +114,18 @@
commons-io
2.4
-
- org.freemarker
- freemarker
- 2.3.23
-
-
-
- org.slf4j
- slf4j-api
- ${slf4j.version}
-
-
- org.slf4j
- jcl-over-slf4j
- ${slf4j.version}
-
-
-
-
- org.apache.logging.log4j
- log4j-slf4j-impl
- ${log4j.version}
-
-
-
- org.apache.logging.log4j
- log4j-api
- ${log4j.version}
-
-
- org.apache.logging.log4j
- log4j-core
- ${log4j.version}
-
-
commons-codec
commons-codec
1.10
-
- commons-logging
- commons-logging
- 1.2
-
-
- com.aliyun.oss
- aliyun-sdk-oss
- 2.5.0
-
mysql
mysql-connector-java
6.0.6
-
-
-
-
-
- org.springframework
- spring-test
- ${spring.version}
-
- javax.persistence
- persistence-api
- 1.0.2
-
javax.el
javax.el-api
@@ -353,135 +136,16 @@
javax.servlet-api
3.1.0
-
- javax.mail
- mail
- 1.4.7
-
-
- javax.servlet.jsp.jstl
- jstl-api
- 1.2
-
-
- org.projectlombok
- lombok
- 1.16.14
-
-
- org.hibernate
- hibernate-validator
- 5.4.0.Final
-
-
-
- org.mybatis
- mybatis
- 3.4.2
-
-
- org.mybatis
- mybatis-spring
- 1.3.1
-
-
com.alibaba
druid
1.1.2
-
- org.mongodb
- bson
- ${mongodb.version}
-
-
- org.springframework.data
- spring-data-redis
- 1.6.6.RELEASE
-
-
- redis.clients
- jedis
- 2.9.0
-
-
-
- org.apache.shiro
- shiro-core
- ${shiro.version}
-
-
- org.apache.shiro
- shiro-web
- ${shiro.version}
-
-
- org.apache.shiro
- shiro-spring
- ${shiro.version}
-
commons-fileupload
commons-fileupload
1.3.2
-
-
- cglib
- cglib
- 3.2.4
-
-
- org.aspectj
- aspectjrt
- ${aspectj.version}
-
-
- org.aspectj
- aspectjweaver
- ${aspectj.version}
-
-
-
- org.springframework.boot
- spring-boot-dependencies
- ${spring-boot.version}
- pom
- import
-
-
- org.springframework.boot
- spring-boot
- ${spring-boot.version}
-
-
- org.springframework.boot
- spring-boot-autoconfigure
- ${spring-boot.version}
-
-
- org.springframework.boot
- spring-boot-starter-web
- ${spring-boot.version}
-
-
- org.springframework.boot
- spring-boot-test
- ${spring-boot.version}
-
-
-
- com.alibaba
- fastjson
- 1.2.41
-
-
-
- junit
- junit
- 4.12
-
@@ -604,6 +268,17 @@
src/main/resources/application.yaml
+
+ copy-application-yml-file
+ generate-resources
+
+ copy
+
+
+ src/main/resources/application_${project.activeProfiles[0].id}.yml
+ src/main/resources/application.yml
+
+
copy-log4j2-xml-file
generate-resources
@@ -685,54 +360,6 @@
-
- org.apache.maven.plugins
- maven-shade-plugin
- 2.3
-
-
- package
-
- shade
-
-
- ${project.artifactId}
- true
- jar-with-dependencies
-
-
- ${start-class}
-
-
- META-INF/spring.handlers
-
-
- META-INF/spring.schemas
-
-
- META-INF/spring.tooling
-
-
-
-
-
-
-
- org.apache.tomcat.maven
- tomcat7-maven-plugin
- 2.2
-
- ${maven.tomcat.port}
- ${maven.tomcat.path}
- utf-8
- utf-8
- false
-
- ${maven.tomcat.port}
- ${project.basedir}
-
-
-
org.apache.maven.plugins
maven-help-plugin
@@ -775,6 +402,7 @@
config_*.properties
application_*.properties
application_*.yaml
+ application_*.yml
log4j2_*.xml
@@ -790,6 +418,7 @@
config_*.properties
application_*.properties
application_*.yaml
+ application_*.yml
log4j2_*.xml
diff --git a/server/svg-util/README.md b/server/svg-util/README.md
deleted file mode 100644
index a330497..0000000
--- a/server/svg-util/README.md
+++ /dev/null
@@ -1 +0,0 @@
-#umsapp-ota-data-model
diff --git a/server/svg-util/pom.xml b/server/svg-util/pom.xml
deleted file mode 100644
index b6a764c..0000000
--- a/server/svg-util/pom.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
- 4.0.0
- svg-util
- Ambition SVG Util
- jar
-
-
- com.pudonghot.ambition
- ambition-crm
- 0.0.1-SNAPSHOT
- ../
-
-
-
-
- org.slf4j
- slf4j-api
-
-
- commons-codec
- commons-codec
-
-
- org.apache.commons
- commons-lang3
-
-
- org.apache.xmlgraphics
- xmlgraphics-commons
- 2.1
-
-
- org.apache.xmlgraphics
- batik-codec
- 1.8
-
-
- org.apache.xmlgraphics
- batik-transcoder
- 1.8
-
-
-
- dom4j
- dom4j
- 1.6.1
-
-
- org.projectlombok
- lombok
-
-
-
- junit
- junit
- test
-
-
-
diff --git a/server/svg-util/run b/server/svg-util/run
deleted file mode 100755
index 83c1664..0000000
--- a/server/svg-util/run
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-export MAVEN_OPTS="-noverify -agentpath:/usr/local/JRebel/6.3.2/lib/libjrebel64.dylib -Drebel.dirs=target -Drebel.disable_update=true -Ddev=true"
-set JAVA_OPTS=$MAVEN_OPTS
-mvn -Pdev clean tomcat7:run
-unset JAVA_OPTS
-unset MAVEN_OPTS
-
-
diff --git a/server/svg-util/src/main/java/com/pudonghot/ambition/svg/SvgUtil.java b/server/svg-util/src/main/java/com/pudonghot/ambition/svg/SvgUtil.java
deleted file mode 100644
index 4a4fe12..0000000
--- a/server/svg-util/src/main/java/com/pudonghot/ambition/svg/SvgUtil.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package com.pudonghot.ambition.svg;
-
-import org.dom4j.Element;
-import org.dom4j.Document;
-import java.util.Iterator;
-import java.io.IOException;
-import java.io.InputStream;
-import org.dom4j.io.SAXReader;
-import org.xml.sax.SAXException;
-import lombok.extern.slf4j.Slf4j;
-import org.dom4j.DocumentException;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import org.apache.commons.io.IOUtils;
-import java.nio.charset.StandardCharsets;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.CharEncoding;
-import org.apache.batik.transcoder.TranscoderInput;
-import org.apache.batik.transcoder.TranscoderOutput;
-import org.apache.batik.transcoder.image.PNGTranscoder;
-import org.apache.batik.transcoder.TranscoderException;
-
-/**
- * @version 0.0.1
- * @since 0.0.1
- * @author Shaun Chyxion
- * chyxion@163.com
- * Aug 9, 2016 5:52:31 PM
- */
-@Slf4j
-public class SvgUtil {
-
- /**
- * @param bytesSvg
- * @return
- */
- public static boolean isSvg(byte[] bytesSvg) {
- return isSvg(new ByteArrayInputStream(bytesSvg));
- }
-
- /**
- * @param insSvg
- * @return
- */
- public static boolean isSvg(InputStream insSvg) {
- try {
- read(insSvg);
- return true;
- }
- catch (Exception e) {
- log.info("Input Stream Is Not Svg.", e);
- return false;
- }
- finally {
- IOUtils.closeQuietly(insSvg);
- }
- }
-
- /**
- * @param bytesSvg
- * @param color
- * @param width
- * @param height
- * @return
- */
- public static byte[] convertToPng(byte[] bytesSvg, String color, int width, int height) {
- return convertToPng(bytesSvg,
- color,
- toPxOrNull(width),
- toPxOrNull(height));
- }
-
- /**
- * @param bytesSvg
- * @param color
- * @param width
- * @param height
- * @return
- */
- public static byte[] convertToPng(byte[] bytesSvg, String color, String width, String height) {
- return convertToPng(new ByteArrayInputStream(bytesSvg), color, width, height);
- }
-
- public static byte[] convertToPng(InputStream insSvg, String color, int width, int height) {
- return convertToPng(insSvg, color, toPxOrNull(width), toPxOrNull(height));
- }
-
- /**
- * @param insSvg
- * @param color
- * @param width
- * @param height
- * @return
- */
- public static byte[] convertToPng(InputStream insSvg, String color, String width, String height) {
- ByteArrayOutputStream baosPng = null;
- try {
- final byte[] bytesSvg = apply(insSvg, color, width, height);
- baosPng = new ByteArrayOutputStream();
- final PNGTranscoder transcoder = new PNGTranscoder();
- transcoder.transcode(
- new TranscoderInput(new ByteArrayInputStream(bytesSvg)),
- new TranscoderOutput(baosPng));
- baosPng.flush();
- return baosPng.toByteArray();
- }
- catch (TranscoderException | IOException e) {
- throw new IllegalStateException(
- "Convert SVG To PNG Error Caused", e);
- }
- finally {
- IOUtils.closeQuietly(baosPng);
- IOUtils.closeQuietly(insSvg);
- }
- }
-
- protected static byte[] apply(InputStream insSvg, String color, String width, String height) {
- return apply0(insSvg, color, width, height).asXML().getBytes(StandardCharsets.UTF_8);
- }
-
- protected static Document apply0(InputStream insSvg, String color, String width, String height) {
- Document document = read(insSvg);
- log.debug("Process SVG [{}] To Color [{}] Width [{}] Height [{}].", document, width, height);
- Element rootEl = document.getRootElement();
- if (StringUtils.isNotBlank(width)) {
- rootEl.attribute("width").setValue(width);
- }
- if (StringUtils.isNotBlank(height)) {
- rootEl.attribute("height").setValue(height);
- }
- @SuppressWarnings("unchecked")
- Iterator paths = (Iterator) rootEl.elementIterator("path");
- while (paths.hasNext()) {
- paths.next().attribute("fill").setValue(color);
- }
- return document;
- }
-
- protected static String toPxOrNull(int size) {
- return size > 0 ? size + "px" : null;
- }
-
- protected static Document read(InputStream insSvg) {
- SAXReader reader = new SAXReader();
- // disable validate
- String feature = "http://apache.org/xml/features/nonvalidating/load-external-dtd";
- try {
- reader.setFeature(feature, false);
- }
- catch (SAXException e) {
- throw new IllegalStateException(
- "SAXReader Disable Feature [" +
- feature + "] Errro Caused", e);
- }
- reader.setEncoding(CharEncoding.UTF_8);
- reader.setIncludeExternalDTDDeclarations(false);
- reader.setIncludeInternalDTDDeclarations(false);
- reader.setValidation(false);
- try {
- return reader.read(insSvg);
- }
- catch (DocumentException e) {
- throw new IllegalStateException(
- "Read SVG Input Stream Error Caused", e);
- }
- }
-}
diff --git a/server/svg-util/src/main/resources/.gitkeep b/server/svg-util/src/main/resources/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/server/svg-util/src/test/resources/spring/config.properties b/server/svg-util/src/test/resources/spring/config.properties
deleted file mode 100644
index 3ded7d3..0000000
--- a/server/svg-util/src/test/resources/spring/config.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-# Config Dev
-
-# Database
-db.url=jdbc:mysql://127.0.0.1:3307/echat_sit
-db.user=flaginfo_echat
-db.password=echat407
-
-# Redis
-redis.host=127.0.0.1
-redis.port=6379
-redis.password=0211
\ No newline at end of file
diff --git a/server/util/README.md b/server/util/README.md
deleted file mode 100644
index a330497..0000000
--- a/server/util/README.md
+++ /dev/null
@@ -1 +0,0 @@
-#umsapp-ota-data-model
diff --git a/server/util/pom.xml b/server/util/pom.xml
deleted file mode 100644
index 1003519..0000000
--- a/server/util/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
- 4.0.0
- util
- Ambition Util
- jar
-
-
- com.pudonghot.ambition
- ambition-crm
- 0.0.1-SNAPSHOT
- ../
-
-
-
-
- commons-codec
- commons-codec
-
-
- org.apache.commons
- commons-lang3
-
-
- org.hibernate
- hibernate-validator
-
-
- commons-beanutils
- commons-beanutils
-
-
- javax.servlet
- javax.servlet-api
- provided
-
-
- org.projectlombok
- lombok
-
-
-
- junit
- junit
- test
-
-
-
diff --git a/server/util/run b/server/util/run
deleted file mode 100755
index 83c1664..0000000
--- a/server/util/run
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-export MAVEN_OPTS="-noverify -agentpath:/usr/local/JRebel/6.3.2/lib/libjrebel64.dylib -Drebel.dirs=target -Drebel.disable_update=true -Ddev=true"
-set JAVA_OPTS=$MAVEN_OPTS
-mvn -Pdev clean tomcat7:run
-unset JAVA_OPTS
-unset MAVEN_OPTS
-
-
diff --git a/server/util/src/main/resources/.gitkeep b/server/util/src/main/resources/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/server/util/src/test/resources/.gitkeep b/server/util/src/test/resources/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/server/web-common/README.md b/server/web-common/README.md
deleted file mode 100644
index f9b99f3..0000000
--- a/server/web-common/README.md
+++ /dev/null
@@ -1 +0,0 @@
-#flaginfo-web-parent
diff --git a/server/web-common/pom.xml b/server/web-common/pom.xml
deleted file mode 100644
index d2b10ab..0000000
--- a/server/web-common/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
- 4.0.0
- web-common
- jar
- PudongHot Ambition Web Common
- PudongHot Ambition Web Common
-
-
- com.pudonghot.ambition
- ambition-crm
- 0.0.1-SNAPSHOT
- ../
-
-
-
-
- me.chyxion.tigon
- tigon-webmvc-core
-
-
-
- org.projectlombok
- lombok
- provided
-
-
- javax.servlet
- javax.servlet-api
- provided
-
-
-
diff --git a/server/web-common/src/main/java/com/pudonghot/ambition/web/interceptor/DefaultHttpRequestInterceptor.java b/server/web-common/src/main/java/com/pudonghot/ambition/web/interceptor/DefaultHttpRequestInterceptor.java
deleted file mode 100644
index 2c4eef6..0000000
--- a/server/web-common/src/main/java/com/pudonghot/ambition/web/interceptor/DefaultHttpRequestInterceptor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.pudonghot.ambition.web.interceptor;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.util.PathMatcher;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.web.servlet.ModelAndView;
-import me.chyxion.tigon.webmvc.TigonHandlerInterceptor;
-
-/**
- * @author Shaun Chyxion
- * chyxion@163.com
- * Mar 19, 2017 21:50:57
- */
-@Slf4j
-public class DefaultHttpRequestInterceptor implements TigonHandlerInterceptor {
-
- @Override
- public String[] includePathPatterns() {
- return new String[] {"/**"};
- }
-
- @Override
- public String[] excludePathPatterns() {
- return null;
- }
-
- @Override
- public PathMatcher pathMatcher() {
- return null;
- }
-
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- log.debug("Request [{}] With Params [{}].", request.getRequestURI(), request.getParameterMap());
- request.setAttribute("startTime", System.currentTimeMillis());
- return true;
- }
-
- @Override
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
-
- }
-
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
- log.info("Request [{}] Took {} ms.",
- request.getRequestURI(),
- System.currentTimeMillis() - (Long) request.getAttribute("startTime"));
- }
-}
diff --git a/server/web-common/src/main/resources/spring/spring-ambition-web-common.xml b/server/web-common/src/main/resources/spring/spring-ambition-web-common.xml
deleted file mode 100644
index 36f3bab..0000000
--- a/server/web-common/src/main/resources/spring/spring-ambition-web-common.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/server/web-parent/README.md b/server/web-parent/README.md
deleted file mode 100644
index f9b99f3..0000000
--- a/server/web-parent/README.md
+++ /dev/null
@@ -1 +0,0 @@
-#flaginfo-web-parent
diff --git a/server/web-parent/pom.xml b/server/web-parent/pom.xml
deleted file mode 100644
index 09ee182..0000000
--- a/server/web-parent/pom.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
- 4.0.0
- web-parent
- pom
- PudongHot Ambition Web Parent
- PudongHot Ambition Web Parent
-
-
- com.pudonghot.ambition
- ambition-crm
- 0.0.1-SNAPSHOT
- ../
-
-
-
- ${project.artifactId}
-
-
-
-
- me.chyxion.tigon
- tigon-webmvc-spring-boot
-
-
- spring-boot-starter-logging
- org.springframework.boot
-
-
-
-
-
- org.apache.logging.log4j
- log4j-slf4j-impl
-
-
- org.apache.logging.log4j
- log4j-core
-
-
- com.pudonghot.ambition
- web-common
-
-
- org.projectlombok
- lombok
-
-
-
- ${project.build.finalName}
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
diff --git a/web/app/templates/components/customer-application/preview-btn.hbs b/web/app/templates/components/customer-application/preview-btn.hbs
index c67df79..366d338 100644
--- a/web/app/templates/components/customer-application/preview-btn.hbs
+++ b/web/app/templates/components/customer-application/preview-btn.hbs
@@ -30,7 +30,7 @@
image-height=null
image-style=(if (is-screen '