l+`?o)^ASCecPu(tS#i{!eGUJsKbd%}i#S_}
zli#H?g8`YBL(3FI*;0X8qd={|gqwab-F^i0DYxrf{fx+lT+2j%5%eysCiwZQ`$n)%
z4<=sZYP+n;2m_BCc}vG!WEw)_apn$XkE+YKll}(h9}<`d*GlAVCvtt^%x3S+WB(5}
zU7V)#M~|J&V{mVjfGZ=&JUA`kJp>2*kVgF
yuT+{LJ@yQMNrs0M5ik_HlECh{&4S*=iEvVGCKR1*fla-5&
z9g>XM4P&xcvJE1R4M)*0$t4<9TNk-&Mor$+3!o6Mm-hpfa{N1Zay1Q;XNwyj;C@LETmQ!l-&}
zW{TE=@!{f-_l`2k&mJxL-gt~%EcOGy8zgn@N~avyvl+bcy+#_FH2~dhrgC2yk4392<5yivgg(uz_6a>F9wt0?Aa
z8W~puD?^7P^_P#4p^>VsN4_i10W%o(AeG9M@Nk^FFCM~j1o7xiRrww7u)+%EMa#|e
z6Pg~|`6H8b42h`DH
AND u.staffing_type = #{query.staffingType}
+
+
+ AND EXISTS (
+ SELECT 1
+ FROM sys_user_identity user_identity
+ WHERE user_identity.user_id = u.user_id
+ AND user_identity.identity_type IN
+
+ #{identityType}
+
+ )
+
and urole.role_id IN
@@ -307,6 +319,18 @@
AND u.dept_id = #{query.deptId}
+
+
+ AND EXISTS (
+ SELECT 1
+ FROM sys_user_identity user_identity
+ WHERE user_identity.user_id = u.user_id
+ AND user_identity.identity_type IN
+
+ #{identityType}
+
+ )
+
and urole.role_id IN
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletTransactionTag.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletTransactionTag.java
new file mode 100644
index 00000000..0eb4aeef
--- /dev/null
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletTransactionTag.java
@@ -0,0 +1,34 @@
+package com.bsd.pjcloud.wallet.api.constant;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+
+/**
+ * 充值流水tag
+ */
+@Getter
+@AllArgsConstructor
+public enum WalletTransactionTag {
+
+ BJZ_CZ("1", "不记账充值"),
+ ;
+
+ private final String code;
+
+ private final String desc;
+
+ public static WalletTransactionTag valueOfByCode(String code) {
+ if (ObjectUtil.isEmpty(code)) return null;
+ return Arrays.stream(values()).filter(v -> ObjectUtil.equals(code, v.getCode())).findFirst().orElse(null);
+ }
+
+ public static WalletTransactionTag descOf(String description) {
+ return Arrays.stream(WalletTransactionTag.values())
+ .filter(v -> ObjectUtil.equal(v.getDesc(), description))
+ .findFirst().orElse(null);
+ }
+
+}
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletTypeEnum.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletTypeEnum.java
index e71c525b..7630e505 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletTypeEnum.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletTypeEnum.java
@@ -23,12 +23,12 @@ public enum WalletTypeEnum {
public static WalletTypeEnum valueOfByCode(String code) {
if (ObjectUtil.isEmpty(code)) return null;
- return Arrays.stream(values()).filter(v -> ObjectUtil.equals(code, v.getCode())).findFirst().get();
+ return Arrays.stream(values()).filter(v -> ObjectUtil.equals(code, v.getCode())).findFirst().orElse(null);
}
public static WalletTypeEnum descOf(String description) {
return Arrays.stream(WalletTypeEnum.values())
.filter(v -> ObjectUtil.equal(v.getDesc(), description))
- .findFirst().get();
+ .findFirst().orElse(null);
}
}
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletBalanceTransactionDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletBalanceTransactionDto.java
index 2e7d0e0f..5faf255e 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletBalanceTransactionDto.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletBalanceTransactionDto.java
@@ -32,4 +32,9 @@ public class WalletBalanceTransactionDto {
@NotNull(message = "是否暴力消费")
private Boolean force = false;
+ /**
+ * 财务统计标签字典值,多个值使用英文逗号分隔;未传时不为流水设置标签。
+ */
+ private String tags;
+
}
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionDto.java
index 3fdf245f..4a98183d 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionDto.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionDto.java
@@ -39,6 +39,11 @@ public class WalletTransactionDto extends WalletTransactionEntity implements Bas
private List bizTypes;
+ /**
+ * 财务统计标签筛选值;传入多个字典值时匹配包含任一标签的流水。
+ */
+ private List tagList;
+
private LocalDate[] createTimeList;
/**
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/WalletRechargeImportDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/WalletRechargeImportDto.java
index 0220b420..32b451d6 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/WalletRechargeImportDto.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/WalletRechargeImportDto.java
@@ -18,6 +18,11 @@ public class WalletRechargeImportDto extends WalletRechargeImportEntity implemen
private List userUniqueIds;
+ /**
+ * 财务统计标签筛选值;传入多个字典值时匹配包含任一标签的导入记录。
+ */
+ private List tagList;
+
private Long userDeptId;
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/excel/WalletRechargeExcelDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/excel/WalletRechargeExcelDto.java
index 6697c9df..577256eb 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/excel/WalletRechargeExcelDto.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/excel/WalletRechargeExcelDto.java
@@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.bsd.pjcloud.common.excel.annotation.ExcelDict;
import com.bsd.pjcloud.common.excel.annotation.ExcelLine;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -42,6 +43,20 @@ public class WalletRechargeExcelDto {
@ExcelProperty("操作金额")
private String price;
+ /**
+ * Excel 中展示和填写的财务标签名称;支持使用英文逗号分隔多个 {@code wallet_transaction_tag} 字典标签。
+ */
+ @ColumnWidth(100)
+ @ExcelProperty("操作标签")
+ @ExcelDict(value = "wallet_transaction_tag", multiple = true)
+ private String tag;
+
+ /**
+ * 导入校验后解析出的财务标签字典值,多个值使用英文逗号分隔,不直接读取 Excel。
+ */
+ @ExcelIgnore
+ private String tags;
+
// 操作余额
private Integer priceNumber;
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java
index 55d771e3..7e0529e8 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java
@@ -78,6 +78,12 @@ public class WalletTransactionEntity extends Model {
@Schema(description = "余额, 单位分")
private Integer balance;
+ /**
+ * 财务统计标签,保存 {@code wallet_transaction_tag} 字典值;多个值使用英文逗号分隔,历史流水可为空。
+ */
+ @Schema(description = "财务统计标签,多个字典值使用英文逗号分隔")
+ private String tags;
+
/**
* 创建人
*/
@@ -119,4 +125,4 @@ public class WalletTransactionEntity extends Model {
*/
@Schema(description = "租户ID")
private Long tenantId;
-}
\ No newline at end of file
+}
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/recharge/WalletRechargeImportEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/recharge/WalletRechargeImportEntity.java
index fc35e52f..d006d8dd 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/recharge/WalletRechargeImportEntity.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/recharge/WalletRechargeImportEntity.java
@@ -67,6 +67,12 @@ public class WalletRechargeImportEntity extends Model {
+ R> result = remoteDictService.getDictByType(dictType);
+ if (result == null || !result.isOk() || result.getData() == null) {
+ return Collections.emptyList();
+ }
+ return result.getData().stream().map(SysDictItem::getLabel).toList();
+ };
+ }
+
+}
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java
index d9498856..e69a7a85 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java
@@ -56,7 +56,7 @@ public class WalletTransactionController {
@Inner
@PostMapping("/add-balance")
public R addWalletBalance(@Valid @RequestBody WalletBalanceTransactionDto dto) {
- WalletTransactionEntity walletTransaction = walletTransactionService.addWalletBalance(dto.getWalletId(), dto.getPrice(), dto.getBizId(), dto.getBizType());
+ WalletTransactionEntity walletTransaction = walletTransactionService.addWalletBalance(dto.getWalletId(), dto.getPrice(), dto.getBizId(), dto.getBizType(), dto.getTags());
if (ObjectUtil.isEmpty(walletTransaction)) return R.failed("增加钱包余额错误");
return R.ok(walletTransaction);
}
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java
index 24e1d0a8..225e311f 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java
@@ -61,6 +61,20 @@ public interface WalletTransactionMapper extends PjcloudBaseMapper {
+ boolean first = true;
+ for (String tag : dto.getTagList()) {
+ if (first) {
+ nested.apply("FIND_IN_SET({0}, tags) > 0", tag);
+ first = false;
+ }
+ else {
+ nested.or().apply("FIND_IN_SET({0}, tags) > 0", tag);
+ }
+ }
+ });
+ }
return wrapper;
}
@@ -98,5 +112,11 @@ public interface WalletTransactionMapper extends PjcloudBaseMapper sumAndCount(@Param("dto") WalletTransactionSumAndCountDto dto);
- List exportCzTotalPerson();
-}
\ No newline at end of file
+ /**
+ * 查询固定金额范围内的个人充值统计明细,并按财务标签筛选。
+ *
+ * @param dto 充值统计筛选条件;标签多选时匹配包含任一标签的流水
+ * @return 个人充值统计导出明细
+ */
+ List exportCzTotalPerson(@Param("dto") WalletTransactionDto dto);
+}
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java
index 3f654347..7d3eeb85 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java
@@ -69,6 +69,18 @@ public interface WalletTransactionService extends IService list);
/**
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java
index 6e1d0128..36cefd52 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java
@@ -212,6 +212,22 @@ public class WalletTransactionServiceImpl extends ServiceImpl list = baseMapper.exportCzTotalPerson();
+ List list = baseMapper.exportCzTotalPerson(dto);
WriteSheet writeSheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java
index e4a2f74e..a755fa87 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java
@@ -12,8 +12,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
import com.bsd.pjcloud.admin.api.entity.SysDept;
+import com.bsd.pjcloud.admin.api.entity.SysDictItem;
import com.bsd.pjcloud.admin.api.entity.SysUser;
import com.bsd.pjcloud.admin.api.feign.RemoteDeptService;
+import com.bsd.pjcloud.admin.api.feign.RemoteDictService;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.admin.api.utils.DataUtil;
import com.bsd.pjcloud.admin.api.vo.UserVO;
@@ -90,6 +92,11 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl batchSaveList = list.stream().map(v -> WalletRechargeImportEntity.builder().price(v.getPriceNumber()).userId(v.getUserId()).userDeptId(v.getUserDeptId()).build()).toList();
+ List batchSaveList = list.stream().map(v -> WalletRechargeImportEntity.builder().price(v.getPriceNumber()).userId(v.getUserId()).userDeptId(v.getUserDeptId()).tags(v.getTags()).build()).toList();
batchSaveList.forEach(v -> v.setApplyId(insertObj.getId()));
rechargeImportService.saveBatch(batchSaveList);
return R.ok(null, "导入成功");
@@ -349,7 +357,7 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl batchSaveList = list.stream().map(v -> WalletRechargeImportEntity.builder().price(0).userId(v.getUserId()).userDeptId(v.getUserDeptId()).build()).toList();
+ List batchSaveList = list.stream().map(v -> WalletRechargeImportEntity.builder().price(0).userId(v.getUserId()).userDeptId(v.getUserDeptId()).tags(v.getTags()).build()).toList();
batchSaveList.forEach(v -> v.setApplyId(insertObj.getId()));
rechargeImportService.saveBatch(batchSaveList);
return R.ok(null, "导入成功");
@@ -371,7 +379,7 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl batchSaveList = list.stream().map(v -> WalletRechargeImportEntity.builder().price(v.getPriceNumber()).userId(v.getUserId()).userDeptId(v.getUserDeptId()).invoiceId(invoice.getId()).build()).toList();
+ List batchSaveList = list.stream().map(v -> WalletRechargeImportEntity.builder().price(v.getPriceNumber()).userId(v.getUserId()).userDeptId(v.getUserDeptId()).invoiceId(invoice.getId()).tags(v.getTags()).build()).toList();
rechargeImportService.saveBatch(batchSaveList);
return R.ok(null, "导入成功");
}
@@ -388,6 +396,7 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl errorMessageList = (List) bindingResult.getTarget();
+ resolveTransactionTagValues(list, errorMessageList);
List usernameList = list.stream().map(WalletRechargeExcelDto::getUsername).toList();
List userPoneList = list.stream().map(WalletRechargeExcelDto::getUserMobile).toList();
for (WalletRechargeExcelDto v : list) {
@@ -442,6 +451,41 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl list, List errorMessageList) {
+ List taggedRows = list.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTag())).toList();
+ if (taggedRows.isEmpty()) {
+ return;
+ }
+ R> result = remoteDictService.getDictByType(TRANSACTION_TAG_DICT_TYPE);
+ if (result == null || !result.isOk() || ObjectUtil.isEmpty(result.getData())) {
+ taggedRows.forEach(item -> errorMessageList.add(new ErrorMessage(item.getLineNum(), Set.of("操作标签字典查询失败"))));
+ return;
+ }
+ Map valueByLabel = result.getData().stream()
+ .filter(item -> ObjectUtil.isNotEmpty(item.getLabel()) && ObjectUtil.isNotEmpty(item.getItemValue()))
+ .collect(java.util.stream.Collectors.toMap(SysDictItem::getLabel, SysDictItem::getItemValue, (first, ignored) -> first));
+ for (WalletRechargeExcelDto item : taggedRows) {
+ List tagValues = Arrays.stream(item.getTag().split(","))
+ .map(String::trim)
+ .distinct()
+ .map(valueByLabel::get)
+ .filter(Objects::nonNull)
+ .toList();
+ long selectedTagCount = Arrays.stream(item.getTag().split(",")).map(String::trim).distinct().count();
+ if (tagValues.size() != selectedTagCount) {
+ errorMessageList.add(new ErrorMessage(item.getLineNum(), Set.of("操作标签包含无法映射的字典项")));
+ continue;
+ }
+ item.setTags(String.join(",", tagValues));
+ }
+ }
+
/* ************************************* end excel end ************************************* */
@Override
@@ -497,7 +541,7 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl userIds = importList.stream().map(WalletRechargeImportEntity::getUserId).distinct().toList();
@@ -548,7 +592,7 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl
+
@@ -22,6 +23,7 @@
a.title,
a.price,
a.balance,
+ a.tags,
a.create_by,
a.create_time,
a.update_by,
@@ -44,6 +46,13 @@
and a.biz_type = #{dto.bizType}
+
+ and (
+
+ FIND_IN_SET(#{tag}, a.tags) > 0
+
+ )
+
and a.dept_id = #{dto.deptId}
@@ -286,6 +295,13 @@
and t.biz_type in ('1', '2', '3')
and t.price in (80000, 160000, 240000)
and t.dept_id not in (1875013738914156546, 1910218102049226753, 1910218128624336898, 1942046316044144642)
+
+ and (
+
+ FIND_IN_SET(#{tag}, t.tags) > 0
+
+ )
+
order by v.mchId, v.deptId
@@ -303,4 +319,4 @@
)
-
\ No newline at end of file
+
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeImportMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeImportMapper.xml
index 2d7394b3..086f0d75 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeImportMapper.xml
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeImportMapper.xml
@@ -9,6 +9,7 @@
+
@@ -24,6 +25,7 @@
a.apply_id,
a.before_price,
a.price,
+ a.tags,
a.create_by,
a.create_time,
a.update_by,
@@ -71,6 +73,13 @@
and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]}
+
+ and (
+
+ FIND_IN_SET(#{tag}, a.tags) > 0
+
+ )
+
@@ -134,4 +143,4 @@
-
\ No newline at end of file
+