diff --git a/cms/src/main/java/com/pudonghot/yo/cms/annotation/Taggable.java b/cms/src/main/java/com/pudonghot/yo/cms/annotation/Taggable.java index 6befcd5b..d35280cd 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/annotation/Taggable.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/annotation/Taggable.java @@ -1,14 +1,12 @@ package com.pudonghot.yo.cms.annotation; -import java.lang.annotation.Target; -import java.lang.annotation.Retention; -import java.lang.annotation.ElementType; -import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.*; /** * @author Donghuang
* Nov 17, 2019 16:51:56 */ +@Inherited @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Taggable { diff --git a/cms/src/main/java/com/pudonghot/yo/cms/annotation/TenantResource.java b/cms/src/main/java/com/pudonghot/yo/cms/annotation/TenantResource.java index 66335b3d..07daefb7 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/annotation/TenantResource.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/annotation/TenantResource.java @@ -1,15 +1,13 @@ package com.pudonghot.yo.cms.annotation; -import java.lang.annotation.Target; -import java.lang.annotation.Retention; -import java.lang.annotation.ElementType; -import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.*; /** * Mark resource is part of tenant * @author Donghuang
* Nov 04, 2019 23:06:46 */ +@Inherited @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface TenantResource { diff --git a/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneBlacklistController.java b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneBlacklistController.java index 5234c04a..40e9ea55 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneBlacklistController.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneBlacklistController.java @@ -1,13 +1,7 @@ package com.pudonghot.yo.cms.controller; -import com.pudonghot.yo.cms.annotation.TenantResource; -import com.pudonghot.yo.model.domain.IvrMenu; -import com.wacai.tigon.form.FormList; -import com.wacai.tigon.web.annotation.FilterCol; -import com.wacai.tigon.web.annotation.ListApi; import org.springframework.stereotype.Controller; import com.pudonghot.yo.model.domain.PhoneBlacklist; -import com.wacai.tigon.web.controller.BaseCrudController; import org.springframework.web.bind.annotation.RequestMapping; import com.pudonghot.yo.cms.form.create.FormCreatePhoneBlacklist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneBlacklist; @@ -17,16 +11,9 @@ import com.pudonghot.yo.cms.form.update.FormUpdatePhoneBlacklist; * @date Sep 22, 2020 20:06:35 */ @Controller -@ListApi(searchCols = { - PhoneBlacklist.PHONE, - PhoneBlacklist.NOTE -}) -@TenantResource @RequestMapping("/phone-blacklist") public class PhoneBlacklistController - extends BaseCrudController { diff --git a/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneGreylistController.java b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneGreylistController.java index d7a26c2f..91899085 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneGreylistController.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneGreylistController.java @@ -1,11 +1,7 @@ package com.pudonghot.yo.cms.controller; -import com.wacai.tigon.form.FormList; -import com.wacai.tigon.web.annotation.ListApi; import org.springframework.stereotype.Controller; import com.pudonghot.yo.model.domain.PhoneGreylist; -import com.pudonghot.yo.cms.annotation.TenantResource; -import com.wacai.tigon.web.controller.BaseCrudController; import org.springframework.web.bind.annotation.RequestMapping; import com.pudonghot.yo.cms.form.create.FormCreatePhoneGreylist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneGreylist; @@ -15,17 +11,10 @@ import com.pudonghot.yo.cms.form.update.FormUpdatePhoneGreylist; * @date Sep 23, 2020 22:17:01 */ @Controller -@ListApi(searchCols = { - PhoneGreylist.PHONE, - PhoneGreylist.NOTE -}) -@TenantResource @RequestMapping("/phone-greylist") public class PhoneGreylistController - extends BaseCrudController { - } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneListController.java b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneListController.java new file mode 100644 index 00000000..69600044 --- /dev/null +++ b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneListController.java @@ -0,0 +1,54 @@ +package com.pudonghot.yo.cms.controller; + +import lombok.val; +import java.util.List; +import com.wacai.tigon.form.FormList; +import com.wacai.tigon.model.ViewModel; +import com.wacai.tigon.web.annotation.ListApi; +import com.pudonghot.yo.model.domain.PhoneList; +import com.wacai.tigon.web.controller.ArgQuery; +import com.pudonghot.yo.cms.form.BaseUpdateForm; +import com.pudonghot.yo.cms.annotation.TenantResource; +import com.wacai.tigon.web.controller.BaseCrudController; +import com.pudonghot.yo.cms.form.create.FormCreatePhoneList; +import com.pudonghot.yo.cellphone.privacy.NumberPrivacyUtils; + +/** + * @author Donghuang + * @date Sep 22, 2020 20:06:35 + */ +/** + * @author Donghuang + * @date Nov 28, 2020 23:24:17 + */ +@ListApi(searchCols = { + PhoneList.PHONE, + PhoneList.NOTE +}) +@TenantResource +public class PhoneListController + extends BaseCrudController { + + /** + * {@inheritDoc} + */ + @Override + protected void after(final ArgQuery arg) { + super.after(arg); + val type = arg.getType(); + + if (type == ArgQuery.Type.FIND) { + val data = (PhoneList) arg.getResult().getData(); + data.setPhone(NumberPrivacyUtils.mask(data.getPhone())); + } + else if (type == ArgQuery.Type.LIST) { + for (val vm : (List>) arg.getResult().getData()) { + val data = vm.getData(); + data.setPhone(NumberPrivacyUtils.mask(data.getPhone())); + } + } + } +} diff --git a/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneWhitelistController.java b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneWhitelistController.java index 5db3b91a..72f82967 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneWhitelistController.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/controller/PhoneWhitelistController.java @@ -1,11 +1,7 @@ package com.pudonghot.yo.cms.controller; -import com.wacai.tigon.form.FormList; -import com.wacai.tigon.web.annotation.ListApi; import org.springframework.stereotype.Controller; import com.pudonghot.yo.model.domain.PhoneWhitelist; -import com.pudonghot.yo.cms.annotation.TenantResource; -import com.wacai.tigon.web.controller.BaseCrudController; import org.springframework.web.bind.annotation.RequestMapping; import com.pudonghot.yo.cms.form.create.FormCreatePhoneWhitelist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneWhitelist; @@ -15,17 +11,9 @@ import com.pudonghot.yo.cms.form.update.FormUpdatePhoneWhitelist; * @date Sep 22, 2020 20:06:30 */ @Controller -@ListApi(searchCols = { - PhoneWhitelist.PHONE, - PhoneWhitelist.NOTE -}) -@TenantResource @RequestMapping("/phone-whitelist") public class PhoneWhitelistController - extends BaseCrudController { - } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/controller/TenantQueryHook.java b/cms/src/main/java/com/pudonghot/yo/cms/controller/TenantQueryHook.java index 7af057f1..38789dce 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/controller/TenantQueryHook.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/controller/TenantQueryHook.java @@ -1,17 +1,18 @@ package com.pudonghot.yo.cms.controller; -import com.pudonghot.yo.cms.auth.SessionAbility; +import lombok.val; import lombok.extern.slf4j.Slf4j; import me.chyxion.tigon.mybatis.Search; import com.wacai.tigon.model.ViewModel; -import com.wacai.tigon.web.controller.ArgQuery; import com.pudonghot.yo.model.domain.Agent; -import org.springframework.stereotype.Component; +import com.wacai.tigon.web.controller.ArgQuery; import com.pudonghot.yo.model.domain.ObjectTag; import com.pudonghot.yo.cms.service.TagService; import com.pudonghot.yo.cms.annotation.Taggable; -import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.stereotype.Component; +import com.pudonghot.yo.cms.auth.SessionAbility; import com.pudonghot.yo.cms.annotation.TenantResource; +import org.springframework.core.annotation.AnnotationUtils; import com.wacai.tigon.web.controller.BaseQueryControllerHook; import org.springframework.beans.factory.annotation.Autowired; @@ -38,10 +39,10 @@ public class TenantQueryHook implements BaseQueryControllerHook, SessionAbility */ @Override public void before(final ArgQuery arg) { - final TenantResource tr = AnnotationUtils.findAnnotation( + val tr = AnnotationUtils.findAnnotation( arg.getController(), TenantResource.class); if (tr != null) { - final Integer tenantId = getTenantId(); + val tenantId = getTenantId(); if (tr.searchAttr()) { log.debug("Query before: @TenantResource found, add search attr [{}].", tenantId); arg.getSearch().setAttr( @@ -54,7 +55,7 @@ public class TenantQueryHook implements BaseQueryControllerHook, SessionAbility } // Taggable - final Taggable taggable = AnnotationUtils.findAnnotation( + val taggable = AnnotationUtils.findAnnotation( arg.getController(), Taggable.class); if (taggable != null) { log.debug("Query before: @Taggable found, add search attr 'withTags'"); @@ -67,7 +68,7 @@ public class TenantQueryHook implements BaseQueryControllerHook, SessionAbility */ @Override public void after(final ArgQuery arg) { - final Taggable taggable = AnnotationUtils.findAnnotation( + val taggable = AnnotationUtils.findAnnotation( arg.getController(), Taggable.class); if (taggable != null) { final Integer tenantId = getTenantId(); diff --git a/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneBlacklist.java b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneBlacklist.java index 0d1444eb..f2942bfb 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneBlacklist.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneBlacklist.java @@ -2,8 +2,7 @@ package com.pudonghot.yo.cms.form.create; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; -import com.pudonghot.yo.cms.form.BaseCreateForm; +import lombok.ToString; /** * @author Donghuang @@ -11,8 +10,7 @@ import com.pudonghot.yo.cms.form.BaseCreateForm; */ @Getter @Setter -public class FormCreatePhoneBlacklist extends BaseCreateForm { +@ToString(callSuper = true) +public class FormCreatePhoneBlacklist extends FormCreatePhoneList { private static final long serialVersionUID = 1L; - @NotBlank - private String phone; } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneGreylist.java b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneGreylist.java index 9e26c660..07bd4fc9 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneGreylist.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneGreylist.java @@ -2,11 +2,9 @@ package com.pudonghot.yo.cms.form.create; import lombok.Getter; import lombok.Setter; -import com.pudonghot.yo.cms.form.BaseCreateForm; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.util.Date; +import lombok.ToString; +import javax.validation.constraints.NotNull; /** * @author Donghuang @@ -14,11 +12,10 @@ import java.util.Date; */ @Getter @Setter -public class FormCreatePhoneGreylist extends BaseCreateForm { +@ToString(callSuper = true) +public class FormCreatePhoneGreylist extends FormCreatePhoneList { private static final long serialVersionUID = 1L; - @NotBlank - private String phone; @NotNull private Date fromTime; @NotNull diff --git a/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneList.java b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneList.java new file mode 100644 index 00000000..c47f28e5 --- /dev/null +++ b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneList.java @@ -0,0 +1,20 @@ +package com.pudonghot.yo.cms.form.create; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import javax.validation.constraints.NotBlank; +import com.pudonghot.yo.cms.form.BaseCreateForm; + +/** + * @author Donghuang + * @date Nov 28, 2020 22:58:33 + */ +@Getter +@Setter +@ToString(callSuper = true) +public class FormCreatePhoneList extends BaseCreateForm { + private static final long serialVersionUID = 1L; + @NotBlank + private String phone; +} diff --git a/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneWhitelist.java b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneWhitelist.java index 585f3288..2e40f707 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneWhitelist.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/form/create/FormCreatePhoneWhitelist.java @@ -2,8 +2,7 @@ package com.pudonghot.yo.cms.form.create; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; -import com.pudonghot.yo.cms.form.BaseCreateForm; +import lombok.ToString; /** * @author Donghuang @@ -11,9 +10,7 @@ import com.pudonghot.yo.cms.form.BaseCreateForm; */ @Getter @Setter -public class FormCreatePhoneWhitelist extends BaseCreateForm { +@ToString(callSuper = true) +public class FormCreatePhoneWhitelist extends FormCreatePhoneList { private static final long serialVersionUID = 1L; - @NotBlank - private String phone; - } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneBlacklist.java b/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneBlacklist.java index 9c953f3b..b129aadd 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneBlacklist.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneBlacklist.java @@ -2,7 +2,7 @@ package com.pudonghot.yo.cms.form.update; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; +import lombok.ToString; import com.pudonghot.yo.cms.form.BaseUpdateForm; /** @@ -11,9 +11,7 @@ import com.pudonghot.yo.cms.form.BaseUpdateForm; */ @Getter @Setter +@ToString(callSuper = true) public class FormUpdatePhoneBlacklist extends BaseUpdateForm { private static final long serialVersionUID = 1L; - - @NotBlank - private String phone; } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneGreylist.java b/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneGreylist.java index f6fb15dc..051cef1f 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneGreylist.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneGreylist.java @@ -3,6 +3,7 @@ package com.pudonghot.yo.cms.form.update; import lombok.Getter; import lombok.Setter; import java.util.Date; +import lombok.ToString; import javax.validation.constraints.NotNull; import com.pudonghot.yo.cms.form.BaseUpdateForm; @@ -12,6 +13,7 @@ import com.pudonghot.yo.cms.form.BaseUpdateForm; */ @Getter @Setter +@ToString(callSuper = true) public class FormUpdatePhoneGreylist extends BaseUpdateForm { private static final long serialVersionUID = 1L; @NotNull diff --git a/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneWhitelist.java b/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneWhitelist.java index 93b8c20f..5da6f7b5 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneWhitelist.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/form/update/FormUpdatePhoneWhitelist.java @@ -2,7 +2,7 @@ package com.pudonghot.yo.cms.form.update; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; +import lombok.ToString; import com.pudonghot.yo.cms.form.BaseUpdateForm; /** @@ -11,9 +11,7 @@ import com.pudonghot.yo.cms.form.BaseUpdateForm; */ @Getter @Setter +@ToString(callSuper = true) public class FormUpdatePhoneWhitelist extends BaseUpdateForm { private static final long serialVersionUID = 1L; - - @NotBlank - private String phone; } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneBlacklistService.java b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneBlacklistService.java index 98b2bbe5..c7c42165 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneBlacklistService.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneBlacklistService.java @@ -3,15 +3,13 @@ package com.pudonghot.yo.cms.service; import com.pudonghot.yo.model.domain.PhoneBlacklist; import com.pudonghot.yo.cms.form.create.FormCreatePhoneBlacklist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneBlacklist; -import com.wacai.tigon.service.BaseCrudByFormService; /** * @author Donghuang * @date Sep 22, 2020 20:06:35 */ public interface PhoneBlacklistService - extends BaseCrudByFormService { diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneGreylistService.java b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneGreylistService.java index 762f7c80..c3026491 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneGreylistService.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneGreylistService.java @@ -3,15 +3,13 @@ package com.pudonghot.yo.cms.service; import com.pudonghot.yo.model.domain.PhoneGreylist; import com.pudonghot.yo.cms.form.create.FormCreatePhoneGreylist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneGreylist; -import com.wacai.tigon.service.BaseCrudByFormService; /** * @author Donghuang * @date Sep 23, 2020 22:17:01 */ public interface PhoneGreylistService - extends BaseCrudByFormService { diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneListService.java b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneListService.java new file mode 100644 index 00000000..9076d283 --- /dev/null +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneListService.java @@ -0,0 +1,16 @@ +package com.pudonghot.yo.cms.service; + +import com.pudonghot.yo.model.domain.PhoneList; +import com.pudonghot.yo.cms.form.BaseUpdateForm; +import com.wacai.tigon.service.BaseCrudByFormService; +import com.pudonghot.yo.cms.form.create.FormCreatePhoneList; + +/** + * @author Donghuang + * @date Nov 28, 2020 23:05:49 + */ +public interface PhoneListService + extends BaseCrudByFormService { +} diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneWhitelistService.java b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneWhitelistService.java index 06c34fc6..5e4c154a 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneWhitelistService.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/PhoneWhitelistService.java @@ -3,15 +3,13 @@ package com.pudonghot.yo.cms.service; import com.pudonghot.yo.model.domain.PhoneWhitelist; import com.pudonghot.yo.cms.form.create.FormCreatePhoneWhitelist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneWhitelist; -import com.wacai.tigon.service.BaseCrudByFormService; /** * @author Donghuang * @date Sep 22, 2020 20:06:30 */ public interface PhoneWhitelistService - extends BaseCrudByFormService { diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneBlacklistServiceImpl.java b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneBlacklistServiceImpl.java index f5520278..58f39ed5 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneBlacklistServiceImpl.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneBlacklistServiceImpl.java @@ -1,12 +1,11 @@ package com.pudonghot.yo.cms.service.impl; import org.springframework.stereotype.Service; -import com.pudonghot.yo.model.domain.PhoneBlacklist; import com.pudonghot.yo.mapper.PhoneBlacklistMapper; +import com.pudonghot.yo.model.domain.PhoneBlacklist; import com.pudonghot.yo.cms.service.PhoneBlacklistService; import com.pudonghot.yo.cms.form.create.FormCreatePhoneBlacklist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneBlacklist; -import com.wacai.tigon.service.support.BaseCrudByFormServiceSupport; /** * @author Donghuang @@ -14,11 +13,10 @@ import com.wacai.tigon.service.support.BaseCrudByFormServiceSupport; */ @Service public class PhoneBlacklistServiceImpl - extends BaseCrudByFormServiceSupport implements PhoneBlacklistService { - } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneGreylistServiceImpl.java b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneGreylistServiceImpl.java index 1423cd96..fba24ed2 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneGreylistServiceImpl.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneGreylistServiceImpl.java @@ -1,12 +1,11 @@ package com.pudonghot.yo.cms.service.impl; import org.springframework.stereotype.Service; -import com.pudonghot.yo.model.domain.PhoneGreylist; import com.pudonghot.yo.mapper.PhoneGreylistMapper; +import com.pudonghot.yo.model.domain.PhoneGreylist; import com.pudonghot.yo.cms.service.PhoneGreylistService; import com.pudonghot.yo.cms.form.create.FormCreatePhoneGreylist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneGreylist; -import com.wacai.tigon.service.support.BaseCrudByFormServiceSupport; /** * @author Donghuang @@ -14,11 +13,10 @@ import com.wacai.tigon.service.support.BaseCrudByFormServiceSupport; */ @Service public class PhoneGreylistServiceImpl - extends BaseCrudByFormServiceSupport implements PhoneGreylistService { - } diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneListServiceImpl.java b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneListServiceImpl.java new file mode 100644 index 00000000..2687e07a --- /dev/null +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneListServiceImpl.java @@ -0,0 +1,93 @@ +package com.pudonghot.yo.cms.service.impl; + +import lombok.val; +import java.util.List; +import java.util.ArrayList; +import lombok.extern.slf4j.Slf4j; +import me.chyxion.tigon.mybatis.Search; +import org.springframework.util.Assert; +import com.wacai.tigon.model.ViewModel; +import me.chyxion.tigon.mybatis.BaseMapper; +import org.apache.commons.lang3.StringUtils; +import com.pudonghot.yo.model.domain.PhoneList; +import com.pudonghot.yo.cms.form.BaseUpdateForm; +import com.pudonghot.yo.cms.service.PhoneListService; +import com.pudonghot.yo.mapper.CallDetailRecordMapper; +import com.pudonghot.yo.model.domain.CallDetailRecord; +import com.pudonghot.yo.cms.form.create.FormCreatePhoneList; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import com.wacai.tigon.service.support.BaseCrudByFormServiceSupport; + +/** + * @author Donghuang + * @date Sep 22, 2020 20:06:35 + */ +@Slf4j +public class PhoneListServiceImpl> + extends BaseCrudByFormServiceSupport + implements PhoneListService { + + @Autowired + private CallDetailRecordMapper callDetailRecordMapper; + + /** + * {@inheritDoc} + */ + @Override + @Transactional(transactionManager = "transactionManager", rollbackFor = Exception.class) + public ViewModel create(final FormCreatePhoneList form) { + log.debug("Create form [{}].", form); + val phoneLists = validateNumber(form); + for (val phoneList : phoneLists) { + val phone = phoneList.getPhone(); + val modelExisted = mapper.find( + new Search(PhoneList.TENANT_ID, form.getTenantId()) + .eq(PhoneList.PHONE, phone)); + if (modelExisted != null) { + form.copy(modelExisted); + modelExisted.setPhone(phone); + log.info("Update phone list existed [{}].", modelExisted); + update(modelExisted); + } + else { + create(phoneList); + } + } + + return new ViewModel<>(null); + } + + String findByConnId(final String connId) { + val callDetailRecord = callDetailRecordMapper.find( + new Search(CallDetailRecord.CONN_ID, connId).limit(1)); + return callDetailRecord != null ? callDetailRecord.getCalledNumber() : null; + } + + List validateNumber(final FormCreatePhoneList form) { + val phones = form.getPhone().split("[^\\w]+"); + val phoneListList = new ArrayList(phones.length); + + for (val phone : phones) { + if (!StringUtils.isNumeric(phone)) { + val phone2 = findByConnId(phone); + Assert.state(StringUtils.isNotBlank(phone2), + () -> "通话ID[" + phone + "]未找到拨打记录"); + phoneListList.add(createModel(form, phone2)); + } + else { + phoneListList.add(createModel(form, phone)); + } + } + return phoneListList; + } + + private M createModel(final FormCreatePhoneList form, final String phone) { + val model = form.copy(modelType); + model.setPhone(phone); + return model; + } +} diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneWhitelistServiceImpl.java b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneWhitelistServiceImpl.java index 48a62498..8bbff5ac 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneWhitelistServiceImpl.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/PhoneWhitelistServiceImpl.java @@ -1,12 +1,11 @@ package com.pudonghot.yo.cms.service.impl; import org.springframework.stereotype.Service; -import com.pudonghot.yo.model.domain.PhoneWhitelist; import com.pudonghot.yo.mapper.PhoneWhitelistMapper; +import com.pudonghot.yo.model.domain.PhoneWhitelist; import com.pudonghot.yo.cms.service.PhoneWhitelistService; import com.pudonghot.yo.cms.form.create.FormCreatePhoneWhitelist; import com.pudonghot.yo.cms.form.update.FormUpdatePhoneWhitelist; -import com.wacai.tigon.service.support.BaseCrudByFormServiceSupport; /** * @author Donghuang @@ -14,11 +13,10 @@ import com.wacai.tigon.service.support.BaseCrudByFormServiceSupport; */ @Service public class PhoneWhitelistServiceImpl - extends BaseCrudByFormServiceSupport implements PhoneWhitelistService { - } diff --git a/lib/cellphone-location/src/main/java/com/pudonghot/yo/cellphone/privacy/NumberPrivacyUtils.java b/lib/cellphone-location/src/main/java/com/pudonghot/yo/cellphone/privacy/NumberPrivacyUtils.java index 633bfb1d..6a2ebf0f 100644 --- a/lib/cellphone-location/src/main/java/com/pudonghot/yo/cellphone/privacy/NumberPrivacyUtils.java +++ b/lib/cellphone-location/src/main/java/com/pudonghot/yo/cellphone/privacy/NumberPrivacyUtils.java @@ -25,6 +25,10 @@ public class NumberPrivacyUtils { private static final Pattern HEAVY_PRIVACY_PATTERN = Pattern.compile("(\\w{0,7})\\w{4}$"); + public static String mask(final String number) { + return mask(number, PrivacyLevel.HEAVY); + } + public static String mask(final String number, final PrivacyLevel level) { if (level == PrivacyLevel.NONE) { return number; diff --git a/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneBlacklist.java b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneBlacklist.java index f1abc1ed..740ee1b9 100644 --- a/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneBlacklist.java +++ b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneBlacklist.java @@ -2,8 +2,8 @@ package com.pudonghot.yo.model.domain; import lombok.Getter; import lombok.Setter; +import lombok.ToString; import me.chyxion.tigon.mybatis.Table; -import me.chyxion.tigon.mybatis.NotUpdate; import lombok.experimental.FieldNameConstants; /** @@ -12,11 +12,9 @@ import lombok.experimental.FieldNameConstants; */ @Getter @Setter +@ToString(callSuper = true) @Table("br_phone_blacklist") @FieldNameConstants(prefix = "") -public class PhoneBlacklist extends TenantDomain { +public class PhoneBlacklist extends PhoneList { private static final long serialVersionUID = 1L; - - @NotUpdate - private String phone; } diff --git a/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneGreylist.java b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneGreylist.java index 1d3f5297..18380f83 100644 --- a/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneGreylist.java +++ b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneGreylist.java @@ -3,8 +3,8 @@ package com.pudonghot.yo.model.domain; import lombok.Getter; import lombok.Setter; import java.util.Date; +import lombok.ToString; import me.chyxion.tigon.mybatis.Table; -import me.chyxion.tigon.mybatis.NotUpdate; import lombok.experimental.FieldNameConstants; /** @@ -13,13 +13,12 @@ import lombok.experimental.FieldNameConstants; */ @Getter @Setter +@ToString(callSuper = true) @Table("br_phone_greylist") @FieldNameConstants(prefix = "") -public class PhoneGreylist extends TenantDomain { +public class PhoneGreylist extends PhoneList { private static final long serialVersionUID = 1L; - @NotUpdate - private String phone; private Date fromTime; private Date toTime; private Integer credit; diff --git a/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneList.java b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneList.java new file mode 100644 index 00000000..da1a251d --- /dev/null +++ b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneList.java @@ -0,0 +1,23 @@ +package com.pudonghot.yo.model.domain; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import me.chyxion.tigon.mybatis.Table; +import me.chyxion.tigon.mybatis.NotUpdate; +import lombok.experimental.FieldNameConstants; + +/** + * @author Donghuang + * @date Nov 28, 2020 22:55:27 + */ +@Getter +@Setter +@ToString(callSuper = true) +@FieldNameConstants(prefix = "") +public class PhoneList extends TenantDomain { + private static final long serialVersionUID = 1L; + + @NotUpdate + private String phone; +} diff --git a/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneWhitelist.java b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneWhitelist.java index c937a50b..3309e215 100644 --- a/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneWhitelist.java +++ b/lib/model/src/main/java/com/pudonghot/yo/model/domain/PhoneWhitelist.java @@ -2,8 +2,8 @@ package com.pudonghot.yo.model.domain; import lombok.Getter; import lombok.Setter; +import lombok.ToString; import me.chyxion.tigon.mybatis.Table; -import me.chyxion.tigon.mybatis.NotUpdate; import lombok.experimental.FieldNameConstants; /** @@ -12,11 +12,9 @@ import lombok.experimental.FieldNameConstants; */ @Getter @Setter +@ToString(callSuper = true) @Table("br_phone_whitelist") @FieldNameConstants(prefix = "") -public class PhoneWhitelist extends TenantDomain { +public class PhoneWhitelist extends PhoneList { private static final long serialVersionUID = 1L; - - @NotUpdate - private String phone; } diff --git a/lib/tigon/pom.xml b/lib/tigon/pom.xml index 035b6c30..5052ab1d 100644 --- a/lib/tigon/pom.xml +++ b/lib/tigon/pom.xml @@ -21,6 +21,7 @@ 2.9.9.20190807 5.2.5.RELEASE 2.2.6.RELEASE + 0.0.3 @@ -79,12 +80,12 @@ me.chyxion.tigon tigon-mybatis-common - 0.0.3 + ${tigon-mybatis.version} me.chyxion.tigon tigon-mybatis - 0.0.3 + ${tigon-mybatis.version} com.wacai.tigon diff --git a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Filter.java b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Filter.java index 300e0039..47908472 100644 --- a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Filter.java +++ b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Filter.java @@ -1,6 +1,7 @@ package com.wacai.tigon.web.annotation; import java.lang.annotation.Documented; +import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -8,6 +9,7 @@ import java.lang.annotation.RetentionPolicy; * @author Donghuang
* Sep 12, 2019 17:53:24 */ +@Inherited @Documented @Retention(RetentionPolicy.RUNTIME) public @interface Filter { diff --git a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/FilterCol.java b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/FilterCol.java index 590c0d3a..fe5e1d18 100644 --- a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/FilterCol.java +++ b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/FilterCol.java @@ -1,7 +1,7 @@ package com.wacai.tigon.web.annotation; import me.chyxion.tigon.mybatis.Search; - +import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.Documented; import java.lang.annotation.RetentionPolicy; @@ -10,6 +10,7 @@ import java.lang.annotation.RetentionPolicy; * @author Donghuang
* Sep 11, 2019 09:59:32 */ +@Inherited @Documented @Retention(RetentionPolicy.RUNTIME) public @interface FilterCol { diff --git a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/ListApi.java b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/ListApi.java index 48d39f18..4fa60bca 100644 --- a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/ListApi.java +++ b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/ListApi.java @@ -6,6 +6,7 @@ import java.lang.annotation.*; * @author Donghuang
* Sep 11, 2019 09:59:47 */ +@Inherited @Documented @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) diff --git a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Order.java b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Order.java index cc5f7da3..c7f54719 100644 --- a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Order.java +++ b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/Order.java @@ -1,6 +1,7 @@ package com.wacai.tigon.web.annotation; import me.chyxion.tigon.mybatis.Search; +import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.Documented; import java.lang.annotation.RetentionPolicy; @@ -10,6 +11,7 @@ import org.springframework.core.annotation.AliasFor; * @author Donghuang
* Sep 12, 2019 17:48:22 */ +@Inherited @Documented @Retention(RetentionPolicy.RUNTIME) public @interface Order { diff --git a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/OrderCol.java b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/OrderCol.java index 5a4defe0..2e20e109 100644 --- a/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/OrderCol.java +++ b/lib/tigon/web/src/main/java/com/wacai/tigon/web/annotation/OrderCol.java @@ -1,15 +1,16 @@ package com.wacai.tigon.web.annotation; -import org.springframework.core.annotation.AliasFor; - +import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.Documented; import java.lang.annotation.RetentionPolicy; +import org.springframework.core.annotation.AliasFor; /** * @author Donghuang
* Sep 11, 2019 10:00:28 */ +@Inherited @Documented @Retention(RetentionPolicy.RUNTIME) public @interface OrderCol { diff --git a/web/cms/app/templates/phone-blacklist/create.hbs b/web/cms/app/templates/phone-blacklist/create.hbs index ac48d82f..d22a6084 100644 --- a/web/cms/app/templates/phone-blacklist/create.hbs +++ b/web/cms/app/templates/phone-blacklist/create.hbs @@ -1,6 +1,6 @@ {{#form-content}}
- {{form-input name='phone' label='号码'}} + {{form-input type='textarea' name='phone' label='号码' placeholder='手机号/通话ID'}} {{form-input name='note' label='备注'}}
diff --git a/web/cms/app/templates/phone-greylist/create.hbs b/web/cms/app/templates/phone-greylist/create.hbs index 5f0ba927..ddf356d2 100644 --- a/web/cms/app/templates/phone-greylist/create.hbs +++ b/web/cms/app/templates/phone-greylist/create.hbs @@ -1,6 +1,7 @@ {{#form-content}}
- {{form-input name='phone' label='号码'}} + {{form-input type='textarea' name='phone' label='号码' placeholder='手机号/通话ID'}} + {{form-input-datetimepicker name='fromTime' label='开始时间'}} diff --git a/web/cms/app/templates/phone-whitelist/create.hbs b/web/cms/app/templates/phone-whitelist/create.hbs index ac48d82f..d22a6084 100644 --- a/web/cms/app/templates/phone-whitelist/create.hbs +++ b/web/cms/app/templates/phone-whitelist/create.hbs @@ -1,6 +1,6 @@ {{#form-content}}
- {{form-input name='phone' label='号码'}} + {{form-input type='textarea' name='phone' label='号码' placeholder='手机号/通话ID'}} {{form-input name='note' label='备注'}}