From 5105bdc6d28aa0a4acb03560852bb92e9afae27a Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Fri, 13 Jul 2018 16:58:42 +0800 Subject: [PATCH] add risk merchants html --- src/db/modify.sql | 12 +++ .../risk/RiskAttentionMerchantsAMapper.java | 31 +++++++ .../risk/bean/QueryAttentionMerchants.java | 49 +++++++++++ .../manage/risk/core/RiskMerchantService.java | 9 +- .../core/impl/RiskMerchantServiceImpl.java | 65 ++++++++++++-- .../manage/risk/web/RiskController.java | 20 +++-- .../risk/templates/attention_merchants.html | 84 +++++++++++++++++++ 7 files changed, 251 insertions(+), 19 deletions(-) create mode 100644 src/main/java/au/com/royalpay/payment/manage/mappers/risk/RiskAttentionMerchantsAMapper.java create mode 100644 src/main/java/au/com/royalpay/payment/manage/risk/bean/QueryAttentionMerchants.java create mode 100644 src/main/ui/static/risk/templates/attention_merchants.html diff --git a/src/db/modify.sql b/src/db/modify.sql index af8eaf18f..b2d6c735c 100644 --- a/src/db/modify.sql +++ b/src/db/modify.sql @@ -660,3 +660,15 @@ CREATE TABLE `act_charity` ( `active_time` date DEFAULT NULL, PRIMARY KEY (`client_moniker`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `risk_attention_merchants` ( + `id` varchar(50) NOT NULL, + `client_id` int(11) NOT NULL, + `client_moniker` varchar(20) NOT NULL, + `is_valid` tinyint(1) NOT NULL DEFAULT 1, + `create_time` datetime NOT NULL, + `update_time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `client_moniker` (`client_moniker`), + KEY `id` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/risk/RiskAttentionMerchantsAMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/risk/RiskAttentionMerchantsAMapper.java new file mode 100644 index 000000000..57ef0030a --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/risk/RiskAttentionMerchantsAMapper.java @@ -0,0 +1,31 @@ +package au.com.royalpay.payment.manage.mappers.risk; + +import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper; +import cn.yixblog.support.mybatis.autosql.annotations.AutoSql; +import cn.yixblog.support.mybatis.autosql.annotations.SqlType; +import com.alibaba.fastjson.JSONObject; +import com.github.miemiedev.mybatis.paginator.domain.PageBounds; +import com.github.miemiedev.mybatis.paginator.domain.PageList; +import org.apache.ibatis.annotations.Param; + +/** + * Create by yixian at 2017-12-21 11:45 + */ +@AutoMapper(tablename = "risk_attention_merchants", pkName = "id") +public interface RiskAttentionMerchantsAMapper { + @AutoSql(type = SqlType.UPDATE) + void update(JSONObject client); + + @AutoSql(type = SqlType.INSERT) + void save(JSONObject client); + + @AutoSql(type = SqlType.SELECT) + JSONObject findById(@Param("id") String id); + + @AutoSql(type = SqlType.SELECT) + JSONObject findByClientMoniker(@Param("client_moniker") String client_moniker); + + @AutoSql(type = SqlType.SELECT) + PageList query(JSONObject params, PageBounds pagination); + +} diff --git a/src/main/java/au/com/royalpay/payment/manage/risk/bean/QueryAttentionMerchants.java b/src/main/java/au/com/royalpay/payment/manage/risk/bean/QueryAttentionMerchants.java new file mode 100644 index 000000000..231803ee5 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/risk/bean/QueryAttentionMerchants.java @@ -0,0 +1,49 @@ +package au.com.royalpay.payment.manage.risk.bean; + +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; + +/** + * Created by yuan on 2018/7/13. + */ +public class QueryAttentionMerchants { + private String client_moniker; + + private int page = 1; + private int limit = 10; + + + + public JSONObject toParams() { + JSONObject params = new JSONObject(); + if(StringUtils.isNotEmpty(client_moniker)){ + params.put("client_moniker", this.client_moniker); + } + params.put("is_valid", 1); + return params; + } + + public String getClient_moniker() { + return client_moniker; + } + + public void setClient_moniker(String client_moniker) { + this.client_moniker = client_moniker; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public int getLimit() { + return limit; + } + + public void setLimit(int limit) { + this.limit = limit; + } +} diff --git a/src/main/java/au/com/royalpay/payment/manage/risk/core/RiskMerchantService.java b/src/main/java/au/com/royalpay/payment/manage/risk/core/RiskMerchantService.java index a8a2109af..895c501ec 100644 --- a/src/main/java/au/com/royalpay/payment/manage/risk/core/RiskMerchantService.java +++ b/src/main/java/au/com/royalpay/payment/manage/risk/core/RiskMerchantService.java @@ -1,10 +1,6 @@ package au.com.royalpay.payment.manage.risk.core; -import au.com.royalpay.payment.manage.risk.bean.AddRiskDetailLog; -import au.com.royalpay.payment.manage.risk.bean.DealRiskRecord; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskDetail; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskOrder; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskRecord; +import au.com.royalpay.payment.manage.risk.bean.*; import com.alibaba.fastjson.JSONObject; @@ -32,6 +28,9 @@ public interface RiskMerchantService { JSONObject getRiskDetails(QueryRiskDetail queryRiskDetail); + JSONObject listAttentionMerchants(JSONObject account,QueryAttentionMerchants queryAttention); + void addAttentionMerchants(JSONObject account,String client_moniker); + void updateAttentionMerchants(JSONObject account,String client_moniker); } diff --git a/src/main/java/au/com/royalpay/payment/manage/risk/core/impl/RiskMerchantServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/risk/core/impl/RiskMerchantServiceImpl.java index f8f8651a6..0d9b3fdec 100644 --- a/src/main/java/au/com/royalpay/payment/manage/risk/core/impl/RiskMerchantServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/risk/core/impl/RiskMerchantServiceImpl.java @@ -1,21 +1,15 @@ package au.com.royalpay.payment.manage.risk.core.impl; -import au.com.royalpay.payment.manage.mappers.risk.RiskMerchantDetailLogMapper; -import au.com.royalpay.payment.manage.mappers.risk.RiskMerchantRecordMapper; -import au.com.royalpay.payment.manage.mappers.risk.RiskTransactionLogMapper; -import au.com.royalpay.payment.manage.mappers.risk.RiskWhiteListMapper; +import au.com.royalpay.payment.manage.mappers.risk.*; import au.com.royalpay.payment.manage.merchants.core.ClientManager; -import au.com.royalpay.payment.manage.risk.bean.AddRiskDetailLog; -import au.com.royalpay.payment.manage.risk.bean.DealRiskRecord; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskDetail; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskOrder; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskRecord; +import au.com.royalpay.payment.manage.risk.bean.*; import au.com.royalpay.payment.manage.risk.core.RiskMerchantService; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.NotFoundException; import au.com.royalpay.payment.tools.utils.PageListUtils; import com.alibaba.fastjson.JSONObject; +import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import org.apache.commons.lang3.StringUtils; @@ -39,6 +33,8 @@ public class RiskMerchantServiceImpl implements RiskMerchantService { private RiskWhiteListMapper riskWhiteListMapper; @Resource private ClientManager clientManager; + @Resource + private RiskAttentionMerchantsAMapper riskAttentionMerchantsAMapper; @Override @Transactional @@ -213,4 +209,55 @@ public class RiskMerchantServiceImpl implements RiskMerchantService { riskMerchantDetailLogMapper.query(queryRiskDetail.toParams(), new PageBounds(queryRiskDetail.getPage(), queryRiskDetail.getLimit()))); } + + @Override + public JSONObject listAttentionMerchants(JSONObject account, QueryAttentionMerchants queryAttention) { + if (account == null) { + throw new BadRequestException("account not exists"); + } + return PageListUtils.buildPageListResult( + riskAttentionMerchantsAMapper.query(queryAttention.toParams(), new PageBounds(queryAttention.getPage(), queryAttention.getLimit(), Order.formString("create_time.desc")))); + } + + @Override + public void addAttentionMerchants(JSONObject account, String client_moniker) { + if (account == null) { + throw new BadRequestException("account not exists"); + } + JSONObject attentionMerchant = riskAttentionMerchantsAMapper.findByClientMoniker(client_moniker); + if(attentionMerchant != null){ + if(attentionMerchant.getBoolean("is_valid")){ + throw new BadRequestException("The client has already existed"); + }else { + attentionMerchant.put("is_valid",1); + attentionMerchant.put("update_time",new Date()); + riskAttentionMerchantsAMapper.update(attentionMerchant); + return; + } + } + JSONObject client = clientManager.getClientInfoByMoniker(client_moniker); + if(client == null){ + throw new BadRequestException("The client does not exist"); + } + JSONObject attention = new JSONObject(); + attention.put("client_id",client.getIntValue("client_id")); + attention.put("client_moniker",client.getString("client_moniker")); + attention.put("is_valid",1); + attention.put("create_time",new Date()); + riskAttentionMerchantsAMapper.save(attention); + } + + @Override + public void updateAttentionMerchants(JSONObject account, String client_moniker) { + if (account == null) { + throw new BadRequestException("account not exists"); + } + JSONObject attentionMerchant = riskAttentionMerchantsAMapper.findByClientMoniker(client_moniker); + if(attentionMerchant == null){ + throw new BadRequestException("The client does not exist"); + } + attentionMerchant.put("is_valid",0); + attentionMerchant.put("update_time",new Date()); + riskAttentionMerchantsAMapper.update(attentionMerchant); + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/risk/web/RiskController.java b/src/main/java/au/com/royalpay/payment/manage/risk/web/RiskController.java index 45775e2a4..651345395 100644 --- a/src/main/java/au/com/royalpay/payment/manage/risk/web/RiskController.java +++ b/src/main/java/au/com/royalpay/payment/manage/risk/web/RiskController.java @@ -1,11 +1,7 @@ package au.com.royalpay.payment.manage.risk.web; import au.com.royalpay.payment.manage.permission.manager.ManagerMapping; -import au.com.royalpay.payment.manage.risk.bean.AddRiskDetailLog; -import au.com.royalpay.payment.manage.risk.bean.DealRiskRecord; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskDetail; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskOrder; -import au.com.royalpay.payment.manage.risk.bean.QueryRiskRecord; +import au.com.royalpay.payment.manage.risk.bean.*; import au.com.royalpay.payment.manage.risk.core.RiskMerchantService; import au.com.royalpay.payment.tools.CommonConsts; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; @@ -94,4 +90,18 @@ public class RiskController { riskMerchantService.addDetailLog(addRiskDetailLog,manager); } + @RequestMapping(value = "/attention", method = RequestMethod.GET) + public JSONObject listMerchants(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager,QueryAttentionMerchants queryAttention ) { + return riskMerchantService.listAttentionMerchants(manager,queryAttention); + } + + @RequestMapping(value = "/attention/{client_moniker}", method = RequestMethod.POST) + public void addMerchants(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager,@PathVariable String client_moniker) { + riskMerchantService.addAttentionMerchants(manager,client_moniker); + } + + @RequestMapping(value = "/attention/{client_moniker}", method = RequestMethod.PUT) + public void updateMerchants(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager,@PathVariable String client_moniker) { + riskMerchantService.updateAttentionMerchants(manager,client_moniker); + } } diff --git a/src/main/ui/static/risk/templates/attention_merchants.html b/src/main/ui/static/risk/templates/attention_merchants.html new file mode 100644 index 000000000..1276a42c7 --- /dev/null +++ b/src/main/ui/static/risk/templates/attention_merchants.html @@ -0,0 +1,84 @@ +
+
+

Risky Merchants

+ +
+
+
+
+
+
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+
+
+
+
Clients
+
+ + + + + + + + + + + + + + + +
Client MonikerCreate TimeOperation
{{client.client_moniker}}{{client.create_time}} + Disable +
+ +
+
+
+
\ No newline at end of file