commit
763a2a9e93
@ -0,0 +1,9 @@
|
||||
package au.com.royalpay.payment.manage.dev.core;
|
||||
|
||||
/**
|
||||
* @author kira
|
||||
* @date 2018/8/2
|
||||
*/
|
||||
public interface ManualService {
|
||||
void clientPostpone();
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package au.com.royalpay.payment.manage.dev.core.impl;
|
||||
|
||||
import au.com.royalpay.payment.manage.dev.core.ManualService;
|
||||
import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper;
|
||||
import au.com.royalpay.payment.manage.mappers.system.ClientRateMapper;
|
||||
import au.com.royalpay.payment.manage.merchants.core.ClientModifySupport;
|
||||
import au.com.royalpay.payment.manage.merchants.entity.impls.SwitchPermissionModify;
|
||||
import au.com.royalpay.payment.manage.task.PostponeClientTask;
|
||||
import au.com.royalpay.payment.tools.scheduler.SynchronizedScheduler;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||
import org.apache.commons.lang3.time.DateUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author kira
|
||||
* @date 2018/8/2
|
||||
*/
|
||||
@Service
|
||||
public class ManualServiceimpl implements ManualService {
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(PostponeClientTask.class);
|
||||
@Resource
|
||||
private ClientRateMapper clientRateMapper;
|
||||
@Resource
|
||||
private ClientAccountMapper clientAccountMapper;
|
||||
@Resource
|
||||
private SynchronizedScheduler synchronizedScheduler;
|
||||
@Resource
|
||||
private ClientModifySupport clientModifySupport;
|
||||
|
||||
@Override
|
||||
public void clientPostpone() {
|
||||
logger.info("start doing client postpone");
|
||||
synchronizedScheduler.executeProcess("manage_task:postPoneClient", 120_000, () -> {
|
||||
Date now = new Date();
|
||||
Date tomorrow = DateUtils.addDays(now, 1);
|
||||
Date yearTomorrow = DateUtils.addYears(tomorrow, 1);
|
||||
String expireDate = DateFormatUtils.format(yearTomorrow, "yyyy-MM-dd");
|
||||
List<JSONObject> expiryClient = clientRateMapper.getAllExpiry(now);
|
||||
|
||||
if (CollectionUtils.isEmpty(expiryClient)) {
|
||||
return;
|
||||
}
|
||||
Map<Integer, JSONObject> expiryClients = new HashMap<>();
|
||||
expiryClient.forEach(p -> {
|
||||
expiryClients.put(p.getInteger("client_id"), p);
|
||||
});
|
||||
expiryClients.values().forEach(p -> {
|
||||
int client_id = p.getIntValue("client_id");
|
||||
List<JSONObject> adminAccounts = clientAccountMapper.listAdminAccounts(client_id);
|
||||
List<JSONObject> clientRates = clientRateMapper.maxChannelExpiryTime(client_id, null);
|
||||
JSONObject wechatRate = clientRateMapper.latestChannelCleanDays("Wechat", p.getIntValue("client_id"));
|
||||
int cleanDays = 1;
|
||||
if (wechatRate.getInteger("clean_days") != null) {
|
||||
cleanDays = wechatRate.getIntValue("clean_days");
|
||||
} else {
|
||||
cleanDays = wechatRate.getIntValue("c_clean_days");
|
||||
}
|
||||
int finalCleanDays = cleanDays;
|
||||
clientRates.forEach(o -> {
|
||||
JSONObject record = clientRateMapper.latestExpiryConfig(client_id, o.getString("rate_name"));
|
||||
record.remove("client_rate_id");
|
||||
record.put("active_time", now);
|
||||
record.put("manager_id", 0);
|
||||
record.put("expiry_time", yearTomorrow);
|
||||
record.put("create_time", now);
|
||||
record.put("update_time", now);
|
||||
record.put("clean_days", finalCleanDays);
|
||||
record.put("manager_name", "System");
|
||||
record.put("remark", "费率到期系统自动延期1年");
|
||||
clientRateMapper.saveRate(record);
|
||||
|
||||
});
|
||||
if(p.getBooleanValue("tax_in_surcharge")){
|
||||
clientModifySupport.processClientConfigModify(new SwitchPermissionModify(null,p.getString("client_moniker"),"tax_in_surcharge",false));
|
||||
}
|
||||
});
|
||||
});
|
||||
logger.info("end doing client postpone");
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package au.com.royalpay.payment.manage.dev.web;
|
||||
|
||||
import au.com.royalpay.payment.manage.dev.core.ManualService;
|
||||
import au.com.royalpay.payment.manage.permission.manager.ManagerMapping;
|
||||
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Created by yixian on 2017-01-25.
|
||||
*/
|
||||
@RestController
|
||||
@ManagerMapping(role = ManagerRole.DEVELOPER,value = "/dev/manual")
|
||||
public class ManualController {
|
||||
@Resource
|
||||
private ManualService manualService;
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET,value = "/client/postpone")
|
||||
public void clientPostpone(){
|
||||
manualService.clientPostpone();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue