From 9981c2b36f746a4274130fb5802f994d71287bb9 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Tue, 20 Mar 2018 15:43:12 +0800 Subject: [PATCH 1/5] add acts log --- src/db/modify.sql | 20 ++++++++++- .../impls/ActMonDelaySettleServiceImp.java | 33 ++++++++++++++++--- .../mappers/log/ActsClientsLogMapper.java | 16 +++++++++ .../manage/merchants/core/ClientManager.java | 1 + .../core/impls/ClientManagerImpl.java | 8 +++++ 5 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 src/main/java/au/com/royalpay/payment/manage/mappers/log/ActsClientsLogMapper.java diff --git a/src/db/modify.sql b/src/db/modify.sql index bbf38a50d..81b07b02c 100644 --- a/src/db/modify.sql +++ b/src/db/modify.sql @@ -314,4 +314,22 @@ ALTER TABLE `sys_customer_relation` ADD COLUMN `globalpay_openid` varchar(100) NULL AFTER `kanga_openid`; -ALTER TABLE act_app_list ADD banner_img VARCHAR(200) NULL COMMENT 'App首页banner图片'; \ No newline at end of file +ALTER TABLE act_app_list ADD banner_img VARCHAR(200) NULL COMMENT 'App首页banner图片'; + + +alter table act_app_list add column `msg_start_date` date DEFAULT NULL; +alter table act_app_list add column `msg_end_date` date DEFAULT NULL; +alter table act_app_list add column `msg_interval` smallint(3) DEFAULT NULL; + +alter table sys_clients add column `manual_settle` tinyint(1) DEFAULT 0; + + +create table log_acts_clients( +id varchar(50) not null, +client_id int(11) not null, +act_id varchar(50) not null, +act_name varchar(100) NOT NULL COMMENT '活动名称', +create_time datetime not null, +operation TINYINT(3) default 0 comment '0:noop,1:参加活动,2退出活动', +PRIMARY key(`id`) +); \ No newline at end of file diff --git a/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java index 0d7342475..542a47f07 100644 --- a/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java @@ -4,7 +4,9 @@ import au.com.royalpay.payment.manage.activities.monsettledelay.core.ActMonDelay import au.com.royalpay.payment.manage.mappers.act.ActAppMapper; import au.com.royalpay.payment.manage.mappers.act.ActMonDelaySettleMapper; import au.com.royalpay.payment.manage.mappers.act.ActMonDelaySettleRedPackMapper; +import au.com.royalpay.payment.manage.mappers.log.ActsClientsLogMapper; import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; +import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.tools.device.DeviceSupport; import au.com.royalpay.payment.tools.env.PlatformEnvironment; import au.com.royalpay.payment.tools.exceptions.BadRequestException; @@ -18,6 +20,7 @@ import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageList; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.math.BigDecimal; @@ -40,7 +43,10 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { private ClientAccountMapper clientAccountMapper; @Resource private ActAppMapper actAppMapper; - + @Resource + private ActsClientsLogMapper actsClientsLogMapper; + @Resource + private ClientManager clientManager; @Override public JSONObject getActNotice(JSONObject device) { @@ -96,6 +102,7 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { } @Override + @Transactional public void actApply(JSONObject device) { LocalDateTime dt = LocalDateTime.now(); if(dt.getDayOfWeek()== DayOfWeek.MONDAY && dt.getHour()<18){ @@ -112,8 +119,6 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { if (new Date().compareTo(act.getDate("expire_date")) > 0) { throw new BadRequestException("The activity has expired"); } - String clientType = device.getString("client_type"); - deviceSupport.findRegister(clientType); int client_id = device.getIntValue("client_id"); List clientLogs = actMonDelaySettleMapper.clientLog(client_id); if (!clientLogs.isEmpty()) { @@ -129,16 +134,20 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { device.put("rate", params.getBigDecimal("rate") == null ? new BigDecimal(0.15) : params.getBigDecimal("rate")); device.put("expire_time", act.getDate("expire_date")); actMonDelaySettleMapper.save(device); + clientManager.changeManualSettle(client_id,true); + saveActClientLog(act.getString("act_id"),act.getString("act_name"), client_id,1); + } + + @Override + @Transactional public void cancelAct(JSONObject device) { LocalDateTime dt = LocalDateTime.now(); if(dt.getDayOfWeek()== DayOfWeek.MONDAY && dt.getHour()<18){ throw new BadRequestException("每周一0点至18点为收益计算时间,暂停退出活动操作"); } - String clientType = device.getString("client_type"); - deviceSupport.findRegister(clientType); int client_id = device.getIntValue("client_id"); List clientLogs = actMonDelaySettleMapper.clientLog(client_id); if (clientLogs.isEmpty()) { @@ -148,6 +157,20 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { clientLog.put("is_valid", 0); clientLog.put("expire_time", new Date()); actMonDelaySettleMapper.update(clientLog); + JSONObject act = actAppMapper.getActDetail("1"); + clientManager.changeManualSettle(client_id,false); + saveActClientLog(act.getString("act_id"),act.getString("act_name"), client_id,2); } + + private void saveActClientLog(String act_id,String act_name, int client_id,int operation) { + JSONObject actClientLog = new JSONObject(); + actClientLog.put("act_id",act_id); + actClientLog.put("client_id",client_id); + actClientLog.put("act_name",act_name); + actClientLog.put("operation",operation); + actClientLog.put("create_time",new Date()); + actsClientsLogMapper.save(actClientLog); + + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/log/ActsClientsLogMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/log/ActsClientsLogMapper.java new file mode 100644 index 000000000..c6c285689 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/log/ActsClientsLogMapper.java @@ -0,0 +1,16 @@ +package au.com.royalpay.payment.manage.mappers.log; + +import com.alibaba.fastjson.JSONObject; + +import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper; +import cn.yixblog.support.mybatis.autosql.annotations.AutoSql; +import cn.yixblog.support.mybatis.autosql.annotations.SqlType; + +/** + * Created by yixian on 2017-04-18. + */ +@AutoMapper(tablename = "log_acts_clients",pkName = "id") +public interface ActsClientsLogMapper { + @AutoSql(type = SqlType.INSERT) + void save(JSONObject review); +} diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java index 3e0825e09..835c9893d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java @@ -231,6 +231,7 @@ public interface ClientManager { void changePaymentPage(JSONObject account, String paypad_version); + void changeManualSettle(int client_id, boolean manual_settle); void changeQRCodePaySurcharge(JSONObject account, boolean paySurcharge); diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java index 67dab6933..d82639e66 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java @@ -2607,6 +2607,14 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid clearClientCache(clientId); } + @Override + public void changeManualSettle(int client_id, boolean manual_settle) { + JSONObject record = new JSONObject(); + record.put("client_id",client_id); + record.put("manual_settle",manual_settle); + clientMapper.update(record); + } + @Override public void changeQRCodePaySurcharge(JSONObject account, boolean paySurcharge) { int clientId = account.getIntValue("client_id"); From 1b462fd59998de6c10c0d6fe19f14b953716d822 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Tue, 20 Mar 2018 16:09:37 +0800 Subject: [PATCH 2/5] update --- src/db/modify.sql | 7 +++---- .../core/impls/ActMonDelaySettleServiceImp.java | 15 +++++++-------- ...Mapper.java => ClientsOperationLogMapper.java} | 4 ++-- 3 files changed, 12 insertions(+), 14 deletions(-) rename src/main/java/au/com/royalpay/payment/manage/mappers/log/{ActsClientsLogMapper.java => ClientsOperationLogMapper.java} (78%) diff --git a/src/db/modify.sql b/src/db/modify.sql index 81b07b02c..b33903140 100644 --- a/src/db/modify.sql +++ b/src/db/modify.sql @@ -324,12 +324,11 @@ alter table act_app_list add column `msg_interval` smallint(3) DEFAULT NULL; alter table sys_clients add column `manual_settle` tinyint(1) DEFAULT 0; -create table log_acts_clients( +create table log_clients_operation( id varchar(50) not null, client_id int(11) not null, -act_id varchar(50) not null, -act_name varchar(100) NOT NULL COMMENT '活动名称', +account_id varchar(50) not null comment '操作人者 账户ID', create_time datetime not null, -operation TINYINT(3) default 0 comment '0:noop,1:参加活动,2退出活动', +operation varchar(50) DEFAULT NULL, PRIMARY key(`id`) ); \ No newline at end of file diff --git a/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java index 542a47f07..931257f48 100644 --- a/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java @@ -4,7 +4,7 @@ import au.com.royalpay.payment.manage.activities.monsettledelay.core.ActMonDelay import au.com.royalpay.payment.manage.mappers.act.ActAppMapper; import au.com.royalpay.payment.manage.mappers.act.ActMonDelaySettleMapper; import au.com.royalpay.payment.manage.mappers.act.ActMonDelaySettleRedPackMapper; -import au.com.royalpay.payment.manage.mappers.log.ActsClientsLogMapper; +import au.com.royalpay.payment.manage.mappers.log.ClientsOperationLogMapper; import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.tools.device.DeviceSupport; @@ -44,7 +44,7 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { @Resource private ActAppMapper actAppMapper; @Resource - private ActsClientsLogMapper actsClientsLogMapper; + private ClientsOperationLogMapper clientsOperationLogMapper; @Resource private ClientManager clientManager; @@ -135,7 +135,7 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { device.put("expire_time", act.getDate("expire_date")); actMonDelaySettleMapper.save(device); clientManager.changeManualSettle(client_id,true); - saveActClientLog(act.getString("act_id"),act.getString("act_name"), client_id,1); + saveActClientLog(device.getString("account_id"),client_id,"参加活动打开手动清算"); } @@ -159,18 +159,17 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { actMonDelaySettleMapper.update(clientLog); JSONObject act = actAppMapper.getActDetail("1"); clientManager.changeManualSettle(client_id,false); - saveActClientLog(act.getString("act_id"),act.getString("act_name"), client_id,2); + saveActClientLog(device.getString("account_id"), client_id,"退出活动关闭手动清算"); } - private void saveActClientLog(String act_id,String act_name, int client_id,int operation) { + private void saveActClientLog(String account_id, int client_id,String operation) { JSONObject actClientLog = new JSONObject(); - actClientLog.put("act_id",act_id); actClientLog.put("client_id",client_id); - actClientLog.put("act_name",act_name); + actClientLog.put("account_id",account_id); actClientLog.put("operation",operation); actClientLog.put("create_time",new Date()); - actsClientsLogMapper.save(actClientLog); + clientsOperationLogMapper.save(actClientLog); } } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/log/ActsClientsLogMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/log/ClientsOperationLogMapper.java similarity index 78% rename from src/main/java/au/com/royalpay/payment/manage/mappers/log/ActsClientsLogMapper.java rename to src/main/java/au/com/royalpay/payment/manage/mappers/log/ClientsOperationLogMapper.java index c6c285689..c69f68e87 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/log/ActsClientsLogMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/log/ClientsOperationLogMapper.java @@ -9,8 +9,8 @@ import cn.yixblog.support.mybatis.autosql.annotations.SqlType; /** * Created by yixian on 2017-04-18. */ -@AutoMapper(tablename = "log_acts_clients",pkName = "id") -public interface ActsClientsLogMapper { +@AutoMapper(tablename = "log_clients_operation",pkName = "id") +public interface ClientsOperationLogMapper { @AutoSql(type = SqlType.INSERT) void save(JSONObject review); } From 0a87728a9626de6e22de02198d0d2abf4e93e3b0 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Tue, 20 Mar 2018 18:09:03 +0800 Subject: [PATCH 3/5] update --- .../core/impls/ActMonDelaySettleServiceImp.java | 16 +++++++++------- src/main/resources/i18n/msg_en.properties | 5 ++++- src/main/resources/i18n/msg_zh.properties | 4 +++- .../templates/activity/mondelay/mondelay.html | 4 +++- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java index 931257f48..5b0e9fc65 100644 --- a/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/activities/monsettledelay/core/impls/ActMonDelaySettleServiceImp.java @@ -9,6 +9,7 @@ import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.tools.device.DeviceSupport; import au.com.royalpay.payment.tools.env.PlatformEnvironment; +import au.com.royalpay.payment.tools.env.RequestEnvironment; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.ForbiddenException; import au.com.royalpay.payment.tools.permission.enums.PartnerRole; @@ -19,6 +20,7 @@ import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageList; +import org.springframework.context.MessageSource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; @@ -47,11 +49,11 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { private ClientsOperationLogMapper clientsOperationLogMapper; @Resource private ClientManager clientManager; + @Resource + private MessageSource messageSource; @Override public JSONObject getActNotice(JSONObject device) { - String clientType = device.getString("client_type"); - deviceSupport.findRegister(clientType); int client_id = device.getIntValue("client_id"); BigDecimal total_redpack = actMonDelaySettleRedPackMapper.getTotalRedPack(client_id); JSONObject res = new JSONObject(); @@ -68,15 +70,14 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { if (!act.getBoolean("is_valid")) { throw new BadRequestException("Activity is not valid"); } - String clientType = device.getString("client_type"); - deviceSupport.findRegister(clientType); int client_id = device.getIntValue("client_id"); List clientLogs = actMonDelaySettleMapper.clientLog(client_id); JSONObject res = new JSONObject(); res.put("operation_pause",false); - Boolean apply = false; - if (!clientLogs.isEmpty()) { - apply = true; + Boolean apply = true; + if (clientLogs.isEmpty()) { + apply = false; + res.put("cancel_waring",messageSource.getMessage("sys.mondelay.cancel.waring", null, RequestEnvironment.getLocale())); } if (new Date().compareTo(act.getDate("active_date")) < 0) { res.put("active", false); @@ -98,6 +99,7 @@ public class ActMonDelaySettleServiceImp implements ActMonDelaySettleService { res.put("apply", apply); res.put("total_redpack", total_redpack); res.put("list", list); + return res; } diff --git a/src/main/resources/i18n/msg_en.properties b/src/main/resources/i18n/msg_en.properties index 1ea334469..88903aca8 100644 --- a/src/main/resources/i18n/msg_en.properties +++ b/src/main/resources/i18n/msg_en.properties @@ -104,4 +104,7 @@ app.label.coupons=Available Coupons sys.contract.ordinary.info=Dear merchant, your service contract with ROYALPAY has expired. In order not to affect your normal use, please contact your supervisor or use your administrator account as soon as possible for service renewal. sys.contract.ordinary.waring=Dear merchant, your service contract with ROYALPAY expires in {0} days. In order not to affect your normal use, please contact your supervisor or use your administrator account as soon as possible in order to renew your service contract. sys.contract.waring=Dear merchant, your service contract with ROYALPAY is due to expire in {0} days. In order not to affect your normal use, please see the latest service agreement for renewal. -sys.contract.info=Dear merchant, your service contract with ROYALPAY has expired. Please check the latest service agreement to renew your contract so as not to affect your normal use. \ No newline at end of file +sys.contract.info=Dear merchant, your service contract with ROYALPAY has expired. Please check the latest service agreement to renew your contract so as not to affect your normal use. + + +sys.mondelay.cancel.waring=this is mondelay cancel waring \ No newline at end of file diff --git a/src/main/resources/i18n/msg_zh.properties b/src/main/resources/i18n/msg_zh.properties index a2a041316..20964d285 100644 --- a/src/main/resources/i18n/msg_zh.properties +++ b/src/main/resources/i18n/msg_zh.properties @@ -98,4 +98,6 @@ app.label.coupons=可用优惠券 sys.contract.ordinary.info=尊敬的商户,您与ROYALPAY的服务合同已到期,为了不影响您的正常使用,请尽快联系您的主管或使用管理员账户登录以便进行服务续约 sys.contract.ordinary.waring=尊敬的商户,您与ROYALPAY的服务合同还有{0}天到期,为了不影响您的正常使用,请尽快联系您的主管或使用管理员账户登录以便进行服务续约 sys.contract.waring=尊敬的商户,您与ROYALPAY的服务合同还有{0}天到期,为了不影响您的正常使用,请查看最新服务协议进行续约。 -sys.contract.info=尊敬的商户,您与ROYALPAY的服务合同已到期,为了不影响您的正常使用,请查看最新服务协议进行续约。 \ No newline at end of file +sys.contract.info=尊敬的商户,您与ROYALPAY的服务合同已到期,为了不影响您的正常使用,请查看最新服务协议进行续约。 + +sys.mondelay.cancel.waring=商户取消活动警告 \ No newline at end of file diff --git a/src/main/resources/templates/activity/mondelay/mondelay.html b/src/main/resources/templates/activity/mondelay/mondelay.html index 6cf9c91e8..2fc2237b4 100644 --- a/src/main/resources/templates/activity/mondelay/mondelay.html +++ b/src/main/resources/templates/activity/mondelay/mondelay.html @@ -111,6 +111,8 @@