From 2b4ff264287cf6e7432160ed4e06fbb280636f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=9D=9E=E5=87=A1?= Date: Tue, 14 Apr 2026 09:55:15 +0000 Subject: [PATCH] Merge #96 into master from cc_20250922_closeStore_w MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 闭店火码账号关闭优化;十二分积分流水导出 * cc_20250922_closeStore_w: (100 commits squashed) - fix:支行列表接口 - fix:错误信息修改 - Merge branch 'master' into cc_20250922_closeStore_w # Conflicts: # coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java # coolstore-partner-model/src/main/java/com/cool/store/request/close/refund/CloseStoreRefundAddRequest.java # coolstore-partner-model/src/main/java/com/cool/store/request/xgj/XgjPartnerAccountRequest.java # coolstore-partner-model/src/main/java/com/cool/store/request/xgj/XgjSavePartnerRequest.java # coolstore-partner-service/src/main/java/com/cool/store/service/close/CloseStoreRefundService.java # coolstore-partner-service/src/main/java/com/cool/store/service/close/impl/CloseStoreRefundServiceImpl.java # coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseStoreRefundController.java # coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java # coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java - fix:闭店材料详情接口新增字段 - fix:闭店材料修改单个材料时,去除审批状态 - Merge remote-tracking branch 'origin/cc_20250922_closeStore_w' into cc_20250922_closeStore_w - fix:闭店材料详情接口新增模板链接字段 - fix:闭店材料详情新增材料状态转义字段 - Merge remote-tracking branch 'origin/cc_20250922_closeStore_w' into cc_20250922_closeStore_w - fix:新管家应退实退金额字段修改 - fix:启用禁用规则合并 - Merge branch 'refs/heads/master' into cc_2021104_twelve_points - fix:惩处规则列表新增描述字段 - fix:闭店支行测试环境mock - fix:新增用户管辖门店列表接口 - fix:门店列表接口新增门店积分字段 - fix:查询问题修复;新增草稿状态 - fix:申请单审批补充审批人字段 - fix:修改门店积分限制0-12 - fix:积分流水接口修复;申请单查询接口添加日期筛选 - fix:redis报错修复 - fix:惩处单查询提供惩处待处理、惩处已处理状态筛选 - fix:新管家关店原因字段补充 - fix:惩处单复议申请查询异常修复 - fix:小程序惩处单详情接口字段补充 - fix:查询字段补充 - fix - fix:转义 - fix - fix:新增撤销复议申请单接口 - fix:补充字段 - fix:补充字段 - fix:新增门店分数接口 - fix:申请单新增筛选条件 - fix:门店积分接口返回参数修改 - fix:小程序规则分页查询接口改为Post - fix:问题修复 - fix:十二分导入 - fix:导入状态部分失败改为失败 - fix:字段补充 - fix:异步下Excel导入图片临时文件被清理的问题 - fix:扣分申请导入图片路径修改并使用CDN - fix:导入图片上传oss文件类型修改为图片 - fix:批量审批 - fix:批量审批新增备注字段 - fix:字段补充 - Merge branch 'master' into cc_2021104_twelve_points # Conflicts: # coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java # coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java # coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java # coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java # coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml # coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCStoreController.java - fix:新增字段 - fix:字段补充 - fix:小程序新增接口根据闭店申请id获取闭店申请简单信息 - fix:小程序退款信息列表修改 - fix:闭店审批允许管理员审批 - fix:字典项新增排序、编辑删除权限、关联字典项 - Merge branch 'master' into cc_2021104_twelve_points - fix:十二分值-扣分列表申请复议截止日期格式 - fix:去除appealEndDate格式校验 - Merge remote-tracking branch 'origin/cc_20260128_dict_update' into cc_20260205_twelve_points_v2 - fix:阶段名称修改 - Merge branch 'refs/heads/master' into cc_20250922_closeStore_w # Conflicts: # coolstore-partner-common/src/main/java/com/cool/store/enums/close/CloseStoreSubStageStatusEnum.java - fix:闭店记录列表补充审批id;仅在营门店允许发起闭店 - fix:提交新管家字段取值逻辑修改 - Merge branch 'cc_20260128_dict_update' into cc_2021104_twelve_points - fix:字典回显包含已删除字典项 - Merge branch 'master' into cc_2021104_twelve_points - Merge remote-tracking branch 'origin/cc_20260205_twelve_points_v2' into cc_2021104_twelve_points - fix:去除惩处单审批阶段;复议申请单证明图片非必填 - fix:复议拒绝后惩处单直接生效 - fix:扣分申请单证明图片改为非必填 - fix - fix:字段转义 - fix:惩处待处理包含带生效数据 - fix:字段转义 - fix:警告单金额和积分初始化为0 - fix - fix:小程序接口字段转义 - Merge branch 'master' into cc_2021104_twelve_points - fix:十二分审批记录展示待审批人 - fix - fix:惩处单复议申请逾期检查改为延时队列 - Merge branch 'refs/heads/master' into cc_20250922_closeStore_w - fix:闭店定时任务过滤闭店状态补充 - Merge branch 'refs/heads/master' into cc_2021104_twelve_points # Conflicts: # coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java - Merge branch 'master' into cc_20250922_closeStore_w - fix:闭店材料新增字段 - fix - fix:小程序闭店材料详情新增字段 - fix:闭店流程流转校验除授权书外是否已邮寄 - fix:营帐通JWT生成 - fix:营帐通JWT改为post - fix:修改secret - fix:配置 - Merge branch 'master' into cc_2021104_twelve_points - fix:十二分流水导出;流水新增规则描述字段 - fix - fix:闭店新管家接口错误信息返回 - Merge branch 'master' into cc_20250922_closeStore_w - Merge branch 'cc_20260412_jwt_ge' into cc_20250922_closeStore_w - Merge branch 'master' into cc_20250922_closeStore_w - fix:闭店火码关闭账号不存在时忽略 - Merge branch 'cc_2021104_twelve_points' into cc_20250922_closeStore_w Signed-off-by: 王非凡 Merged-by: 正新 CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/96 --- .../cool/store/constants/RedisConstant.java | 5 + .../com/cool/store/enums/FileTypeEnum.java | 1 + .../cool/store/dao/tp/TpScoreJournalDAO.java | 17 +++- .../store/dto/tp/TpScoreJournalExportDTO.java | 94 +++++++++++++++++++ .../store/entity/tp/TpScoreJournalDO.java | 8 +- .../cool/store/vo/tp/TpScoreJournalVO.java | 4 + .../store/service/ExportRealizeService.java | 8 ++ .../com/cool/store/service/ExportService.java | 9 ++ .../impl/ExportRealizeServiceImpl.java | 42 ++++++++- .../store/service/impl/ExportServiceImpl.java | 31 ++++++ .../service/impl/ThirdHuoMaServiceImpl.java | 9 +- .../service/tp/TpScoreJournalService.java | 7 ++ .../service/tp/impl/TpApplyServiceImpl.java | 3 +- .../tp/impl/TpScoreJournalServiceImpl.java | 5 + .../controller/webb/ExportController.java | 7 ++ 15 files changed, 244 insertions(+), 6 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/tp/TpScoreJournalExportDTO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java index 0fbd97842..737b900d9 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java @@ -375,6 +375,11 @@ public class RedisConstant { */ public static final String MY_POINT_EXPORT_LOCK = "my_point_export_lock"; + /** + * 十二分制积分流水导出锁 + */ + public static final String TP_SCORE_JOURNAL_EXPORT_LOCK = "tp_score_journal_export_lock"; + /** * 钱包分账公司配置-招商分部 */ diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java index 187d80b46..6c8f82353 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java @@ -34,6 +34,7 @@ public enum FileTypeEnum { POINT_EXPORT("pointExport", "铺位管理列表"), MY_POINT_EXPORT("myPointExport", "我的铺位管理列表"), ORDER_DEVICE_DETAIL_EXPORT("orderDeviceDetailExport", "订单设备明细导出"), + TP_SCORE_JOURNAL_EXPORT("tpScoreJournalExport", "十二分制积分流水导出"), ; private String fileType; private String desc; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpScoreJournalDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpScoreJournalDAO.java index 0d2951956..395a05d89 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpScoreJournalDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpScoreJournalDAO.java @@ -35,6 +35,20 @@ public class TpScoreJournalDAO { * 列表查询 */ public List getList(TpScoreJournalQueryRequest request) { + Example example = buildExample(request); + example.setOrderByClause("create_time DESC"); + return tpScoreJournalMapper.selectByExample(example); + } + + /** + * 统计数量 + */ + public Long count(TpScoreJournalQueryRequest request) { + Example example = buildExample(request); + return (long) tpScoreJournalMapper.selectCountByExample(example); + } + + private Example buildExample(TpScoreJournalQueryRequest request) { Example example = new Example(TpScoreJournalDO.class); Example.Criteria criteria = example.createCriteria(); if (StringUtils.isNotBlank(request.getStoreNameOrNum())) { @@ -61,7 +75,6 @@ public class TpScoreJournalDAO { if (StringUtils.isNotBlank(request.getApplyNo())) { criteria.andLike("applyNo", "%" + request.getApplyNo() + "%"); } - example.setOrderByClause("create_time DESC"); - return tpScoreJournalMapper.selectByExample(example); + return example; } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/tp/TpScoreJournalExportDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/tp/TpScoreJournalExportDTO.java new file mode 100644 index 000000000..45b3620c5 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/tp/TpScoreJournalExportDTO.java @@ -0,0 +1,94 @@ +package com.cool.store.dto.tp; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.cool.store.annotation.DictField; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 十二分制-积分流水导出DTO + *

+ * + * @author wangff + * @since 2025/11/10 + */ +@Data +public class TpScoreJournalExportDTO { + + @ExcelProperty(value = "流水号", order = 1) + @ColumnWidth(30) + private String journalNo; + + @ExcelProperty(value = "门店编码", order = 2) + @ColumnWidth(20) + private String storeNum; + + @ExcelProperty(value = "门店名称", order = 3) + @ColumnWidth(30) + private String storeName; + + @ExcelProperty(value = "加盟品牌", order = 4) + @ColumnWidth(15) + private String joinBrandName; + + @ExcelProperty(value = "加盟模式", order = 5) + @ColumnWidth(15) + private String joinModelName; + + @ExcelProperty(value = "门店类型", order = 6) + @ColumnWidth(15) + private String storeTypeName; + + @ExcelProperty(value = "发生分值", order = 7) + @ColumnWidth(15) + private String occurScore; + + @ExcelProperty(value = "发生日期", order = 8) + @ColumnWidth(20) + private String occurDate; + + @ExcelProperty(value = "发生前分值", order = 9) + @ColumnWidth(15) + private BigDecimal occurBeforeScore; + + @ExcelProperty(value = "发生后分值", order = 10) + @ColumnWidth(15) + private BigDecimal occurAfterScore; + + @ExcelProperty(value = "单据类型", order = 11) + @ColumnWidth(20) + private String applyTypeName; + + @ExcelProperty(value = "来源单号", order = 12) + @ColumnWidth(30) + private String applyNo; + + @ExcelIgnore + private String projectCategory; + + @ExcelProperty(value = "项目大类", order = 13) + @ColumnWidth(20) + @DictField + private String projectCategoryName; + + @ExcelIgnore + private String projectName; + + @ExcelProperty(value = "项目名称", order = 14) + @ColumnWidth(30) + @DictField + private String projectNameName; + + @ExcelProperty(value = "规则编码", order = 15) + @ColumnWidth(20) + private String ruleNo; + + @ExcelProperty(value = "规则项目描述", order = 16) + @ColumnWidth(30) + private String remark; +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/tp/TpScoreJournalDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/tp/TpScoreJournalDO.java index 6baf44a98..8371a92c1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/tp/TpScoreJournalDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/tp/TpScoreJournalDO.java @@ -132,6 +132,11 @@ public class TpScoreJournalDO { @Column(name = "rule_no") private String ruleNo; + /** + * 规则项目描述 + */ + private String remark; + /** * 创建时间 */ @@ -144,7 +149,7 @@ public class TpScoreJournalDO { @Column(name = "update_time") private Date updateTime; - public TpScoreJournalDO(StoreDO storeDO, TpApplyFormDO formDO, String occurScore, BigDecimal occurBeforeScore, BigDecimal occurAfterScore) { + public TpScoreJournalDO(StoreDO storeDO, TpApplyFormDO formDO, String occurScore, BigDecimal occurBeforeScore, BigDecimal occurAfterScore, String ruleRemark) { this.journalNo = TpHelper.generateScoreJournalNo(); this.storeId = storeDO.getStoreId(); this.storeNum = storeDO.getStoreNum(); @@ -162,5 +167,6 @@ public class TpScoreJournalDO { this.projectName = formDO.getProjectName(); this.ruleId = formDO.getRuleId(); this.ruleNo = formDO.getRuleNo(); + this.remark = ruleRemark; } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/TpScoreJournalVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/TpScoreJournalVO.java index f221f0e13..68786c0b5 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/TpScoreJournalVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/TpScoreJournalVO.java @@ -4,6 +4,7 @@ import com.cool.store.enums.JoinModeEnum; import com.cool.store.enums.StoreTypeEnum; import com.cool.store.enums.master.BrandTypeEnum; import com.cool.store.enums.tp.TpFormTypeEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -81,6 +82,9 @@ public class TpScoreJournalVO { @ApiModelProperty("创建时间") private Date createTime; + @JsonIgnore + private String remark; + public String getJoinBrandName() { return BrandTypeEnum.getDescByCode(this.joinBrand); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java index 8a4c04d29..02809a11e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java @@ -5,6 +5,7 @@ import com.cool.store.entity.ImportTaskDO; import com.cool.store.request.AllPointPageRequest; import com.cool.store.request.FranchiseReportRequest; import com.cool.store.request.order.PCStoreOrderQueryRequest; +import com.cool.store.request.tp.TpScoreJournalQueryRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; import com.cool.store.request.PointPageRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; @@ -52,4 +53,11 @@ public interface ExportRealizeService { * @param importTaskDO 导出任务 */ void exportOrderDeviceDetail(Long orderId, ImportTaskDO importTaskDO); + + /** + * 十二分制积分流水导出 + * @param request 查询Request + * @param importTaskDO 导出任务 + */ + void exportTpScoreJournal(TpScoreJournalQueryRequest request, ImportTaskDO importTaskDO); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java index 8bc73b8c5..df4f3d4f2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java @@ -6,6 +6,7 @@ import com.cool.store.dto.pre.fry.ApplyManagementQueryDTO; import com.cool.store.enums.FileTypeEnum; import com.cool.store.request.*; import com.cool.store.request.order.PCStoreOrderQueryRequest; +import com.cool.store.request.tp.TpScoreJournalQueryRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; @@ -85,4 +86,12 @@ public interface ExportService { * @return 记录总数 */ Long exportOrderDeviceDetail(Long orderId, LoginUserInfo user); + + /** + * 十二分制积分流水导出 + * @param request 查询Request + * @param user 当前用户 + * @return 记录总数 + */ + Long exportTpScoreJournal(TpScoreJournalQueryRequest request, LoginUserInfo user); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java index 4f30d538d..1d5aee613 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java @@ -1,11 +1,12 @@ package com.cool.store.service.impl; import cn.hutool.core.collection.CollStreamUtil; +import cn.hutool.core.date.DateUtil; import com.cool.store.constants.RedisConstant; import com.cool.store.dao.*; import com.cool.store.dto.*; - +import com.cool.store.dto.tp.TpScoreJournalExportDTO; import com.cool.store.dto.pre.fry.ApplyManagementDTO; import com.cool.store.entity.*; import com.cool.store.enums.*; @@ -15,6 +16,7 @@ import com.cool.store.mapper.*; import com.cool.store.request.AllPointPageRequest; import com.cool.store.request.FranchiseReportRequest; import com.cool.store.request.order.PCStoreOrderQueryRequest; +import com.cool.store.request.tp.TpScoreJournalQueryRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; import com.cool.store.request.PointPageRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; @@ -22,8 +24,10 @@ import com.cool.store.response.BranchShopResponse; import com.cool.store.response.FranchiseReportResponse; import com.cool.store.response.ShopReportResponse; import com.cool.store.service.*; +import com.cool.store.service.dict.impl.DictService; import com.cool.store.service.order.MiniStoreOrderService; import com.cool.store.service.order.impl.MiniStoreOrderServiceImpl; +import com.cool.store.service.tp.TpScoreJournalService; import com.cool.store.service.visit.VisitRecordService; import com.cool.store.service.visit.VisitRecordService; import com.cool.store.utils.BeanUtil; @@ -36,6 +40,7 @@ import com.cool.store.utils.poi.StringUtils; import com.cool.store.vo.order.OrderDeviceDetailExportVO; import com.cool.store.vo.order.OrderDeviceDetailVO; import com.cool.store.vo.order.PCStoreOrderListVO; +import com.cool.store.vo.tp.TpScoreJournalVO; import com.cool.store.vo.visit.VisitRecordListVO; import com.cool.store.vo.point.PointExportVO; import com.cool.store.vo.point.PointPageVO; @@ -130,6 +135,10 @@ public class ExportRealizeServiceImpl implements ExportRealizeService { private PointService pointService; @Resource private PointFinancialDataDAO pointFinancialDataDAO; + @Resource + private TpScoreJournalService tpScoreJournalService; + @Resource + private DictService dictService; @Override @Async @@ -904,5 +913,36 @@ public class ExportRealizeServiceImpl implements ExportRealizeService { throw new RuntimeException(e); } } + + @Override + @Async("generalThreadPool") + public void exportTpScoreJournal(TpScoreJournalQueryRequest request, ImportTaskDO importTaskDO) { + String url = ""; + try { + url = easyExcelUtil.exportExcelInBatches(TpScoreJournalExportDTO.class, + (pageNum, pageSize) -> { + request.setPageNum(pageNum); + request.setPageSize(pageSize); + List list = tpScoreJournalService.getPage(request).getList(); + List result = CollStreamUtil.toList(list, v -> { + TpScoreJournalExportDTO dto = BeanUtil.toBean(v, TpScoreJournalExportDTO.class); + dto.setOccurDate(DateUtil.format(v.getOccurDate(), "yyyy-MM-dd")); + return dto; + }); + dictService.fillDictField(result); + return result; + }, + FileTypeEnum.TP_SCORE_JOURNAL_EXPORT.getDesc(), + FileTypeEnum.TP_SCORE_JOURNAL_EXPORT.getDesc()); + importTaskDO.setStatus(ImportStatusEnum.success.getCode()); + } catch (Exception e) { + log.error("十二分制积分流水导出失败", e); + importTaskDO.setStatus(ImportStatusEnum.fail.getCode()); + } finally { + importTaskDO.setFileUrl(url); + importTaskMapper.update(eid, importTaskDO); + redisUtilPool.delKey(RedisConstant.TP_SCORE_JOURNAL_EXPORT_LOCK); + } + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java index d6eaf9378..fece23a8f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java @@ -24,12 +24,14 @@ import com.cool.store.mapper.ImportTaskMapper; import com.cool.store.mapper.PointInfoMapper; import com.cool.store.request.*; import com.cool.store.request.order.PCStoreOrderQueryRequest; +import com.cool.store.request.tp.TpScoreJournalQueryRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; import com.cool.store.response.BranchShopResponse; import com.cool.store.response.FranchiseReportResponse; import com.cool.store.response.ShopReportResponse; import com.cool.store.service.*; +import com.cool.store.service.tp.TpScoreJournalService; import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.easyExcel.EasyExcelUtil; import com.cool.store.utils.poi.DateUtils; @@ -89,6 +91,8 @@ public class ExportServiceImpl implements ExportService { private RedisUtilPool redisUtilPool; @Resource private PointService pointService; + @Resource + private TpScoreJournalService tpScoreJournalService; @@ -349,5 +353,32 @@ public class ExportServiceImpl implements ExportService { return 1L; } + @Override + public Long exportTpScoreJournal(TpScoreJournalQueryRequest request, LoginUserInfo user) { + Long count = tpScoreJournalService.count(request); + if (count.intValue() > CommonConstants.MAX_EXPORT_SIZE_PRO) { + throw new ServiceException(ErrorCodeEnum.EXPORT_LIMIT_100000); + } + if (Long.valueOf(0).equals(count)) { + log.error("导出数据为空"); + return 0L; + } + boolean lock = redisUtilPool.setNxExpire(RedisConstant.TP_SCORE_JOURNAL_EXPORT_LOCK, RedisConstant.TP_SCORE_JOURNAL_EXPORT_LOCK, 30 * 60 * 1000); + if (!lock) { + throw new ServiceException(ErrorCodeEnum.EXPORT_TASK_LIMIT); + } + ImportTaskDO importTaskDO = new ImportTaskDO(); + importTaskDO.setStatus(ImportStatusEnum.Ongoing.getCode()); + importTaskDO.setFileName(FileTypeEnum.TP_SCORE_JOURNAL_EXPORT.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date())); + importTaskDO.setIsImport(Boolean.FALSE); + importTaskDO.setFileType(FileTypeEnum.TP_SCORE_JOURNAL_EXPORT.getFileType()); + importTaskDO.setCreateUserId(user.getUserId()); + importTaskDO.setCreateTime(new Date().getTime()); + importTaskDO.setCreateName(user.getName()); + importTaskMapper.insert(eid, importTaskDO); + exportRealizeService.exportTpScoreJournal(request, importTaskDO); + return count; + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdHuoMaServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdHuoMaServiceImpl.java index 602e91bc7..4bfa8a04a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdHuoMaServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdHuoMaServiceImpl.java @@ -90,7 +90,14 @@ public class ThirdHuoMaServiceImpl implements HuoMaService { @Override public Boolean accountClose(AccountCloseRequest requestBody) { String apiUrl = url + "/dzgV1/shop/setShopEnableSwitch"; - executeApiCall(apiUrl, requestBody, List.class); + try { + executeApiCall(apiUrl, requestBody, List.class); + } catch (ServiceException e) { + if (e.getMessage().equals("第三方服务异常->系统未找到对应的店铺编码")) { + return true; + } + throw e; + } return true; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/tp/TpScoreJournalService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/tp/TpScoreJournalService.java index fa6a600a1..4ebe64738 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/tp/TpScoreJournalService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/tp/TpScoreJournalService.java @@ -20,4 +20,11 @@ public interface TpScoreJournalService { * @return 积分流水VO列表 */ PageInfo getPage(TpScoreJournalQueryRequest request); + + /** + * 统计数量 + * @param request 积分流水查询Request + * @return 数量 + */ + Long count(TpScoreJournalQueryRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpApplyServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpApplyServiceImpl.java index add392b69..cab2dff14 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpApplyServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpApplyServiceImpl.java @@ -552,8 +552,9 @@ public class TpApplyServiceImpl implements TpApplyService { if (Objects.isNull(storeDO)) { throw new ServiceException(ErrorCodeEnum.STORE_NOT_FIND); } + TpRuleDO tpRuleDO = tpRuleDAO.getById(formDO.getRuleId()); // 添加积分流水 - tpScoreJournalDAO.insertSelective(new TpScoreJournalDO(storeDO, formDO, occurScore, occurBeforeScore, occurAfterScore)); + tpScoreJournalDAO.insertSelective(new TpScoreJournalDO(storeDO, formDO, occurScore, occurBeforeScore, occurAfterScore, tpRuleDO.getRemark())); } } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpScoreJournalServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpScoreJournalServiceImpl.java index 0ec1b156f..15f7aa9a9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpScoreJournalServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/tp/impl/TpScoreJournalServiceImpl.java @@ -33,4 +33,9 @@ public class TpScoreJournalServiceImpl implements TpScoreJournalService { PageInfo page = new PageInfo<>(list); return BeanUtil.toPage(page, TpScoreJournalVO.class); } + + @Override + public Long count(TpScoreJournalQueryRequest request) { + return tpScoreJournalDAO.count(request); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java index 1b1b07481..c4df78aec 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java @@ -5,6 +5,7 @@ import com.cool.store.dto.pre.fry.ApplyManagementQueryDTO; import com.cool.store.enums.FileTypeEnum; import com.cool.store.request.*; import com.cool.store.request.order.PCStoreOrderQueryRequest; +import com.cool.store.request.tp.TpScoreJournalQueryRequest; import com.cool.store.request.visit.VisitRecordQueryRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.ExportService; @@ -101,4 +102,10 @@ public class ExportController { public ResponseResult myPointExport(@RequestBody PointPageRequest request) { return ResponseResult.success(exportService.myPointExport(request, CurrentUserHolder.getUser())); } + + @PostMapping("/tpScoreJournalExport") + @ApiOperation("十二分制积分流水导出") + public ResponseResult tpScoreJournalExport(@RequestBody TpScoreJournalQueryRequest request) { + return ResponseResult.success(exportService.exportTpScoreJournal(request, CurrentUserHolder.getUser())); + } }