Merge pull request 'v1.0.34' (#46) from dev into master
Reviewed-on: #46
This commit was merged in pull request #46.
This commit is contained in:
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<groupId>com.imyeyu.timiserverapi</groupId>
|
<groupId>com.imyeyu.timiserverapi</groupId>
|
||||||
<artifactId>TimiServerAPI</artifactId>
|
<artifactId>TimiServerAPI</artifactId>
|
||||||
<version>1.0.33</version>
|
<version>1.0.34</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<name>TimiServerAPI</name>
|
<name>TimiServerAPI</name>
|
||||||
<description>imyeyu.com API</description>
|
<description>imyeyu.com API</description>
|
||||||
|
|||||||
+29
-2
@@ -1,8 +1,12 @@
|
|||||||
package com.imyeyu.api.modules.gao.controller;
|
package com.imyeyu.api.modules.gao.controller;
|
||||||
|
|
||||||
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
|
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||||
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission;
|
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission;
|
||||||
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
|
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
|
||||||
|
import com.imyeyu.api.modules.gao.entity.GaoCustomerConsumptionRecord;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoCustomerConsumptionRecordService;
|
import com.imyeyu.api.modules.gao.service.GaoCustomerConsumptionRecordService;
|
||||||
|
import com.imyeyu.api.modules.gao.service.GaoCustomerService;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoStoreScopeService;
|
import com.imyeyu.api.modules.gao.service.GaoStoreScopeService;
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPage;
|
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPage;
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPageResult;
|
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPageResult;
|
||||||
@@ -15,6 +19,9 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/// GAO 客户消费事实接口
|
/// GAO 客户消费事实接口
|
||||||
///
|
///
|
||||||
/// @author Codex
|
/// @author Codex
|
||||||
@@ -24,8 +31,10 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/gao/customer/consumption-record")
|
@RequestMapping("/gao/customer/consumption-record")
|
||||||
public class GaoCustomerConsumptionRecordController {
|
public class GaoCustomerConsumptionRecordController {
|
||||||
|
|
||||||
private final GaoCustomerConsumptionRecordService service;
|
private final AttachmentService attachmentService;
|
||||||
|
private final GaoCustomerService customerService;
|
||||||
private final GaoStoreScopeService storeScopeService;
|
private final GaoStoreScopeService storeScopeService;
|
||||||
|
private final GaoCustomerConsumptionRecordService service;
|
||||||
|
|
||||||
@AOPLog
|
@AOPLog
|
||||||
@RequestRateLimit
|
@RequestRateLimit
|
||||||
@@ -34,6 +43,24 @@ public class GaoCustomerConsumptionRecordController {
|
|||||||
public GaoCustomerConsumptionRecordPageResult list(@RequestBody GaoCustomerConsumptionRecordPage page) {
|
public GaoCustomerConsumptionRecordPageResult list(@RequestBody GaoCustomerConsumptionRecordPage page) {
|
||||||
TimiException.required(page, "not found consumption record page");
|
TimiException.required(page, "not found consumption record page");
|
||||||
page.setStoreId(storeScopeService.resolveStoreId(page.getStoreId()));
|
page.setStoreId(storeScopeService.resolveStoreId(page.getStoreId()));
|
||||||
return service.pageByQuery(page);
|
|
||||||
|
GaoCustomerConsumptionRecordPageResult result = service.pageByQuery(page);
|
||||||
|
List<String> customerIdList = result.getList()
|
||||||
|
.stream()
|
||||||
|
.map(GaoCustomerConsumptionRecord::getCustomerId)
|
||||||
|
.filter(customerId -> customerId != null && !customerId.isBlank())
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
var customerMap = customerService.mapByIdList(customerIdList);
|
||||||
|
Map<String, List<Attachment>> attachmentMap = attachmentService.mapByBizIdList(Attachment.BizType.GAO_CUSTOMER, customerIdList);
|
||||||
|
for (GaoCustomerConsumptionRecord record : result.getList()) {
|
||||||
|
var customer = customerMap.get(record.getCustomerId());
|
||||||
|
if (customer == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
customer.setAttachmentList(attachmentMap.getOrDefault(customer.getId(), List.of()));
|
||||||
|
record.setCustomer(customer);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.imyeyu.api.modules.gao.vo.GaoFundRecordPage;
|
|||||||
import com.imyeyu.api.modules.gao.vo.GaoFundRevokeRequest;
|
import com.imyeyu.api.modules.gao.vo.GaoFundRevokeRequest;
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoOrderPaymentRevokeRequest;
|
import com.imyeyu.api.modules.gao.vo.GaoOrderPaymentRevokeRequest;
|
||||||
import com.imyeyu.api.modules.user.entity.User;
|
import com.imyeyu.api.modules.user.entity.User;
|
||||||
|
import com.imyeyu.api.modules.user.service.UserLoginService;
|
||||||
import com.imyeyu.api.modules.user.service.UserService;
|
import com.imyeyu.api.modules.user.service.UserService;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
@@ -42,6 +43,7 @@ public class GaoFundRecordController {
|
|||||||
private final GaoStoreScopeService storeScopeService;
|
private final GaoStoreScopeService storeScopeService;
|
||||||
private final AttachmentService attachmentService;
|
private final AttachmentService attachmentService;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
private final UserLoginService userLoginService;
|
||||||
|
|
||||||
@AOPLog
|
@AOPLog
|
||||||
@RequestRateLimit
|
@RequestRateLimit
|
||||||
@@ -66,6 +68,33 @@ public class GaoFundRecordController {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@RequireGaoPermission(GaoPermissionCode.FUND_RECEIVE_CREATE)
|
||||||
|
@PostMapping("/my-receive/list")
|
||||||
|
public PageResult<GaoFundRecord> listMyReceive(@RequestBody GaoFundRecordPage page) {
|
||||||
|
TimiException.required(page, "not found page");
|
||||||
|
page.setStoreId(storeScopeService.resolveStoreId(page.getStoreId()));
|
||||||
|
page.setOperatorUserId(userLoginService.getRequireLoginUserId());
|
||||||
|
page.setOperationType(GaoFundRecord.OperationType.RECEIVE);
|
||||||
|
PageResult<GaoFundRecord> result = service.pageByQuery(page);
|
||||||
|
fillTransient(result.getList());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@RequireGaoPermission(GaoPermissionCode.FUND_RECEIVE_CREATE)
|
||||||
|
@PostMapping("/my-receive/detail")
|
||||||
|
public GaoFundRecord detailMyReceive(@RequestParam String id) {
|
||||||
|
GaoFundRecord result = service.detail(id);
|
||||||
|
TimiException.requiredTrue(result.getOperationType() == GaoFundRecord.OperationType.RECEIVE, "not found fund receive record");
|
||||||
|
TimiException.requiredTrue(userLoginService.getRequireLoginUserId().equals(result.getOperatorUserId()), "只能读取自己提交的收款");
|
||||||
|
storeScopeService.checkStoreId(result.getStoreId());
|
||||||
|
fillTransient(List.of(result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@AOPLog
|
@AOPLog
|
||||||
@RequestRateLimit
|
@RequestRateLimit
|
||||||
@RequireGaoPermission(GaoPermissionCode.FUND_REVOKE)
|
@RequireGaoPermission(GaoPermissionCode.FUND_REVOKE)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.imyeyu.api.modules.gao.controller;
|
|||||||
|
|
||||||
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission;
|
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission;
|
||||||
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
|
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
|
||||||
|
import com.imyeyu.api.bean.PermissionMatchMode;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoFundRecord;
|
import com.imyeyu.api.modules.gao.entity.GaoFundRecord;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoSalesOrder;
|
import com.imyeyu.api.modules.gao.entity.GaoSalesOrder;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoOrderPaymentService;
|
import com.imyeyu.api.modules.gao.service.GaoOrderPaymentService;
|
||||||
@@ -112,7 +113,7 @@ public class GaoSalesOrderController {
|
|||||||
|
|
||||||
@AOPLog
|
@AOPLog
|
||||||
@RequestRateLimit
|
@RequestRateLimit
|
||||||
@RequireGaoPermission(GaoPermissionCode.FUND_RECEIVE_CREATE)
|
@RequireGaoPermission(value = {GaoPermissionCode.FUND_RECEIVE_CREATE, GaoPermissionCode.FUND_RECORD_READ}, mode = PermissionMatchMode.ANY)
|
||||||
@PostMapping("/payment/cancel")
|
@PostMapping("/payment/cancel")
|
||||||
public GaoFundRecord cancelPayment(@RequestBody GaoOrderPaymentActionRequest request) {
|
public GaoFundRecord cancelPayment(@RequestBody GaoOrderPaymentActionRequest request) {
|
||||||
return paymentService.cancel(request);
|
return paymentService.cancel(request);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public interface GaoOrderPaymentService {
|
|||||||
/// 拒绝收款
|
/// 拒绝收款
|
||||||
GaoFundRecord reject(GaoOrderPaymentActionRequest request);
|
GaoFundRecord reject(GaoOrderPaymentActionRequest request);
|
||||||
|
|
||||||
/// 撤销自己提交的收款
|
/// 撤销待核销收款
|
||||||
GaoFundRecord cancel(GaoOrderPaymentActionRequest request);
|
GaoFundRecord cancel(GaoOrderPaymentActionRequest request);
|
||||||
|
|
||||||
/// 登记退款
|
/// 登记退款
|
||||||
|
|||||||
+4
-7
@@ -1,11 +1,12 @@
|
|||||||
package com.imyeyu.api.modules.gao.service.implement;
|
package com.imyeyu.api.modules.gao.service.implement;
|
||||||
|
|
||||||
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
||||||
|
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoCustomerConsumptionRecord;
|
import com.imyeyu.api.modules.gao.entity.GaoCustomerConsumptionRecord;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoSalesOrder;
|
import com.imyeyu.api.modules.gao.entity.GaoSalesOrder;
|
||||||
import com.imyeyu.api.modules.gao.mapper.GaoCustomerConsumptionRecordMapper;
|
import com.imyeyu.api.modules.gao.mapper.GaoCustomerConsumptionRecordMapper;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoCustomerService;
|
|
||||||
import com.imyeyu.api.modules.gao.service.GaoCustomerConsumptionRecordService;
|
import com.imyeyu.api.modules.gao.service.GaoCustomerConsumptionRecordService;
|
||||||
|
import com.imyeyu.api.modules.gao.service.GaoCustomerService;
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPage;
|
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPage;
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPageResult;
|
import com.imyeyu.api.modules.gao.vo.GaoCustomerConsumptionRecordPageResult;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
@@ -28,6 +29,7 @@ public class GaoCustomerConsumptionRecordServiceImplement extends AbstractEntity
|
|||||||
|
|
||||||
private final GaoCustomerConsumptionRecordMapper mapper;
|
private final GaoCustomerConsumptionRecordMapper mapper;
|
||||||
private final GaoCustomerService customerService;
|
private final GaoCustomerService customerService;
|
||||||
|
private final AttachmentService attachmentService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BaseMapper<GaoCustomerConsumptionRecord, String> mapper() {
|
protected BaseMapper<GaoCustomerConsumptionRecord, String> mapper() {
|
||||||
@@ -40,12 +42,7 @@ public class GaoCustomerConsumptionRecordServiceImplement extends AbstractEntity
|
|||||||
GaoCustomerConsumptionRecordPageResult result = new GaoCustomerConsumptionRecordPageResult();
|
GaoCustomerConsumptionRecordPageResult result = new GaoCustomerConsumptionRecordPageResult();
|
||||||
result.setTotal(mapper.countByQuery(page));
|
result.setTotal(mapper.countByQuery(page));
|
||||||
result.setAmountTotal(mapper.sumAmountByPage(page));
|
result.setAmountTotal(mapper.sumAmountByPage(page));
|
||||||
List<GaoCustomerConsumptionRecord> list = mapper.selectByQuery(page);
|
result.setList(mapper.selectByQuery(page));
|
||||||
result.setList(list);
|
|
||||||
var customerMap = customerService.mapByIdList(list.stream().map(GaoCustomerConsumptionRecord::getCustomerId).toList());
|
|
||||||
for (GaoCustomerConsumptionRecord record : list) {
|
|
||||||
record.setCustomer(customerMap.get(record.getCustomerId()));
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-1
@@ -1,10 +1,12 @@
|
|||||||
package com.imyeyu.api.modules.gao.service.implement;
|
package com.imyeyu.api.modules.gao.service.implement;
|
||||||
|
|
||||||
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
||||||
|
import com.imyeyu.api.bean.ModuleCode;
|
||||||
import com.imyeyu.api.modules.common.entity.Attachment;
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
import com.imyeyu.api.modules.common.service.AttachmentService;
|
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoFundRecord;
|
import com.imyeyu.api.modules.gao.entity.GaoFundRecord;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoSalesOrder;
|
import com.imyeyu.api.modules.gao.entity.GaoSalesOrder;
|
||||||
|
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoFundRecordService;
|
import com.imyeyu.api.modules.gao.service.GaoFundRecordService;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoOrderPaymentService;
|
import com.imyeyu.api.modules.gao.service.GaoOrderPaymentService;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoPointTriggerService;
|
import com.imyeyu.api.modules.gao.service.GaoPointTriggerService;
|
||||||
@@ -17,6 +19,7 @@ import com.imyeyu.api.modules.gao.vo.GaoOrderPaymentRevokeRequest;
|
|||||||
import com.imyeyu.api.modules.system.entity.Logger;
|
import com.imyeyu.api.modules.system.entity.Logger;
|
||||||
import com.imyeyu.api.modules.system.service.LoggerService;
|
import com.imyeyu.api.modules.system.service.LoggerService;
|
||||||
import com.imyeyu.api.modules.user.service.UserLoginService;
|
import com.imyeyu.api.modules.user.service.UserLoginService;
|
||||||
|
import com.imyeyu.api.modules.user.service.PermissionChecker;
|
||||||
import com.imyeyu.java.TimiJava;
|
import com.imyeyu.java.TimiJava;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.spring.service.AbstractEntityService;
|
import com.imyeyu.spring.service.AbstractEntityService;
|
||||||
@@ -40,6 +43,7 @@ public class GaoOrderPaymentServiceImplement implements GaoOrderPaymentService {
|
|||||||
private final GaoPointTriggerService pointTriggerService;
|
private final GaoPointTriggerService pointTriggerService;
|
||||||
private final AttachmentService attachmentService;
|
private final AttachmentService attachmentService;
|
||||||
private final UserLoginService userLoginService;
|
private final UserLoginService userLoginService;
|
||||||
|
private final PermissionChecker permissionChecker;
|
||||||
private final LoggerService loggerService;
|
private final LoggerService loggerService;
|
||||||
|
|
||||||
@Transactional(TimiServerDBConfig.ROLLBACKER)
|
@Transactional(TimiServerDBConfig.ROLLBACKER)
|
||||||
@@ -110,7 +114,8 @@ public class GaoOrderPaymentServiceImplement implements GaoOrderPaymentService {
|
|||||||
@Transactional(TimiServerDBConfig.ROLLBACKER)
|
@Transactional(TimiServerDBConfig.ROLLBACKER)
|
||||||
@Override
|
@Override
|
||||||
public GaoFundRecord cancel(GaoOrderPaymentActionRequest request) {
|
public GaoFundRecord cancel(GaoOrderPaymentActionRequest request) {
|
||||||
return releasePending(request, GaoFundRecord.Status.CANCELLED, true);
|
boolean onlyOperator = !permissionChecker.hasAny(ModuleCode.GAO, GaoPermissionCode.FUND_RECORD_READ.getValue());
|
||||||
|
return releasePending(request, GaoFundRecord.Status.CANCELLED, onlyOperator);
|
||||||
}
|
}
|
||||||
|
|
||||||
private GaoFundRecord releasePending(GaoOrderPaymentActionRequest request, GaoFundRecord.Status targetStatus, boolean onlyOperator) {
|
private GaoFundRecord releasePending(GaoOrderPaymentActionRequest request, GaoFundRecord.Status targetStatus, boolean onlyOperator) {
|
||||||
|
|||||||
@@ -39,4 +39,7 @@ public class GaoFundRecordPage extends BasePage {
|
|||||||
|
|
||||||
/// 操作结束时间
|
/// 操作结束时间
|
||||||
private Long endAt;
|
private Long endAt;
|
||||||
|
|
||||||
|
/// 操作用户 ID,仅限服务端设置的数据范围条件
|
||||||
|
private String operatorUserId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,7 @@
|
|||||||
<if test="status != null">AND f.`status` = #{status}</if>
|
<if test="status != null">AND f.`status` = #{status}</if>
|
||||||
<if test="beginAt != null">AND f.`occurred_at` >= #{beginAt}</if>
|
<if test="beginAt != null">AND f.`occurred_at` >= #{beginAt}</if>
|
||||||
<if test="endAt != null">AND f.`occurred_at` <= #{endAt}</if>
|
<if test="endAt != null">AND f.`occurred_at` <= #{endAt}</if>
|
||||||
|
<if test="operatorUserId != null and operatorUserId != ''">AND f.`operator_user_id` = #{operatorUserId}</if>
|
||||||
</sql>
|
</sql>
|
||||||
<select id="countByQuery" resultType="long">
|
<select id="countByQuery" resultType="long">
|
||||||
SELECT COUNT(1) FROM `gao_fund_record` f WHERE <include refid="queryWhere"/>
|
SELECT COUNT(1) FROM `gao_fund_record` f WHERE <include refid="queryWhere"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user