fix aps kyc通知调整

master
Todking 5 years ago
parent 7de14ec9a6
commit b60707d7ac

@ -1,7 +1,6 @@
package au.com.royalpay.payment.manage.apsKYC.domain.repository; package au.com.royalpay.payment.manage.apsKYC.domain.repository;
import au.com.royalpay.payment.manage.apsKYC.domain.entity.ApsNotice; import au.com.royalpay.payment.manage.apsKYC.domain.entity.ApsNotice;
import au.com.royalpay.payment.manage.apsKYC.web.command.AddNoticeCommand;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList; import com.github.miemiedev.mybatis.paginator.domain.PageList;
@ -13,7 +12,7 @@ public interface ApsNoticeRepository {
ApsNotice saveApsNotice(ApsNotice apsNotice); ApsNotice saveApsNotice(ApsNotice apsNotice);
void updateApsNotice(ApsNotice apsNotice); void updateApsNotice(JSONObject apsNotice);
ApsNotice getApsNoticesById(String id); ApsNotice getApsNoticesById(String id);

@ -11,9 +11,9 @@ public interface ApsNoticeService {
void saveApsNotice(JSONObject manager, AddNoticeCommand addNoticeCommand); void saveApsNotice(JSONObject manager, AddNoticeCommand addNoticeCommand);
void stopApsNotice(JSONObject manager, String id);
void updateApsNoticeClient(JSONObject manager, ApsNoticeClient apsNoticeClient); void updateApsNoticeClient(JSONObject manager, ApsNoticeClient apsNoticeClient);
AddNoticeCommand getApsNotice(String id); AddNoticeCommand getApsNotice(String id);
void updateApsNotice(JSONObject manager, JSONObject apsNotice);
} }

@ -2,9 +2,12 @@ package au.com.royalpay.payment.manage.apsKYC.domain.service.Impl;
import au.com.royalpay.payment.manage.apsKYC.domain.repository.ApsNoticeClientRepository; import au.com.royalpay.payment.manage.apsKYC.domain.repository.ApsNoticeClientRepository;
import au.com.royalpay.payment.manage.apsKYC.domain.service.ApsNoticeClientsService; import au.com.royalpay.payment.manage.apsKYC.domain.service.ApsNoticeClientsService;
import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper;
import au.com.royalpay.payment.manage.mappers.system.ManagerMapper;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList; import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -14,8 +17,33 @@ public class ApsNoticeClientsServiceImpl implements ApsNoticeClientsService {
@Autowired @Autowired
private ApsNoticeClientRepository apsNoticeClientRepository; private ApsNoticeClientRepository apsNoticeClientRepository;
@Autowired
private ManagerMapper managerMapper;
@Autowired
private ClientAccountMapper clientAccountMapper;
@Override @Override
public PageList<JSONObject> getApsNoticeClients(String id, PageBounds pageBounds) { public PageList<JSONObject> getApsNoticeClients(String id, PageBounds pageBounds) {
return apsNoticeClientRepository.getApsNoticeClients(id, pageBounds); PageList<JSONObject> apsNoticeClients = apsNoticeClientRepository.getApsNoticeClients(id, pageBounds);
for (JSONObject apsNoticeClient : apsNoticeClients) {
if (apsNoticeClient.containsKey("modifier") && StringUtils.isNotBlank(apsNoticeClient.getString("modifier"))) {
JSONObject modifier = managerMapper.findDetail(apsNoticeClient.getString("modifier"));
if (modifier != null) {
apsNoticeClient.put("modifier_name", modifier.getString("username"));
}
}
if (apsNoticeClient.containsKey("user_id") && StringUtils.isNotBlank(apsNoticeClient.getString("user_id"))) {
if (apsNoticeClient.getString("user_id").equals("0")) {
apsNoticeClient.put("user_name", "未知");
} else {
JSONObject user = clientAccountMapper.findDetail(apsNoticeClient.getString("user_id"));
if (user != null) {
apsNoticeClient.put("user_name", user.getString("username"));
}
}
}
}
return apsNoticeClients;
} }
} }

@ -9,6 +9,7 @@ import au.com.royalpay.payment.manage.apsKYC.web.command.AddNoticeCommand;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList; import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -36,7 +37,7 @@ public class ApsNoticeServiceImpl implements ApsNoticeService {
ApsNotice saveApsNotice = addNoticeCommand.saveApsNotice(addNoticeCommand, manager); ApsNotice saveApsNotice = addNoticeCommand.saveApsNotice(addNoticeCommand, manager);
ApsNotice apsNotice = apsNoticeRepository.saveApsNotice(saveApsNotice); ApsNotice apsNotice = apsNoticeRepository.saveApsNotice(saveApsNotice);
for (String partnerCode : addNoticeCommand.getPartnerCodes()) { for (String partnerCode : addNoticeCommand.getPartnerCodes()) {
if (partnerCode != "" || partnerCode != null) { if (StringUtils.isNotBlank(partnerCode)) {
apsNoticeClientRepository.updateApsNoticeClientByPartnerCode(new Date(), manager.getString("manager_id"), partnerCode); apsNoticeClientRepository.updateApsNoticeClientByPartnerCode(new Date(), manager.getString("manager_id"), partnerCode);
ApsNoticeClient apsNoticeClient = addNoticeCommand.saveApsNoticeClient(partnerCode, manager, apsNotice.getId()); ApsNoticeClient apsNoticeClient = addNoticeCommand.saveApsNoticeClient(partnerCode, manager, apsNotice.getId());
apsNoticeClientRepository.saveApsNoticeClient(apsNoticeClient); apsNoticeClientRepository.saveApsNoticeClient(apsNoticeClient);
@ -44,15 +45,6 @@ public class ApsNoticeServiceImpl implements ApsNoticeService {
} }
} }
@Override
public void stopApsNotice(JSONObject manager, String id) {
ApsNotice apsNotice = apsNoticeRepository.getApsNoticesById(id);
apsNotice.setStatus(1)
.setModifier(manager.getString("manager_id"))
.setModifyTime(new Date());
apsNoticeRepository.updateApsNotice(apsNotice);
}
@Override @Override
public void updateApsNoticeClient(JSONObject manager, ApsNoticeClient apsNoticeClient) { public void updateApsNoticeClient(JSONObject manager, ApsNoticeClient apsNoticeClient) {
ApsNoticeClient apsNoticeClientById = apsNoticeClientRepository.getApsNoticeClientById(apsNoticeClient.getId()); ApsNoticeClient apsNoticeClientById = apsNoticeClientRepository.getApsNoticeClientById(apsNoticeClient.getId());
@ -81,4 +73,11 @@ public class ApsNoticeServiceImpl implements ApsNoticeService {
addNoticeCommand.setPartnerCodes(codes.toArray(new String[codes.size()])); addNoticeCommand.setPartnerCodes(codes.toArray(new String[codes.size()]));
return addNoticeCommand; return addNoticeCommand;
} }
@Override
public void updateApsNotice(JSONObject manager, JSONObject apsNotice) {
apsNotice.put("modifier", manager.getString("manager_id"));
apsNotice.put("modify_time", new Date());
apsNoticeRepository.updateApsNotice(apsNotice);
}
} }

@ -29,7 +29,7 @@ public class ApsNoticeRepositoryImpl implements ApsNoticeRepository {
} }
@Override @Override
public void updateApsNotice(ApsNotice apsNotice) { public void updateApsNotice(JSONObject apsNotice) {
mapper.updateApsNotice(apsNotice); mapper.updateApsNotice(apsNotice);
} }

@ -52,6 +52,17 @@ public class RestApsKYCController {
return apsNoticeService.getApsNotice(id); return apsNoticeService.getApsNotice(id);
} }
/**
*
*
* @param manager
* @param apsNotice
*/
@ManagerMapping(value = "/notice", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR, ManagerRole.SALES_MANAGER})
public void updateApsNotice(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @RequestBody JSONObject apsNotice) {
apsNoticeService.updateApsNotice(manager, apsNotice);
}
/** /**
* *
* *
@ -62,7 +73,7 @@ public class RestApsKYCController {
*/ */
@ManagerMapping(value = "/notice/clients", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.SALES_MANAGER}) @ManagerMapping(value = "/notice/clients", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.SALES_MANAGER})
public JSONObject getApsNoticeClients(@RequestParam(value = "page", defaultValue = "1") int page, public JSONObject getApsNoticeClients(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize, @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
@RequestParam String id) { @RequestParam String id) {
PageBounds pageBounds = new PageBounds(page, pageSize); PageBounds pageBounds = new PageBounds(page, pageSize);
PageList<JSONObject> apply = apsNoticeClientsService.getApsNoticeClients(id, pageBounds); PageList<JSONObject> apply = apsNoticeClientsService.getApsNoticeClients(id, pageBounds);
@ -80,17 +91,6 @@ public class RestApsKYCController {
apsNoticeService.saveApsNotice(manager, addNoticeCommand); apsNoticeService.saveApsNotice(manager, addNoticeCommand);
} }
/**
*
*
* @param manager
* @param item
*/
@ManagerMapping(value = "/notice", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR, ManagerRole.SALES_MANAGER})
public void stopApsNotice(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @RequestBody JSONObject item) {
apsNoticeService.stopApsNotice(manager, item.getString("id"));
}
/** /**
* *
* *

@ -21,7 +21,7 @@ public interface ApsNoticeMapper {
ApsNotice getApsNoticesById(String id); ApsNotice getApsNoticesById(String id);
@AutoSql(SqlType.UPDATE) @AutoSql(SqlType.UPDATE)
void updateApsNotice(ApsNotice apsNotice); void updateApsNotice(JSONObject apsNotice);
List<JSONObject> getApsNotice(String id); List<JSONObject> getApsNotice(String id);
} }

@ -7169,7 +7169,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
@Override @Override
public void updateApsKycClient(JSONObject account, JSONObject item) { public void updateApsKycClient(JSONObject account, JSONObject item) {
ApsNoticeClient apsNoticeClientById = apsNoticeClientMapper.getApsNoticeClientById(item.getString("id")); ApsNoticeClient apsNoticeClientById = apsNoticeClientMapper.getApsNoticeClientById(item.getString("id"));
if (item.getIntValue("status") == 1 && apsNoticeClientById.getReadTime() == null) { if (apsNoticeClientById.getReadTime() == null) {
item.put("read_time", new Date()); item.put("read_time", new Date());
} }
item.put("status_time", new Date()); item.put("status_time", new Date());

@ -34,6 +34,7 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) {
}).then(function () { }).then(function () {
var item = {}; var item = {};
item.id = id; item.id = id;
item.status = 1;
$http.put('/aps/kyc/notice', item).then(function () { $http.put('/aps/kyc/notice', item).then(function () {
that.loadApsNotice(); that.loadApsNotice();
}); });
@ -85,10 +86,49 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) {
}], }],
}); });
}; };
that.updateNotice = function (id) {
var params = angular.copy(that.params);
params.id = id;
$uibModal
.open({
templateUrl: '/static/apsKYC/templates/add_aps_notice.html',
backdrop: false,
size: 'lg',
resolve: {
noticeId: function () {
return id;
}
},
controller: ['$scope', '$http', 'noticeId', function ($scope, $http, noticeId) {
$http.get('/aps/kyc/notice', {params: params}).then(function (resp) {
$scope.saveNoticeData = resp.data;
$scope.isUpdate = true;
});
$scope.saveNotice = function (form) {
if (form.$invalid) {
angular.forEach(form, function (item, key) {
if (key.indexOf('$') < 0) {
item.$dirty = true;
}
});
return;
}
var item = {};
item.id = noticeId;
item.title = $scope.saveNoticeData.title
item.content = $scope.saveNoticeData.content
$http.put('/aps/kyc/notice', item).then(function () {
alert("修改成功");
$scope.$close();
});
};
}],
});
};
that.setHandle = function (noticeId, id) { that.setHandle = function (noticeId, id) {
commonDialog.confirm({ commonDialog.confirm({
title: 'Confirm', title: 'Confirm',
content: '你确定已经帮助商户支持Alipay+支付?' content: '你确定已帮商户开通A+支付?'
}).then(function () { }).then(function () {
that.item = {}; that.item = {};
that.item.id = id; that.item.id = id;
@ -116,6 +156,7 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) {
}]); }]);
app.controller('addApsNoticeCtrl', ['$scope', '$http', function ($scope, $http) { app.controller('addApsNoticeCtrl', ['$scope', '$http', function ($scope, $http) {
var that = $scope var that = $scope
$scope.isUpdate = false;
that.saveNoticeData = {} that.saveNoticeData = {}
that.saveNotice = function (form) { that.saveNotice = function (form) {
if (form.$invalid) { if (form.$invalid) {

@ -15,6 +15,8 @@
rows="5" rows="5"
style="width: 100%;resize:none;" style="width: 100%;resize:none;"
required required
ng-readonly="isUpdate"
ng-disabled="isUpdate"
name="partner_code" name="partner_code"
placeholder="请输入商户编码(逗号隔开)" placeholder="请输入商户编码(逗号隔开)"
ng-model="saveNoticeData.partnerCodes"> ng-model="saveNoticeData.partnerCodes">
@ -94,6 +96,11 @@
border-radius: 4px; border-radius: 4px;
width: 100% !important; width: 100% !important;
} }
.edui-default .edui-editor-iframeholder {
width: 100% !important;
position: relative;
}
</style> </style>

@ -32,14 +32,13 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="(index,item) in apply"> <tr ng-repeat="(index,item) in apply" ng-click="getNoticeClients(item.title,item.id,1,index)">
<td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">{{ item.createTime }} <td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">{{ item.createTime }}
</td> </td>
<td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">{{ item.title }}</td> <td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">{{ item.title }}</td>
<td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">{{ item.clientsNum }} <td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">
<a href="" type="button"> <a href="" type="button">
<i class="fa fa-bars" aria-hidden="true" {{ item.clientsNum }}
ng-click="getNoticeClients(item.title,item.id,1,index)"></i>
</a> </a>
</td> </td>
<td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">{{ item.noRead }}</td> <td ng-style="{'background-color':selectIndex==index?'#f06101 ':''}">{{ item.noRead }}</td>
@ -56,7 +55,11 @@
</a> </a>
<span>&nbsp;|&nbsp; </span> <span>&nbsp;|&nbsp; </span>
<a href="" type="button"> <a href="" type="button">
<i class="fa fa-file-text-o" ng-click="catNotice(item.id)">&nbsp;详情</i> <i class="fa fa-file-text-o" ng-click="updateNotice(item.id)">&nbsp;编辑</i>
</a>
<span>&nbsp;|&nbsp; </span>
<a href="" type="button">
<i class="fa fa-eye" ng-click="catNotice(item.id)">&nbsp;预览</i>
</a> </a>
</td> </td>
</tr> </tr>
@ -93,8 +96,8 @@
<thead> <thead>
<tr> <tr>
<th>商户名称</th> <th>商户名称</th>
<th style="text-align: center">用户状态</th> <th style="text-align: center">商户操作状态</th>
<th style="text-align: center">运营操作</th> <th style="text-align: center">运营操作状态</th>
<th style="text-align: center">操作</th> <th style="text-align: center">操作</th>
</tr> </tr>
</thead> </thead>
@ -103,20 +106,27 @@
<td>{{item.partner_code}}</td> <td>{{item.partner_code}}</td>
<td style="text-align: center"> <td style="text-align: center">
<span ng-if="item.status == 0" style="color: black">未读</span> <span ng-if="item.status == 0" style="color: black">未读</span>
<span ng-if="item.status == 1" style="color: #c09d03">已读({{ item.read_time }})</span> <span ng-if="item.status == 1" style="color: #c09d03">已读({{item.user_name}} {{ item.read_time
<span ng-if="item.status == 2" style="color: #00a65a">同意({{ item.status_time }})</span> }})</span>
<span ng-if="item.status == 3" style="color: red">拒绝({{ item.status_time }})</span> <span ng-if="item.status == 2" style="color: #00a65a">同意({{item.user_name}} {{ item.status_time
}})</span>
<span ng-if="item.status == 3" style="color: red">拒绝({{item.user_name}} {{ item.status_time
}})</span>
</td> </td>
<td style="text-align: center"> <td style="text-align: center">
<a href="" type="button"><span ng-if="item.handle == 0">未处理 | <i class="fa fa-check" <a href="" type="button"><span ng-if="item.handle == 0">未处理</span></a>
aria-hidden="true" <span ng-if="item.handle == 1"
ng-click="setHandle(item.notice_id,item.id)"></i></span></a> style="color: #00a65a">已处理({{ item.modifier_name }} {{ item.modify_time }})</span>
<span ng-if="item.handle == 1" style="color: #00a65a">已处理({{ item.modify_time }})</span>
</td> </td>
<td style="text-align: center"> <td style="text-align: center">
<a href="" type="button"> <a href="" type="button" ng-if="item.is_valid == 0">
<i ng-if="item.is_valid == 0" class="fa fa-times" style="color: red" <i class="fa fa-times" style="color: red"
ng-click="stopNoticeClient(item.notice_id,item.id)">禁用</i> ng-click="stopNoticeClient(item.notice_id,item.id)">禁用</i>
<span ng-if="item.status == 2">&nbsp;|&nbsp; </span>
<i class="fa fa-check"
aria-hidden="true"
ng-if="item.status == 2"
ng-click="setHandle(item.notice_id,item.id)">处理</i>
</a> </a>
<i ng-if="item.is_valid == 1" readonly class="fa fa-times" <i ng-if="item.is_valid == 1" readonly class="fa fa-times"
style="color: #727272">已禁用</i> style="color: #727272">已禁用</i>

@ -17,8 +17,11 @@
<br/> <br/>
<br/> <br/>
<div> <div>
<hr>
<div>已通知商户:</div> <div>已通知商户:</div>
<textarea <textarea
readonly
disabled
rows="3" rows="3"
style="width: 100%;resize:none;" style="width: 100%;resize:none;"
ng-model="noticeDetail.partnerCodes"></textarea> ng-model="noticeDetail.partnerCodes"></textarea>

@ -21,7 +21,8 @@
<div class="modal-footer"> <div class="modal-footer">
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<div> <div>
<button style="text-align: right" class="btn btn-warning" ng-click="updateApsKyc(1)" type="button">忽略</button> <button style="text-align: right" class="btn btn-warning" ng-click="updateApsKyc(1)" type="button">关闭
</button>
</div> </div>
<div> <div>
<button class="btn btn-danger" ng-click="updateApsKyc(3)" type="button">拒绝</button> <button class="btn btn-danger" ng-click="updateApsKyc(3)" type="button">拒绝</button>

Loading…
Cancel
Save