Compare commits
46
Commits
e59dc363f4
...
v1.0.30
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
944de228f7 | ||
|
|
a81c8476e7 | ||
|
|
25c9cd4dfc | ||
|
|
e7cf1a72e3 | ||
|
|
882cd226ec | ||
|
|
eec665109e | ||
|
|
f6a2f5a6f5 | ||
|
|
9ba610de86 | ||
|
|
feb4d7af66 | ||
|
|
d75ab1ed5f | ||
|
|
a501eb7443 | ||
|
|
19941d9480 | ||
|
|
cd3d522d4f | ||
|
|
181c5078e9 | ||
|
|
e97f46e6b4 | ||
|
|
c0f89deb83 | ||
|
|
ce695463d3 | ||
|
|
83c683d473 | ||
|
|
9555474b0b | ||
|
|
a150f9e017 | ||
|
|
ecd2fa1c33 | ||
|
|
e3236d262d | ||
|
|
c8e2e16ba5 | ||
|
|
99b44faf09 | ||
|
|
b3e3cbf84b | ||
|
|
0aee11d824 | ||
|
|
fcf358a768 | ||
|
|
619369104c | ||
|
|
4f1408b9d0 | ||
|
|
029eea70cc | ||
|
|
22b1e65385 | ||
|
|
2170c48763 | ||
|
|
c2d1c48aae | ||
|
|
e14958c643 | ||
|
|
da288338cd | ||
|
|
ea430f2468 | ||
|
|
f76f79744a | ||
|
|
19daaff907 | ||
|
|
db94d8f932 | ||
|
|
53618fe362 | ||
|
|
523edffc4e | ||
|
|
c7ddb1a8b0 | ||
|
|
45c9fc814a | ||
|
|
407dc13ac4 | ||
|
|
0c06bf16c2 | ||
|
|
1db39e77d3 |
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<groupId>com.imyeyu.timiserverapi</groupId>
|
<groupId>com.imyeyu.timiserverapi</groupId>
|
||||||
<artifactId>TimiServerAPI</artifactId>
|
<artifactId>TimiServerAPI</artifactId>
|
||||||
<version>1.0.29</version>
|
<version>1.0.30</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<name>TimiServerAPI</name>
|
<name>TimiServerAPI</name>
|
||||||
<description>imyeyu.com API</description>
|
<description>imyeyu.com API</description>
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.imyeyu.java</groupId>
|
<groupId>com.imyeyu.java</groupId>
|
||||||
<artifactId>timi-java</artifactId>
|
<artifactId>timi-java</artifactId>
|
||||||
<version>0.0.7</version>
|
<version>0.0.11</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.imyeyu.utils</groupId>
|
<groupId>com.imyeyu.utils</groupId>
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public interface AttachmentMapper extends BaseMapper<Attachment, String>, RawMap
|
|||||||
|
|
||||||
List<Attachment> selectAllByBizIdList(Attachment.BizType bizType, Collection<String> bizIdList, List<String> attachTypes);
|
List<Attachment> selectAllByBizIdList(Attachment.BizType bizType, Collection<String> bizIdList, List<String> attachTypes);
|
||||||
|
|
||||||
|
List<Attachment> selectImageByBizIdList(Attachment.BizType bizType, Collection<String> bizIdList, String attachType);
|
||||||
|
|
||||||
long countByBizId(Attachment.BizType bizType, String bizId, List<String> attachTypes);
|
long countByBizId(Attachment.BizType bizType, String bizId, List<String> attachTypes);
|
||||||
|
|
||||||
@Select("SELECT * FROM attachment WHERE `is_destroyed` = FALSE AND `destroy_at` < " + UNIX_TIME)
|
@Select("SELECT * FROM attachment WHERE `is_destroyed` = FALSE AND `destroy_at` < " + UNIX_TIME)
|
||||||
|
|||||||
@@ -45,6 +45,12 @@ public interface AttachmentService extends BaseService<Attachment, String> {
|
|||||||
*/
|
*/
|
||||||
List<Attachment> listByBizId(Attachment.BizType bizType, String bizId, String... attachTypes);
|
List<Attachment> listByBizId(Attachment.BizType bizType, String bizId, String... attachTypes);
|
||||||
|
|
||||||
|
default Map<String, Attachment> mapFirstImageByIdList(Attachment.BizType bizType, Collection<String> bizIdList) {
|
||||||
|
return mapFirstImageByIdList(bizType, bizIdList, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Attachment> mapFirstImageByIdList(Attachment.BizType bizType, Collection<String> bizIdList, String attachType);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据多个业务 ID 批量获取附件
|
* 根据多个业务 ID 批量获取附件
|
||||||
*
|
*
|
||||||
|
|||||||
+8
-1
@@ -34,10 +34,12 @@ import java.io.IOException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -244,9 +246,14 @@ public class AttachmentServiceImplement extends AbstractEntityService<Attachment
|
|||||||
return mapper.selectAllByBizIdList(bizType, List.of(bizId), List.of(attachTypes));
|
return mapper.selectAllByBizIdList(bizType, List.of(bizId), List.of(attachTypes));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Attachment> mapFirstImageByIdList(Attachment.BizType bizType, Collection<String> bizIdList, String attachType) {
|
||||||
|
return mapper.selectImageByBizIdList(bizType, new HashSet<>(bizIdList), attachType).stream().collect(Collectors.toMap(Attachment::getBizId, Function.identity()));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, List<Attachment>> mapByBizIdList(Attachment.BizType bizType, Collection<String> bizIdList, String... attachTypes) {
|
public Map<String, List<Attachment>> mapByBizIdList(Attachment.BizType bizType, Collection<String> bizIdList, String... attachTypes) {
|
||||||
return mapper.selectAllByBizIdList(bizType, bizIdList, List.of(attachTypes)).stream().collect(Collectors.groupingBy(Attachment::getBizId));
|
return mapper.selectAllByBizIdList(bizType, new HashSet<>(bizIdList), List.of(attachTypes)).stream().collect(Collectors.groupingBy(Attachment::getBizId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+12
-3
@@ -71,10 +71,19 @@ public class GaoCustomerPackageController {
|
|||||||
if (result.getList().isEmpty()) {
|
if (result.getList().isEmpty()) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
fillTransient(result.getList());
|
List<String> customerIdList = result.getList().stream()
|
||||||
Map<String, GaoCustomer> customerMap = customerService.mapByIdList(result.getList().stream().map(GaoCustomerPackage::getCustomerId).toList());
|
.map(GaoCustomerPackage::getCustomerId)
|
||||||
|
.filter(value -> value != null && !value.isBlank())
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
Map<String, GaoCustomer> customerMap = customerService.mapByIdList(customerIdList);
|
||||||
|
Map<String, List<Attachment>> attachmentMap = attachmentService.mapByBizIdList(Attachment.BizType.GAO_CUSTOMER, customerIdList, GaoCustomer.AttachType.PHOTO.name());
|
||||||
for (GaoCustomerPackage packageEntity : result.getList()) {
|
for (GaoCustomerPackage packageEntity : result.getList()) {
|
||||||
packageEntity.setCustomer(customerMap.get(packageEntity.getCustomerId()));
|
GaoCustomer customer = customerMap.get(packageEntity.getCustomerId());
|
||||||
|
if (customer != null) {
|
||||||
|
customer.setAttachmentList(attachmentMap.get(customer.getId()));
|
||||||
|
}
|
||||||
|
packageEntity.setCustomer(customer);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ 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.service.GaoStoreDiaryService;
|
import com.imyeyu.api.modules.gao.service.GaoStoreDiaryService;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoStoreScopeService;
|
import com.imyeyu.api.modules.gao.service.GaoStoreScopeService;
|
||||||
|
import com.imyeyu.api.modules.gao.vo.GaoStoreDiaryPage;
|
||||||
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.UserLoginService;
|
||||||
import com.imyeyu.api.modules.user.service.UserService;
|
import com.imyeyu.api.modules.user.service.UserService;
|
||||||
@@ -16,7 +17,6 @@ import com.imyeyu.java.bean.timi.TimiException;
|
|||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
import com.imyeyu.spring.annotation.RequestRateLimit;
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
import com.imyeyu.spring.bean.PageResult;
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoStoreDiaryPage;
|
|
||||||
import com.imyeyu.spring.util.ResponseView;
|
import com.imyeyu.spring.util.ResponseView;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@@ -25,6 +25,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
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
|
||||||
@@ -55,7 +58,16 @@ public class GaoStoreDiaryController {
|
|||||||
TimiException.required(page.getEndCreatedAt(), "未找到门店日记结束时间");
|
TimiException.required(page.getEndCreatedAt(), "未找到门店日记结束时间");
|
||||||
TimiException.requiredTrue(page.getBeginCreatedAt() < page.getEndCreatedAt(), "门店日记时间范围无效");
|
TimiException.requiredTrue(page.getBeginCreatedAt() < page.getEndCreatedAt(), "门店日记时间范围无效");
|
||||||
page.setStoreId(storeScopeService.resolveStoreId(page.getStoreId()));
|
page.setStoreId(storeScopeService.resolveStoreId(page.getStoreId()));
|
||||||
return service.page(page);
|
PageResult<Article> result = service.page(page);
|
||||||
|
{
|
||||||
|
List<String> articleIdList = result.getList().stream().map(Article::getId).toList();
|
||||||
|
Map<String, Attachment> attachMap = attachmentService.mapFirstImageByIdList(Attachment.BizType.ARTICLE, articleIdList);
|
||||||
|
for (Article article : result.getList()) {
|
||||||
|
Attachment attachment = attachMap.get(article.getId());
|
||||||
|
article.setAttachmentList(TimiJava.ofList(attachment));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 查询门店日记详情
|
/// 查询门店日记详情
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.imyeyu.api.modules.gao.service;
|
package com.imyeyu.api.modules.gao.service;
|
||||||
|
|
||||||
import com.imyeyu.api.modules.common.entity.Article;
|
import com.imyeyu.api.modules.common.entity.Article;
|
||||||
import com.imyeyu.spring.bean.PageResult;
|
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoStoreDiaryPage;
|
import com.imyeyu.api.modules.gao.vo.GaoStoreDiaryPage;
|
||||||
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
|
|
||||||
/// GAO 门店日记服务
|
/// GAO 门店日记服务
|
||||||
///
|
///
|
||||||
|
|||||||
+23
-2
@@ -1,8 +1,10 @@
|
|||||||
package com.imyeyu.api.modules.gao.service.implement;
|
package com.imyeyu.api.modules.gao.service.implement;
|
||||||
|
|
||||||
|
import com.imyeyu.api.bean.ModuleCode;
|
||||||
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
||||||
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.bean.GaoRoleCode;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoCustomerPackage;
|
import com.imyeyu.api.modules.gao.entity.GaoCustomerPackage;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoCustomerPackageItem;
|
import com.imyeyu.api.modules.gao.entity.GaoCustomerPackageItem;
|
||||||
import com.imyeyu.api.modules.gao.entity.GaoPackageDelivery;
|
import com.imyeyu.api.modules.gao.entity.GaoPackageDelivery;
|
||||||
@@ -18,6 +20,7 @@ import com.imyeyu.api.modules.gao.vo.GaoPackageDeliveryPage;
|
|||||||
import com.imyeyu.api.modules.gao.vo.GaoPackageDeliveryRevokeRequest;
|
import com.imyeyu.api.modules.gao.vo.GaoPackageDeliveryRevokeRequest;
|
||||||
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.RoleChecker;
|
||||||
import com.imyeyu.api.modules.user.service.UserLoginService;
|
import com.imyeyu.api.modules.user.service.UserLoginService;
|
||||||
import com.imyeyu.java.TimiJava;
|
import com.imyeyu.java.TimiJava;
|
||||||
import com.imyeyu.java.bean.timi.TimiCode;
|
import com.imyeyu.java.bean.timi.TimiCode;
|
||||||
@@ -55,6 +58,7 @@ public class GaoPackageDeliveryServiceImplement extends AbstractEntityService<Ga
|
|||||||
private final GaoCustomerPackageService customerPackageService;
|
private final GaoCustomerPackageService customerPackageService;
|
||||||
private final AttachmentService attachmentService;
|
private final AttachmentService attachmentService;
|
||||||
private final GaoStoreScopeService storeScopeService;
|
private final GaoStoreScopeService storeScopeService;
|
||||||
|
private final RoleChecker roleChecker;
|
||||||
private final UserLoginService userLoginService;
|
private final UserLoginService userLoginService;
|
||||||
private final LoggerService loggerService;
|
private final LoggerService loggerService;
|
||||||
|
|
||||||
@@ -156,7 +160,7 @@ public class GaoPackageDeliveryServiceImplement extends AbstractEntityService<Ga
|
|||||||
}
|
}
|
||||||
TimiException.requiredTrue(hasAttachment(request.getAttachmentList()), "发放必须上传照片");
|
TimiException.requiredTrue(hasAttachment(request.getAttachmentList()), "发放必须上传照片");
|
||||||
TimiException.requiredTrue(packageEntity.getStatus() == GaoCustomerPackage.Status.ACTIVE, "当前套餐不可发放");
|
TimiException.requiredTrue(packageEntity.getStatus() == GaoCustomerPackage.Status.ACTIVE, "当前套餐不可发放");
|
||||||
TimiException.requiredTrue(packageEntity.getPaymentStatus() == GaoCustomerPackage.PaymentStatus.PAID, "套餐未付清,不能发放");
|
checkPaymentForDelivery(packageEntity);
|
||||||
List<GaoPackageDeliveryItem> requestItemList = validateRequestItems(request.getItemList());
|
List<GaoPackageDeliveryItem> requestItemList = validateRequestItems(request.getItemList());
|
||||||
Map<String, GaoCustomerPackageItem> packageItemMap = new HashMap<>();
|
Map<String, GaoCustomerPackageItem> packageItemMap = new HashMap<>();
|
||||||
for (GaoPackageDeliveryItem requestItem : requestItemList) {
|
for (GaoPackageDeliveryItem requestItem : requestItemList) {
|
||||||
@@ -213,7 +217,7 @@ public class GaoPackageDeliveryServiceImplement extends AbstractEntityService<Ga
|
|||||||
GaoCustomerPackage packageEntity = customerPackageService.getForUpdate(delivery.getCustomerPackageId());
|
GaoCustomerPackage packageEntity = customerPackageService.getForUpdate(delivery.getCustomerPackageId());
|
||||||
TimiException.required(packageEntity, "not found customer package");
|
TimiException.required(packageEntity, "not found customer package");
|
||||||
TimiException.requiredTrue(packageEntity.getStatus() == GaoCustomerPackage.Status.ACTIVE, "当前套餐不可核销发放");
|
TimiException.requiredTrue(packageEntity.getStatus() == GaoCustomerPackage.Status.ACTIVE, "当前套餐不可核销发放");
|
||||||
TimiException.requiredTrue(packageEntity.getPaymentStatus() == GaoCustomerPackage.PaymentStatus.PAID, "套餐未付清,不能核销发放");
|
checkPaymentForDelivery(packageEntity);
|
||||||
List<GaoPackageDeliveryItem> itemList = itemMapper.selectByDeliveryId(delivery.getId());
|
List<GaoPackageDeliveryItem> itemList = itemMapper.selectByDeliveryId(delivery.getId());
|
||||||
for (GaoPackageDeliveryItem deliveryItem : itemList) {
|
for (GaoPackageDeliveryItem deliveryItem : itemList) {
|
||||||
GaoCustomerPackageItem packageItem = customerPackageService.getItemForUpdate(deliveryItem.getCustomerPackageItemId());
|
GaoCustomerPackageItem packageItem = customerPackageService.getItemForUpdate(deliveryItem.getCustomerPackageItemId());
|
||||||
@@ -400,6 +404,19 @@ public class GaoPackageDeliveryServiceImplement extends AbstractEntityService<Ga
|
|||||||
return reason != null && !reason.trim().isEmpty();
|
return reason != null && !reason.trim().isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean canDeliver(GaoCustomerPackage packageEntity) {
|
||||||
|
return safeLong(packageEntity.getSaleAmount()) == 0 || 0 < safeLong(packageEntity.getPaidAmount());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkPaymentForDelivery(GaoCustomerPackage packageEntity) {
|
||||||
|
long saleAmount = safeLong(packageEntity.getSaleAmount());
|
||||||
|
long paidAmount = safeLong(packageEntity.getPaidAmount());
|
||||||
|
TimiException.requiredTrue(canDeliver(packageEntity), "套餐未有已核销收款,不能发放");
|
||||||
|
if (0 < paidAmount && paidAmount < saleAmount) {
|
||||||
|
roleChecker.checkAny(ModuleCode.GAO, GaoRoleCode.STORE_MANAGER.name());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean sameText(String left, String right) {
|
private boolean sameText(String left, String right) {
|
||||||
return left == null ? right == null : left.equals(right);
|
return left == null ? right == null : left.equals(right);
|
||||||
}
|
}
|
||||||
@@ -407,4 +424,8 @@ public class GaoPackageDeliveryServiceImplement extends AbstractEntityService<Ga
|
|||||||
private BigDecimal decimal(BigDecimal value) {
|
private BigDecimal decimal(BigDecimal value) {
|
||||||
return value == null ? ZERO : value;
|
return value == null ? ZERO : value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private long safeLong(Long value) {
|
||||||
|
return value == null ? 0L : value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -6,12 +6,11 @@ import com.imyeyu.api.modules.common.entity.Attachment;
|
|||||||
import com.imyeyu.api.modules.common.mapper.ArticleMapper;
|
import com.imyeyu.api.modules.common.mapper.ArticleMapper;
|
||||||
import com.imyeyu.api.modules.common.service.ArticleService;
|
import com.imyeyu.api.modules.common.service.ArticleService;
|
||||||
import com.imyeyu.api.modules.common.service.AttachmentService;
|
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||||
import com.imyeyu.api.modules.gao.service.GaoStoreDiaryService;
|
|
||||||
import com.imyeyu.api.modules.gao.mapper.GaoStoreDiaryMapper;
|
import com.imyeyu.api.modules.gao.mapper.GaoStoreDiaryMapper;
|
||||||
|
import com.imyeyu.api.modules.gao.service.GaoStoreDiaryService;
|
||||||
import com.imyeyu.api.modules.gao.vo.GaoStoreDiaryPage;
|
import com.imyeyu.api.modules.gao.vo.GaoStoreDiaryPage;
|
||||||
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.bean.Page;
|
|
||||||
import com.imyeyu.spring.bean.PageResult;
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -1,6 +1,54 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
<mapper namespace="com.imyeyu.api.modules.common.mapper.AttachmentMapper">
|
<mapper namespace="com.imyeyu.api.modules.common.mapper.AttachmentMapper">
|
||||||
|
<select id="selectImageByBizIdList" resultType="com.imyeyu.api.modules.common.entity.Attachment">
|
||||||
|
SELECT
|
||||||
|
`ranked`.`id`,
|
||||||
|
`ranked`.`biz_type`,
|
||||||
|
`ranked`.`biz_id`,
|
||||||
|
`ranked`.`attach_type`,
|
||||||
|
`ranked`.`mongo_id`,
|
||||||
|
`ranked`.`title`,
|
||||||
|
`ranked`.`name`,
|
||||||
|
`ranked`.`mime_type`,
|
||||||
|
`ranked`.`metadata`,
|
||||||
|
`ranked`.`size`,
|
||||||
|
`ranked`.`md5`,
|
||||||
|
`ranked`.`uploader_ip`,
|
||||||
|
`ranked`.`is_destroyed`,
|
||||||
|
`ranked`.`created_at`,
|
||||||
|
`ranked`.`updated_at`,
|
||||||
|
`ranked`.`deleted_at`,
|
||||||
|
`ranked`.`destroy_at`
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
`attachment`.*,
|
||||||
|
ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY `attachment`.`biz_id`
|
||||||
|
ORDER BY `attachment`.`created_at`, `attachment`.`id`
|
||||||
|
) AS `row_num`
|
||||||
|
FROM `attachment`
|
||||||
|
WHERE
|
||||||
|
`biz_type` = #{bizType}
|
||||||
|
<if test="bizIdList != null and !bizIdList.isEmpty()">
|
||||||
|
AND `biz_id` IN
|
||||||
|
<foreach collection="bizIdList" item="bizId" separator="," open="(" close=")">
|
||||||
|
#{bizId}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="bizIdList == null or bizIdList.isEmpty()">
|
||||||
|
AND FALSE
|
||||||
|
</if>
|
||||||
|
AND `mime_type` LIKE "image/%"
|
||||||
|
AND `deleted_at` IS NULL
|
||||||
|
AND (`destroy_at` IS NULL OR UNIX_TIMESTAMP() < `destroy_at`)
|
||||||
|
<if test="attachType != null and !attachType.isEmpty()">
|
||||||
|
AND `attach_type` = #{attachType}
|
||||||
|
</if>
|
||||||
|
) `ranked`
|
||||||
|
WHERE `ranked`.`row_num` = 1
|
||||||
|
ORDER BY `ranked`.`created_at`, `ranked`.`id`
|
||||||
|
</select>
|
||||||
<select id="selectAllByBizIdList" resultType="com.imyeyu.api.modules.common.entity.Attachment">
|
<select id="selectAllByBizIdList" resultType="com.imyeyu.api.modules.common.entity.Attachment">
|
||||||
SELECT
|
SELECT
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user