Merge #47 into master from cc_20250922_closeStore_w
闭店
* cc_20250922_closeStore_w: (67 commits squashed)
- feat:闭店流程init
- feat:闭店流程接口
- feat:闭店
- Merge branch 'refs/heads/master' into cc_20250922_closeStore_w
- fix:闭店材料模块
- fix:账号关闭流程
- feat:闭店审批流程(未测);字典表
- fix:闭店审批流程完善
- Merge branch 'master' into cc_20250922_closeStore_w
- fix:闭店流程流转补充
- feat:闭店退款
- fix:字典表接口
- Merge branch 'master' into cc_20250922_closeStore_w
- fix:闭店原因接口新增闭店发起方式字段
- fix:修改审批记录返回数据类型
feat:新增退款流程跳过
- fix
- fix:新增字段
- feat:新增闭店退款提交人列表接口
- fix:闭店初始化数据来源修改;小程序闭店材料详情新增模板url字段
- fix:新增接口返回字段
- fix:闭店管理、审批待办类别所属品牌筛选改为多选
- fix:闭店管理列表新增完成阶段数量字段
- feat:新增第三方闭店申请接口
- Merge branch 'refs/heads/master' into cc_20250922_closeStore_w
# Conflicts:
#	coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java
#	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
#	coolstore-partner-common/src/main/java/com/cool/store/utils/BeanUtil.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
- fix:自动发起闭店申请定时任务
- feat:火码账号关闭
- fix:闭店流程修改
- Merge branch 'master' into cc_20250922_closeStore_w
# 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-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java
- fix:删除云流水发起闭店接口
- fix:取消闭店申请入参修改
- fix:闭店申请列表赋值异常问题
- fix:闭店审批通过异常
- fix:普通方法参数校验
- fix:账号关闭时校验阶段状态
- fix:初始化
- fix:字段新增
- fix:接口补充
- fix
- Merge branch 'refs/heads/master' into cc_20250922_closeStore_w
# 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-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java
#	coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java
#	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java
#	coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java
- Merge branch 'refs/heads/master' into cc_20250922_closeStore_w
# Conflicts:
#	coolstore-partner-common/src/main/java/com/cool/store/common/InsertGroup.java
#	coolstore-partner-common/src/main/java/com/cool/store/common/UpdateGroup.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/dao/dict/SysDictColumnDAO.java
#	coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java
#	coolstore-partner-dao/src/main/java/com/cool/store/mapper/dict/SysDictColumnMapper.java
#	coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml
#	coolstore-partner-dao/src/main/resources/mapper/dict/SysDictColumnMapper.xml
#	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DictManagerController.java
#	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java
- fix:闭店流程修改
- fix:闭店流程修改
- fix:修改三方付款状态接口
- fix:闭店申请测试接口
- fix:退款供应商接口补充
- 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:闭店支行测试环境mock
- fix:redis报错修复
- fix:新管家关店原因字段补充
- fix:新增字段
- fix:字段补充
- fix:小程序新增接口根据闭店申请id获取闭店申请简单信息
- fix:小程序退款信息列表修改
- fix:闭店审批允许管理员审批
- 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:提交新管家字段取值逻辑修改
Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>
CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/47
This commit is contained in:
@@ -349,7 +349,7 @@ public enum ErrorCodeEnum {
|
|||||||
// 171闭店
|
// 171闭店
|
||||||
CLOSE_STORE_SUB_STAGE_ERROR(171002, "当前流程状态异常", null),
|
CLOSE_STORE_SUB_STAGE_ERROR(171002, "当前流程状态异常", null),
|
||||||
STORE_NOT_EXIST(1710003,"门店不存在!",null),
|
STORE_NOT_EXIST(1710003,"门店不存在!",null),
|
||||||
STORE_NOT_OPEN(1710004,"当期门店状态为已闭店!请确认!",null),
|
STORE_NOT_OPEN(1710004,"当前门店状态为已闭店!请确认!",null),
|
||||||
CLOSE_STORE_INFO_NOT_EXIST(1710005,"闭店申请信息不存在!",null),
|
CLOSE_STORE_INFO_NOT_EXIST(1710005,"闭店申请信息不存在!",null),
|
||||||
CLOSE_STORE_EXIST_ONGOING_RECORD(1710006,"当前门店有进行中的闭店申请,请确认!",null),
|
CLOSE_STORE_EXIST_ONGOING_RECORD(1710006,"当前门店有进行中的闭店申请,请确认!",null),
|
||||||
CLOSE_STORE_HAS_BEEN_COMPLETED(1710007,"该审批已结束",null),
|
CLOSE_STORE_HAS_BEEN_COMPLETED(1710007,"该审批已结束",null),
|
||||||
@@ -364,6 +364,7 @@ public enum ErrorCodeEnum {
|
|||||||
CLOSE_STORE_REFUND_MK_USER_NOT_EXIST(1710016, "当前用户不存在每刻权限", null),
|
CLOSE_STORE_REFUND_MK_USER_NOT_EXIST(1710016, "当前用户不存在每刻权限", null),
|
||||||
CLOSE_STORE_REFUND_EXIST_EFFECTIVE_RECORD(1710017, "存在生效中的退款申请!", null),
|
CLOSE_STORE_REFUND_EXIST_EFFECTIVE_RECORD(1710017, "存在生效中的退款申请!", null),
|
||||||
CLOSE_STORE_REFUND_TYPE_ERROR(1710018, "退款类型错误", null),
|
CLOSE_STORE_REFUND_TYPE_ERROR(1710018, "退款类型错误", null),
|
||||||
|
CLOSE_STORE_ONLY_SUPPORT_OPEN(1710019, "仅支持在营门店发起闭店申请", null),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 181 十二分制
|
* 181 十二分制
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ public enum CloseStoreSubStageStatusEnum {
|
|||||||
*/
|
*/
|
||||||
CLOSE_STORE_SUB_STAGE_STATUS_10(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 100, "待内勤填写地址", Boolean.FALSE),
|
CLOSE_STORE_SUB_STAGE_STATUS_10(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 100, "待内勤填写地址", Boolean.FALSE),
|
||||||
CLOSE_STORE_SUB_STAGE_STATUS_15(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 110, "未提交", Boolean.FALSE),
|
CLOSE_STORE_SUB_STAGE_STATUS_15(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 110, "未提交", Boolean.FALSE),
|
||||||
CLOSE_STORE_SUB_STAGE_STATUS_16(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 120, "待招商经理审核", Boolean.FALSE),
|
CLOSE_STORE_SUB_STAGE_STATUS_16(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 120, "待运营顾问审核", Boolean.FALSE),
|
||||||
CLOSE_STORE_SUB_STAGE_STATUS_17(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 130, "招商经理审批驳回", Boolean.FALSE),
|
CLOSE_STORE_SUB_STAGE_STATUS_17(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 130, "运营顾问审批驳回", Boolean.FALSE),
|
||||||
CLOSE_STORE_SUB_STAGE_STATUS_18(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 140, "待内勤审核", Boolean.FALSE),
|
CLOSE_STORE_SUB_STAGE_STATUS_18(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 140, "待内勤审核", Boolean.FALSE),
|
||||||
CLOSE_STORE_SUB_STAGE_STATUS_19(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 150, "内勤审批驳回", Boolean.FALSE),
|
CLOSE_STORE_SUB_STAGE_STATUS_19(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 150, "内勤审批驳回", Boolean.FALSE),
|
||||||
CLOSE_STORE_SUB_STAGE_STATUS_20(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 160, "已完成", Boolean.TRUE),
|
CLOSE_STORE_SUB_STAGE_STATUS_20(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 160, "已完成", Boolean.TRUE),
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.cool.store.dao;
|
package com.cool.store.dao;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollStreamUtil;
|
||||||
|
import com.alibaba.excel.util.CollectionUtils;
|
||||||
import com.cool.store.entity.CloseStoreAuditRecordDO;
|
import com.cool.store.entity.CloseStoreAuditRecordDO;
|
||||||
import com.cool.store.enums.close.CloseStoreAuditStatusEnum;
|
import com.cool.store.enums.close.CloseStoreAuditStatusEnum;
|
||||||
import com.cool.store.enums.close.RecordTypeEnum;
|
import com.cool.store.enums.close.RecordTypeEnum;
|
||||||
@@ -167,4 +169,22 @@ public class CloseStoreAuditRecordDAO {
|
|||||||
.andEqualTo("deleted", 0);
|
.andEqualTo("deleted", 0);
|
||||||
return closeStoreAuditRecordMapper.selectOneByExample(example);
|
return closeStoreAuditRecordMapper.selectOneByExample(example);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取待处理的审批记录
|
||||||
|
* @param closeStoreIds 闭店申请id列表
|
||||||
|
* @return 闭店申请id->审批记录id
|
||||||
|
*/
|
||||||
|
public Map<Long, Long> getPendingAuditIdByCloseStoreIds(List<Long> closeStoreIds) {
|
||||||
|
if (CollectionUtils.isEmpty(closeStoreIds)) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
Example example = new Example(CloseStoreAuditRecordDO.class);
|
||||||
|
example.createCriteria()
|
||||||
|
.andIn("closeStoreId", closeStoreIds)
|
||||||
|
.andEqualTo("auditStatus", CloseStoreAuditStatusEnum.PENDING.getStatus())
|
||||||
|
.andEqualTo("deleted", 0);
|
||||||
|
List<CloseStoreAuditRecordDO> list = closeStoreAuditRecordMapper.selectByExample(example);
|
||||||
|
return CollStreamUtil.toMap(list, CloseStoreAuditRecordDO::getCloseStoreId, CloseStoreAuditRecordDO::getId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,8 @@
|
|||||||
<update id="updateFile">
|
<update id="updateFile">
|
||||||
UPDATE zxjp_close_store_file_info
|
UPDATE zxjp_close_store_file_info
|
||||||
SET urls = #{urls},
|
SET urls = #{urls},
|
||||||
file_status = CASE WHEN file_status = 2 THEN 5 WHEN file_status = 5 THEN 5 ELSE 3 END
|
file_status = CASE WHEN file_status = 2 THEN 5 WHEN file_status = 5 THEN 5 ELSE 3 END,
|
||||||
|
approve_status = NULL
|
||||||
WHERE id = #{id} AND file_status IN (0, 2, 3, 5)
|
WHERE id = #{id} AND file_status IN (0, 2, 3, 5)
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package com.cool.store.dto.xgj;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -14,6 +16,8 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
public class XgjBranchBankDTO {
|
public class XgjBranchBankDTO {
|
||||||
@ApiModelProperty("银行名称")
|
@ApiModelProperty("银行名称")
|
||||||
private String matchBankName;
|
private String matchBankName;
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.cool.store.request.close.refund;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 闭店退款供应商账户Request
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wangff
|
||||||
|
* @since 2025/12/11
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CloseStorePartnerAccountRequest {
|
||||||
|
@ApiModelProperty("账户名称")
|
||||||
|
@NotBlank(message = "账户名称不能为空")
|
||||||
|
private String accountName;
|
||||||
|
|
||||||
|
@ApiModelProperty("银行账号")
|
||||||
|
@NotBlank(message = "银行账号不能为空")
|
||||||
|
private String accountNumber;
|
||||||
|
|
||||||
|
@ApiModelProperty("开户银行,全称")
|
||||||
|
@NotBlank(message = "开户银行不能为空")
|
||||||
|
private String bankName;
|
||||||
|
|
||||||
|
@ApiModelProperty("开户支行号")
|
||||||
|
@NotBlank(message = "开户支行号不能为空")
|
||||||
|
private String bankBranchNo;
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.cool.store.request.close.refund;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.cool.store.common.PageBasicInfo;
|
||||||
|
import com.cool.store.request.xgj.XgjPartnerQueryRequest;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 闭店退款供应商查询Request
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wangff
|
||||||
|
* @since 2025/12/11
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CloseStorePartnerQueryRequest extends PageBasicInfo {
|
||||||
|
@ApiModelProperty("查询开始(创建/更新)时间戳(包含、秒级)")
|
||||||
|
private Long startTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("查询结束时间戳")
|
||||||
|
private Long endTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("往来单位编码")
|
||||||
|
private List<String> bizCodes;
|
||||||
|
|
||||||
|
@ApiModelProperty("分类的业务编码")
|
||||||
|
private String parentBizCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("往来单位编码/名字")
|
||||||
|
private String keyword;
|
||||||
|
|
||||||
|
public XgjPartnerQueryRequest convertXgj() {
|
||||||
|
XgjPartnerQueryRequest request = BeanUtil.toBean(this, XgjPartnerQueryRequest.class);
|
||||||
|
request.setPageNo(this.getPageNum());
|
||||||
|
return request;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.cool.store.request.close.refund;
|
||||||
|
|
||||||
|
import com.cool.store.request.xgj.XgjSavePartnerRequest;
|
||||||
|
import com.cool.store.utils.BeanUtil;
|
||||||
|
import com.cool.store.utils.UUIDUtils;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 闭店退款供应商同步Request
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wangff
|
||||||
|
* @since 2025/12/11
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CloseStorePartnerRequest {
|
||||||
|
@ApiModelProperty("供应商名称")
|
||||||
|
@NotBlank(message = "供应商名称不能为空")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty("所属分类,测试环境填‘测试供应商分类’")
|
||||||
|
@NotBlank(message = "供应商名称不能为空")
|
||||||
|
private String parentName;
|
||||||
|
|
||||||
|
@ApiModelProperty("所属分类编码,测试环境CGYS")
|
||||||
|
@NotBlank(message = "供应商名称不能为空")
|
||||||
|
private String parentBizCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("往来关系")
|
||||||
|
private String partnerType;
|
||||||
|
|
||||||
|
@ApiModelProperty("往来性质")
|
||||||
|
private String partnerProperty;
|
||||||
|
|
||||||
|
@ApiModelProperty("往来单位账户列表")
|
||||||
|
@NotEmpty(message = "往来单位账户列表不能为空")
|
||||||
|
@Valid
|
||||||
|
private List<CloseStorePartnerAccountRequest> accounts;
|
||||||
|
|
||||||
|
public XgjSavePartnerRequest convertXgj() {
|
||||||
|
XgjSavePartnerRequest request = BeanUtil.toBean(this, XgjSavePartnerRequest.class);
|
||||||
|
request.setBusinessCode(UUIDUtils.get32UUID());
|
||||||
|
return request;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.cool.store.request.close.refund;
|
package com.cool.store.request.close.refund;
|
||||||
|
|
||||||
|
import com.cool.store.annotation.DictField;
|
||||||
import com.cool.store.dto.close.CloseStoreMkUserDTO;
|
import com.cool.store.dto.close.CloseStoreMkUserDTO;
|
||||||
import com.cool.store.entity.CloseStoreRefundInfoDO;
|
|
||||||
import com.cool.store.entity.StoreDO;
|
import com.cool.store.entity.StoreDO;
|
||||||
|
import com.cool.store.enums.master.StoreCloseNatureEnum;
|
||||||
import com.cool.store.enums.master.StoreCloseReasonEnum;
|
import com.cool.store.enums.master.StoreCloseReasonEnum;
|
||||||
import com.cool.store.request.xgj.XgjReimburseFeeRequest;
|
import com.cool.store.request.xgj.XgjReimburseFeeRequest;
|
||||||
import com.cool.store.request.xgj.XgjReimburseRequest;
|
import com.cool.store.request.xgj.XgjReimburseRequest;
|
||||||
@@ -12,7 +13,6 @@ import lombok.Data;
|
|||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import javax.validation.constraints.Pattern;
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -39,6 +39,10 @@ public class CloseStoreRefundAddRequest {
|
|||||||
@NotBlank(message = "公司抬头")
|
@NotBlank(message = "公司抬头")
|
||||||
private String invoiceTitle;
|
private String invoiceTitle;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "公司抬头", hidden = true)
|
||||||
|
@DictField(sourceField = "invoiceTitle")
|
||||||
|
private String legalEntity;
|
||||||
|
|
||||||
@ApiModelProperty("提交人每刻工号")
|
@ApiModelProperty("提交人每刻工号")
|
||||||
private String submitterId;
|
private String submitterId;
|
||||||
|
|
||||||
@@ -53,6 +57,10 @@ public class CloseStoreRefundAddRequest {
|
|||||||
@NotBlank(message = "退款类型不能为空")
|
@NotBlank(message = "退款类型不能为空")
|
||||||
private String refundType;
|
private String refundType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "退款类型", hidden = true)
|
||||||
|
@DictField(sourceField = "refundType")
|
||||||
|
private String cf175;
|
||||||
|
|
||||||
@ApiModelProperty("其他说明")
|
@ApiModelProperty("其他说明")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
@@ -110,13 +118,14 @@ public class CloseStoreRefundAddRequest {
|
|||||||
public XgjReimburseRequest convertToXgjRequest(CloseStoreMkUserDTO mkUserDTO, Integer closeReason, StoreDO storeDO) {
|
public XgjReimburseRequest convertToXgjRequest(CloseStoreMkUserDTO mkUserDTO, Integer closeReason, StoreDO storeDO) {
|
||||||
StoreCloseReasonEnum closeReasonEnum = StoreCloseReasonEnum.getByCode(closeReason);
|
StoreCloseReasonEnum closeReasonEnum = StoreCloseReasonEnum.getByCode(closeReason);
|
||||||
return XgjReimburseRequest.builder()
|
return XgjReimburseRequest.builder()
|
||||||
.legalEntity(invoiceTitle)
|
.legalEntity(legalEntity)
|
||||||
.coverUser(mkUserDTO.getJobnumber())
|
.coverUser(mkUserDTO.getJobnumber())
|
||||||
.reimburseName(refundReason)
|
.reimburseName(refundReason)
|
||||||
.cf175(refundType)
|
.cf175(cf175)
|
||||||
.cf176(refundProject)
|
.cf176(refundProject)
|
||||||
.cf333(closeReasonEnum.getCloseNature().getDesc())
|
.cf333(closeReasonEnum.getCloseNature().getDesc())
|
||||||
.cf334(closeReasonEnum.getDesc())
|
.cf334(StoreCloseNatureEnum.REQUIRE_CLOSE.equals(closeReasonEnum.getCloseNature()) ? closeReasonEnum.getDesc() : "")
|
||||||
|
.cf335(StoreCloseNatureEnum.ONESELF_CLOSE.equals(closeReasonEnum.getCloseNature()) ? closeReasonEnum.getDesc() : "")
|
||||||
.cf177(storeDO.getStoreNum())
|
.cf177(storeDO.getStoreNum())
|
||||||
.cf178(storeDO.getStoreName())
|
.cf178(storeDO.getStoreName())
|
||||||
.comments(remark)
|
.comments(remark)
|
||||||
@@ -130,8 +139,8 @@ public class CloseStoreRefundAddRequest {
|
|||||||
.expenseList(Collections.singletonList(
|
.expenseList(Collections.singletonList(
|
||||||
XgjReimburseFeeRequest.builder()
|
XgjReimburseFeeRequest.builder()
|
||||||
.expenseTypeCode(expenseTypeCode)
|
.expenseTypeCode(expenseTypeCode)
|
||||||
.consumeAmount(expectedAmount)
|
.consumeAmount(actualAmount)
|
||||||
.refundAmount(actualAmount)
|
.refundAmount(expectedAmount)
|
||||||
.deductionAmount(deductAmount)
|
.deductionAmount(deductAmount)
|
||||||
.consumeTime(CoolDateUtils.DateFormat(expenseApplyTime, "yyyy-MM-dd HH:mm:ss"))
|
.consumeTime(CoolDateUtils.DateFormat(expenseApplyTime, "yyyy-MM-dd HH:mm:ss"))
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
@@ -25,6 +25,6 @@ public class XgjPartnerAccountRequest {
|
|||||||
@ApiModelProperty("开户支行号")
|
@ApiModelProperty("开户支行号")
|
||||||
private String bankBranchNo;
|
private String bankBranchNo;
|
||||||
|
|
||||||
@ApiModelProperty("账户类型")
|
@ApiModelProperty("账户类型,固定BANK")
|
||||||
private String accountType;
|
private String accountType = "BANK";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ public class XgjReimburseFeeRequest {
|
|||||||
@ApiModelProperty(value = "费用类型编码", required = true)
|
@ApiModelProperty(value = "费用类型编码", required = true)
|
||||||
private String expenseTypeCode;
|
private String expenseTypeCode;
|
||||||
|
|
||||||
@ApiModelProperty(value = "应退金额", required = true)
|
@ApiModelProperty(value = "实退金额", required = true)
|
||||||
private BigDecimal consumeAmount;
|
private BigDecimal consumeAmount;
|
||||||
|
|
||||||
@ApiModelProperty(value = "实退金额", required = true)
|
@ApiModelProperty(value = "应退金额", required = true)
|
||||||
private BigDecimal refundAmount;
|
private BigDecimal refundAmount;
|
||||||
|
|
||||||
@ApiModelProperty(value = "扣款金额", required = true)
|
@ApiModelProperty(value = "扣款金额", required = true)
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ public class XgjSavePartnerRequest {
|
|||||||
@ApiModelProperty("往来单位编码")
|
@ApiModelProperty("往来单位编码")
|
||||||
private String businessCode;
|
private String businessCode;
|
||||||
|
|
||||||
@ApiModelProperty("所属分类")
|
@ApiModelProperty("所属分类,测试环境填‘测试供应商分类’")
|
||||||
private String parentName;
|
private String parentName;
|
||||||
|
|
||||||
@ApiModelProperty("所属分类编码")
|
@ApiModelProperty("所属分类编码,测试环境CGYS")
|
||||||
private String parentBizCode;
|
private String parentBizCode;
|
||||||
|
|
||||||
@ApiModelProperty("往来关系")
|
@ApiModelProperty("往来关系")
|
||||||
|
|||||||
@@ -42,4 +42,7 @@ public class CloseStoreFileDetailMiniVO {
|
|||||||
|
|
||||||
@ApiModelProperty("督导审批意见")
|
@ApiModelProperty("督导审批意见")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty("阶段状态")
|
||||||
|
private Integer shopSubStageStatus;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ public class CloseStoreFileDetailVO {
|
|||||||
@ApiModelProperty("闭店申请id")
|
@ApiModelProperty("闭店申请id")
|
||||||
private Long closeStoreId;
|
private Long closeStoreId;
|
||||||
|
|
||||||
|
@ApiModelProperty("闭店申请单号")
|
||||||
|
private String closeStoreNo;
|
||||||
|
|
||||||
@ApiModelProperty("邮件单号")
|
@ApiModelProperty("邮件单号")
|
||||||
private String mailNumber;
|
private String mailNumber;
|
||||||
|
|
||||||
@@ -51,4 +54,7 @@ public class CloseStoreFileDetailVO {
|
|||||||
|
|
||||||
@ApiModelProperty("督导审批意见")
|
@ApiModelProperty("督导审批意见")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty("阶段状态")
|
||||||
|
private Integer shopSubStageStatus;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.cool.store.vo.close.file;
|
package com.cool.store.vo.close.file;
|
||||||
|
|
||||||
|
import com.cool.store.enums.close.FileStatusEnum;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -31,9 +32,19 @@ public class CloseStoreFileInfoVO {
|
|||||||
@ApiModelProperty("材料状态 0-未上传 1-合格 2-不合格 3-已上传 4-审批中 5-已修改")
|
@ApiModelProperty("材料状态 0-未上传 1-合格 2-不合格 3-已上传 4-审批中 5-已修改")
|
||||||
private Integer fileStatus;
|
private Integer fileStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty("材料状态")
|
||||||
|
private String fileStatusName;
|
||||||
|
|
||||||
@ApiModelProperty("审批意见")
|
@ApiModelProperty("审批意见")
|
||||||
private String approveOpinion;
|
private String approveOpinion;
|
||||||
|
|
||||||
|
@ApiModelProperty("模板链接")
|
||||||
|
private String templateUrl;
|
||||||
|
|
||||||
@ApiModelProperty("图片列表")
|
@ApiModelProperty("图片列表")
|
||||||
private String urls;
|
private String urls;
|
||||||
|
|
||||||
|
public String getFileStatusName() {
|
||||||
|
return FileStatusEnum.getDescByStatus(this.fileStatus);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.cool.store.vo.close.refund;
|
package com.cool.store.vo.close.refund;
|
||||||
|
|
||||||
|
import com.cool.store.enums.close.RefundPayStatusEnum;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -19,27 +20,25 @@ public class CloseStoreRefundSimpleVO {
|
|||||||
@ApiModelProperty("id")
|
@ApiModelProperty("id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty("退款类型(闭店子阶段code)")
|
|
||||||
private Integer type;
|
|
||||||
|
|
||||||
@ApiModelProperty("闭店申请id")
|
@ApiModelProperty("闭店申请id")
|
||||||
private Long closeStoreId;
|
private Long closeStoreId;
|
||||||
|
|
||||||
@ApiModelProperty("退款申请单号")
|
@ApiModelProperty("退款申请单号")
|
||||||
private String refundNo;
|
private String refundNo;
|
||||||
|
|
||||||
@ApiModelProperty("每刻退款单号")
|
|
||||||
private String refundOrderNo;
|
|
||||||
|
|
||||||
@ApiModelProperty("退款项目")
|
|
||||||
private String refundProject;
|
|
||||||
|
|
||||||
@ApiModelProperty("退款状态")
|
@ApiModelProperty("退款状态")
|
||||||
private String refundStatus;
|
private String refundStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty("退款状态名称")
|
||||||
|
private String refundStatusName;
|
||||||
|
|
||||||
@ApiModelProperty("退款时间")
|
@ApiModelProperty("退款时间")
|
||||||
private Date refundTime;
|
private Date refundTime;
|
||||||
|
|
||||||
@ApiModelProperty("应退金额")
|
@ApiModelProperty("退款金额")
|
||||||
private BigDecimal expectedAmount;
|
private BigDecimal actualAmount;
|
||||||
|
|
||||||
|
public String getRefundStatusName() {
|
||||||
|
return RefundPayStatusEnum.getDescByStatus(this.refundStatus);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ public class CloseStoreSimpleVO {
|
|||||||
@ApiModelProperty("门店id")
|
@ApiModelProperty("门店id")
|
||||||
private String storeId;
|
private String storeId;
|
||||||
|
|
||||||
|
@ApiModelProperty("闭店申请单号")
|
||||||
|
private String closeStoreNo;
|
||||||
|
|
||||||
@ApiModelProperty("门店名称")
|
@ApiModelProperty("门店名称")
|
||||||
private String storeName;
|
private String storeName;
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package com.cool.store.service.close;
|
package com.cool.store.service.close;
|
||||||
|
|
||||||
import com.cool.store.dto.close.CloseStoreMkUserDTO;
|
import com.cool.store.dto.close.CloseStoreMkUserDTO;
|
||||||
|
import com.cool.store.dto.xgj.XgjBranchBankDTO;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundAddRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundAddRequest;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundQueryRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundQueryRequest;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundSkipRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundSkipRequest;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundUpdateRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundUpdateRequest;
|
||||||
|
import com.cool.store.dto.xgj.XgjPartnerPageDTO;
|
||||||
|
import com.cool.store.entity.CloseStoreRefundInfoDO;
|
||||||
|
import com.cool.store.request.close.refund.*;
|
||||||
|
import com.cool.store.request.xgj.XgjBankQueryRequest;
|
||||||
import com.cool.store.vo.close.refund.CloseStoreRefundDetailVO;
|
import com.cool.store.vo.close.refund.CloseStoreRefundDetailVO;
|
||||||
import com.cool.store.vo.close.refund.CloseStoreRefundListVO;
|
import com.cool.store.vo.close.refund.CloseStoreRefundListVO;
|
||||||
import com.cool.store.vo.close.refund.CloseStoreRefundSimpleVO;
|
import com.cool.store.vo.close.refund.CloseStoreRefundSimpleVO;
|
||||||
@@ -55,10 +60,10 @@ public interface CloseStoreRefundService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询退款简单信息列表
|
* 查询退款简单信息列表
|
||||||
* @param closeStoreId 闭店申请id
|
* @param request request
|
||||||
* @return 闭店退款简单信息VO列表
|
* @return 闭店退款简单信息VO列表
|
||||||
*/
|
*/
|
||||||
List<CloseStoreRefundSimpleVO> getRefundSimpleList(Long closeStoreId);
|
PageInfo<CloseStoreRefundSimpleVO> getRefundSimpleList(CloseStoreRefundQueryRequest request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 跳过流程
|
* 跳过流程
|
||||||
@@ -79,4 +84,30 @@ public interface CloseStoreRefundService {
|
|||||||
* @return 是否成功
|
* @return 是否成功
|
||||||
*/
|
*/
|
||||||
Boolean refreshRefundOrderStatus(CloseStoreRefundQueryRequest request);
|
Boolean refreshRefundOrderStatus(CloseStoreRefundQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取订单状态
|
||||||
|
*/
|
||||||
|
void refreshRefund(List<CloseStoreRefundInfoDO> list, List<CloseStoreRefundInfoDO> updateList, List<CloseStoreRefundInfoDO> completeList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步供应商信息
|
||||||
|
* @param request 闭店退款供应商同步Request
|
||||||
|
* @return 是否成功
|
||||||
|
*/
|
||||||
|
Boolean savePartner(CloseStorePartnerRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商查询
|
||||||
|
* @param request 闭店退款供应商查询Request
|
||||||
|
* @return 新管家分页DTO
|
||||||
|
*/
|
||||||
|
XgjPartnerPageDTO queryPartnerPage(CloseStorePartnerQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 银行支行
|
||||||
|
* @param request 支行查询Request
|
||||||
|
* @return 支行列表
|
||||||
|
*/
|
||||||
|
List<XgjBranchBankDTO> queryBranchBankList(XgjBankQueryRequest request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,11 @@ import com.cool.store.constants.CommonConstants;
|
|||||||
import com.cool.store.constants.RedisConstant;
|
import com.cool.store.constants.RedisConstant;
|
||||||
import com.cool.store.dao.CloseStoreFileDetailDAO;
|
import com.cool.store.dao.CloseStoreFileDetailDAO;
|
||||||
import com.cool.store.dao.CloseStoreFileInfoDAO;
|
import com.cool.store.dao.CloseStoreFileInfoDAO;
|
||||||
|
import com.cool.store.dao.CloseStoreInfoDAO;
|
||||||
import com.cool.store.dao.CloseStoreStageInfoDAO;
|
import com.cool.store.dao.CloseStoreStageInfoDAO;
|
||||||
import com.cool.store.entity.CloseStoreFileInfoDO;
|
import com.cool.store.entity.CloseStoreFileInfoDO;
|
||||||
|
import com.cool.store.entity.CloseStoreInfoDO;
|
||||||
|
import com.cool.store.entity.CloseStoreStageInfoDO;
|
||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
import com.cool.store.enums.close.*;
|
import com.cool.store.enums.close.*;
|
||||||
import com.cool.store.exception.ServiceException;
|
import com.cool.store.exception.ServiceException;
|
||||||
@@ -48,6 +51,8 @@ public class CloseStoreFileServiceImpl implements CloseStoreFileService {
|
|||||||
private final CloseStoreStageInfoDAO closeStoreStageInfoDAO;
|
private final CloseStoreStageInfoDAO closeStoreStageInfoDAO;
|
||||||
private final CloseStoreService closeStoreService;
|
private final CloseStoreService closeStoreService;
|
||||||
private final RedisUtilPool redisUtilPool;
|
private final RedisUtilPool redisUtilPool;
|
||||||
|
private final CloseStoreInfoDAO closeStoreInfoDAO;
|
||||||
|
|
||||||
|
|
||||||
private static final CloseStoreStageEnum STAGE = CloseStoreStageEnum.CLOSE_STORE_STAGE_1;
|
private static final CloseStoreStageEnum STAGE = CloseStoreStageEnum.CLOSE_STORE_STAGE_1;
|
||||||
private static final CloseStoreSubStageEnum SUB_STAGE = CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10;
|
private static final CloseStoreSubStageEnum SUB_STAGE = CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10;
|
||||||
@@ -146,24 +151,29 @@ public class CloseStoreFileServiceImpl implements CloseStoreFileService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CloseStoreFileDetailVO getFileDetail(Long closeStoreId) {
|
public CloseStoreFileDetailVO getFileDetail(Long closeStoreId) {
|
||||||
|
CloseStoreInfoDO closeStoreInfoDO = closeStoreInfoDAO.getById(closeStoreId);
|
||||||
|
if (Objects.isNull(closeStoreInfoDO)) {
|
||||||
|
throw new ServiceException(ErrorCodeEnum.CLOSE_STORE_INFO_NOT_EXIST);
|
||||||
|
}
|
||||||
CloseStoreFileDetailDO fileDetailDO = closeStoreFileDetailDAO.getByCloseStoreId(closeStoreId);
|
CloseStoreFileDetailDO fileDetailDO = closeStoreFileDetailDAO.getByCloseStoreId(closeStoreId);
|
||||||
CloseStoreFileDetailVO detailVO = BeanUtil.toBean(fileDetailDO, CloseStoreFileDetailVO.class);
|
CloseStoreFileDetailVO detailVO = BeanUtil.toBean(fileDetailDO, CloseStoreFileDetailVO.class);
|
||||||
|
detailVO.setCloseStoreNo(closeStoreInfoDO.getCloseStoreNo());
|
||||||
|
|
||||||
List<CloseStoreFileInfoDO> fileList = closeStoreFileInfoDAO.getByCloseStoreId(closeStoreId);
|
List<CloseStoreFileInfoDO> fileList = closeStoreFileInfoDAO.getByCloseStoreId(closeStoreId);
|
||||||
List<CloseStoreFileInfoVO> fileVOList = BeanUtil.toList(fileList, CloseStoreFileInfoVO.class);
|
List<CloseStoreFileInfoVO> fileVOList = BeanUtil.toList(fileList, CloseStoreFileInfoVO.class);
|
||||||
detailVO.setFileList(fileVOList);
|
detailVO.setFileList(fileVOList);
|
||||||
|
CloseStoreStageInfoDO stageInfo = closeStoreStageInfoDAO.getByStage(closeStoreId, STAGE.getCloseStoreStage(), SUB_STAGE.getCloseStoreSubStage());
|
||||||
|
detailVO.setShopSubStageStatus(stageInfo.getShopSubStageStatus());
|
||||||
|
if (CollectionUtils.isNotEmpty(detailVO.getFileList())) {
|
||||||
|
detailVO.getFileList().forEach(v -> v.setTemplateUrl(redisUtilPool.hashGet(RedisConstant.CLOSE_STORE_FILE_TEMPLATE, v.getFileCode())));
|
||||||
|
}
|
||||||
return detailVO;
|
return detailVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CloseStoreFileDetailMiniVO getMiniFileDetail(Long closeStoreId) {
|
public CloseStoreFileDetailMiniVO getMiniFileDetail(Long closeStoreId) {
|
||||||
CloseStoreFileDetailVO fileDetail = getFileDetail(closeStoreId);
|
CloseStoreFileDetailVO fileDetail = getFileDetail(closeStoreId);
|
||||||
CloseStoreFileDetailMiniVO result = BeanUtil.toBean(fileDetail, CloseStoreFileDetailMiniVO.class);
|
return BeanUtil.toBean(fileDetail, CloseStoreFileDetailMiniVO.class);
|
||||||
if (CollectionUtils.isNotEmpty(result.getFileList())) {
|
|
||||||
result.getFileList().forEach(v -> v.setTemplateUrl(redisUtilPool.hashGet(RedisConstant.CLOSE_STORE_FILE_TEMPLATE, v.getFileCode())));
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package com.cool.store.service.close.impl;
|
package com.cool.store.service.close.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollStreamUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cool.store.constants.RedisConstant;
|
import com.cool.store.constants.RedisConstant;
|
||||||
import com.cool.store.context.CurrentUserHolder;
|
import com.cool.store.context.CurrentUserHolder;
|
||||||
import com.cool.store.dao.*;
|
import com.cool.store.dao.*;
|
||||||
import com.cool.store.dto.close.CloseStoreMkUserDTO;
|
import com.cool.store.dto.close.CloseStoreMkUserDTO;
|
||||||
|
import com.cool.store.dto.wallet.BankListDTO;
|
||||||
|
import com.cool.store.dto.xgj.XgjBranchBankDTO;
|
||||||
|
import com.cool.store.dto.xgj.XgjPartnerPageDTO;
|
||||||
import com.cool.store.dto.xgj.XgjPayResultDTO;
|
import com.cool.store.dto.xgj.XgjPayResultDTO;
|
||||||
import com.cool.store.entity.CloseStoreInfoDO;
|
import com.cool.store.entity.CloseStoreInfoDO;
|
||||||
import com.cool.store.entity.CloseStoreRefundInfoDO;
|
import com.cool.store.entity.CloseStoreRefundInfoDO;
|
||||||
@@ -20,13 +24,17 @@ import com.cool.store.request.close.refund.CloseStoreRefundAddRequest;
|
|||||||
import com.cool.store.request.close.refund.CloseStoreRefundQueryRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundQueryRequest;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundSkipRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundSkipRequest;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundUpdateRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundUpdateRequest;
|
||||||
import com.cool.store.request.xgj.XgjPaymentRequest;
|
import com.cool.store.request.close.refund.*;
|
||||||
import com.cool.store.request.xgj.XgjReimburseRequest;
|
import com.cool.store.request.wallet.GetBankRequest;
|
||||||
|
import com.cool.store.request.wallet.WalletBasicPageInfo;
|
||||||
|
import com.cool.store.request.xgj.*;
|
||||||
import com.cool.store.service.ThirdXgjService;
|
import com.cool.store.service.ThirdXgjService;
|
||||||
import com.cool.store.service.close.CloseStoreRefundService;
|
import com.cool.store.service.close.CloseStoreRefundService;
|
||||||
import com.cool.store.service.close.CloseStoreService;
|
import com.cool.store.service.close.CloseStoreService;
|
||||||
import com.cool.store.service.dict.impl.DictService;
|
import com.cool.store.service.dict.impl.DictService;
|
||||||
|
import com.cool.store.service.wallet.WalletApiService;
|
||||||
import com.cool.store.utils.BeanUtil;
|
import com.cool.store.utils.BeanUtil;
|
||||||
|
import com.cool.store.utils.CommonContextUtil;
|
||||||
import com.cool.store.utils.CoolDateUtils;
|
import com.cool.store.utils.CoolDateUtils;
|
||||||
import com.cool.store.utils.RedisUtilPool;
|
import com.cool.store.utils.RedisUtilPool;
|
||||||
import com.cool.store.vo.close.refund.CloseStoreRefundDetailVO;
|
import com.cool.store.vo.close.refund.CloseStoreRefundDetailVO;
|
||||||
@@ -35,15 +43,13 @@ import com.cool.store.vo.close.refund.CloseStoreRefundSimpleVO;
|
|||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -55,6 +61,7 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
public class CloseStoreRefundServiceImpl implements CloseStoreRefundService {
|
public class CloseStoreRefundServiceImpl implements CloseStoreRefundService {
|
||||||
private final CloseStoreRefundInfoDAO closeStoreRefundInfoDAO;
|
private final CloseStoreRefundInfoDAO closeStoreRefundInfoDAO;
|
||||||
private final CloseStoreInfoDAO closeStoreInfoDAO;
|
private final CloseStoreInfoDAO closeStoreInfoDAO;
|
||||||
@@ -65,6 +72,7 @@ public class CloseStoreRefundServiceImpl implements CloseStoreRefundService {
|
|||||||
private final ThirdXgjService thirdXgjService;
|
private final ThirdXgjService thirdXgjService;
|
||||||
private final EnterpriseUserDAO enterpriseUserDAO;
|
private final EnterpriseUserDAO enterpriseUserDAO;
|
||||||
private final DictService dictService;
|
private final DictService dictService;
|
||||||
|
private final WalletApiService walletApiService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean addRefund(CloseStoreRefundAddRequest request) {
|
public Boolean addRefund(CloseStoreRefundAddRequest request) {
|
||||||
@@ -99,6 +107,7 @@ public class CloseStoreRefundServiceImpl implements CloseStoreRefundService {
|
|||||||
CloseStoreRefundInfoDO refundInfoDO = BeanUtil.toBean(request, CloseStoreRefundInfoDO.class);
|
CloseStoreRefundInfoDO refundInfoDO = BeanUtil.toBean(request, CloseStoreRefundInfoDO.class);
|
||||||
refundInfoDO.setRefundNo(generateCloseStoreNo());
|
refundInfoDO.setRefundNo(generateCloseStoreNo());
|
||||||
// 提交新管家
|
// 提交新管家
|
||||||
|
dictService.fillDictField(request);
|
||||||
XgjReimburseRequest xgjReimburseRequest = request.convertToXgjRequest(mkUser, closeStoreInfo.getCloseReason(), storeDO);
|
XgjReimburseRequest xgjReimburseRequest = request.convertToXgjRequest(mkUser, closeStoreInfo.getCloseReason(), storeDO);
|
||||||
String orderNo = thirdXgjService.reimburse(xgjReimburseRequest);
|
String orderNo = thirdXgjService.reimburse(xgjReimburseRequest);
|
||||||
refundInfoDO.setRefundOrderNo(orderNo);
|
refundInfoDO.setRefundOrderNo(orderNo);
|
||||||
@@ -134,6 +143,9 @@ public class CloseStoreRefundServiceImpl implements CloseStoreRefundService {
|
|||||||
@Override
|
@Override
|
||||||
public CloseStoreMkUserDTO getCurrentMkUser() {
|
public CloseStoreMkUserDTO getCurrentMkUser() {
|
||||||
EnterpriseUserDO user = enterpriseUserDAO.getUserInfoById(CurrentUserHolder.getUserId());
|
EnterpriseUserDO user = enterpriseUserDAO.getUserInfoById(CurrentUserHolder.getUserId());
|
||||||
|
if (StringUtils.isBlank(user.getJobnumber())) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
String mkUserStr = redisUtilPool.hashGet(RedisConstant.MK_USER_MAPPING, user.getJobnumber());
|
String mkUserStr = redisUtilPool.hashGet(RedisConstant.MK_USER_MAPPING, user.getJobnumber());
|
||||||
if (StringUtils.isNotBlank(mkUserStr)) {
|
if (StringUtils.isNotBlank(mkUserStr)) {
|
||||||
return JSONObject.parseObject(mkUserStr, CloseStoreMkUserDTO.class);
|
return JSONObject.parseObject(mkUserStr, CloseStoreMkUserDTO.class);
|
||||||
@@ -172,9 +184,11 @@ public class CloseStoreRefundServiceImpl implements CloseStoreRefundService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<CloseStoreRefundSimpleVO> getRefundSimpleList(Long closeStoreId) {
|
public PageInfo<CloseStoreRefundSimpleVO> getRefundSimpleList(CloseStoreRefundQueryRequest request) {
|
||||||
List<CloseStoreRefundInfoDO> list = closeStoreRefundInfoDAO.getListByCloseStoreId(closeStoreId, null);
|
PageHelper.startPage(request.getPageNum(), request.getPageSize());
|
||||||
return BeanUtil.toList(list, CloseStoreRefundSimpleVO.class);
|
List<CloseStoreRefundInfoDO> list = closeStoreRefundInfoDAO.getListByCloseStoreId(request.getCloseStoreId(), request.getType());
|
||||||
|
PageInfo<CloseStoreRefundInfoDO> page = new PageInfo<>(list);
|
||||||
|
return BeanUtil.toPage(page, CloseStoreRefundSimpleVO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -197,25 +211,78 @@ public class CloseStoreRefundServiceImpl implements CloseStoreRefundService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public Boolean refreshRefundOrderStatus(CloseStoreRefundQueryRequest request) {
|
public Boolean refreshRefundOrderStatus(CloseStoreRefundQueryRequest request) {
|
||||||
List<CloseStoreRefundInfoDO> list = closeStoreRefundInfoDAO.getListByCloseStoreId(request.getCloseStoreId(), request.getType());
|
List<CloseStoreRefundInfoDO> list = closeStoreRefundInfoDAO.getListByCloseStoreId(request.getCloseStoreId(), request.getType());
|
||||||
List<CloseStoreRefundInfoDO> updateList = new ArrayList<>();
|
List<CloseStoreRefundInfoDO> updateList = new ArrayList<>();
|
||||||
for (CloseStoreRefundInfoDO refundInfoDO : list) {
|
List<CloseStoreRefundInfoDO> completeList = new ArrayList<>();
|
||||||
if (StringUtils.isNotBlank(refundInfoDO.getRefundOrderNo())) {
|
refreshRefund(list, updateList, completeList);
|
||||||
XgjPayResultDTO xgjPayResultDTO = thirdXgjService.queryOrderStatus(new XgjPaymentRequest(refundInfoDO.getRefundOrderNo()));
|
if (CollectionUtils.isNotEmpty(updateList)) {
|
||||||
String xgjStatus = xgjPayResultDTO.getStatus();
|
closeStoreRefundInfoDAO.updateRefundStatusBatchById(updateList);
|
||||||
String refundStatus = XgjRefundPayStatusEnum.REJECTED.getStatus().equals(xgjStatus) ? RefundPayStatusEnum.APPROVING.getStatus() : xgjStatus;
|
}
|
||||||
if (!refundInfoDO.getRefundStatus().equals(refundStatus)) {
|
if (CollectionUtils.isNotEmpty(completeList)) {
|
||||||
updateList.add(CloseStoreRefundInfoDO.builder().id(refundInfoDO.getId()).refundStatus(refundStatus).build());
|
for (CloseStoreRefundInfoDO refundInfoDO : completeList) {
|
||||||
}
|
completeRefund(refundInfoDO.getId(), refundInfoDO.getRefundTime());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isNotEmpty(updateList)) {
|
|
||||||
closeStoreRefundInfoDAO.updateRefundStatusBatchById(list);
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void refreshRefund(List<CloseStoreRefundInfoDO> list, List<CloseStoreRefundInfoDO> updateList, List<CloseStoreRefundInfoDO> completeList) {
|
||||||
|
for (CloseStoreRefundInfoDO refundInfoDO : list) {
|
||||||
|
try {
|
||||||
|
if (com.cool.store.utils.poi.StringUtils.isNotBlank(refundInfoDO.getRefundOrderNo())) {
|
||||||
|
XgjPayResultDTO xgjPayResultDTO = thirdXgjService.queryOrderStatus(new XgjPaymentRequest(refundInfoDO.getRefundOrderNo()));
|
||||||
|
String xgjStatus = xgjPayResultDTO.getStatus();
|
||||||
|
String refundStatus = XgjRefundPayStatusEnum.REJECTED.getStatus().equals(xgjStatus) ? RefundPayStatusEnum.APPROVING.getStatus() : xgjStatus;
|
||||||
|
if (!refundInfoDO.getRefundStatus().equals(refundStatus)) {
|
||||||
|
CloseStoreRefundInfoDO update = CloseStoreRefundInfoDO.builder()
|
||||||
|
.id(refundInfoDO.getId())
|
||||||
|
.refundStatus(refundStatus)
|
||||||
|
.refundTime(CoolDateUtils.parseDate(xgjPayResultDTO.getPaySuccessTime(), "yyyy-MM-dd HH:mm:ss"))
|
||||||
|
.build();
|
||||||
|
if (refundStatus.equals(RefundPayStatusEnum.PAY_SUCCESS.getStatus())) {
|
||||||
|
completeList.add(update);
|
||||||
|
} else {
|
||||||
|
updateList.add(update);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.info("退款状态查询失败, refundId:{}", refundInfoDO.getId());
|
||||||
|
log.info("退款状态查询失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean savePartner(CloseStorePartnerRequest request) {
|
||||||
|
XgjSavePartnerRequest xgjSavePartnerRequest = request.convertXgj();
|
||||||
|
thirdXgjService.savePartner(xgjSavePartnerRequest);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public XgjPartnerPageDTO queryPartnerPage(CloseStorePartnerQueryRequest request) {
|
||||||
|
XgjPartnerQueryRequest xgjPartnerQueryRequest = request.convertXgj();
|
||||||
|
return thirdXgjService.queryPartnerPage(xgjPartnerQueryRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<XgjBranchBankDTO> queryBranchBankList(XgjBankQueryRequest request) {
|
||||||
|
String profileName = CommonContextUtil.getProfileName();
|
||||||
|
if (Arrays.asList("test", "ab", "local").contains(profileName)) {
|
||||||
|
GetBankRequest bankRequest = new GetBankRequest();
|
||||||
|
bankRequest.setPage(new WalletBasicPageInfo(1, 5));
|
||||||
|
bankRequest.setKeyword(request.getOpenBankName());
|
||||||
|
BankListDTO bankList = walletApiService.getBankList(bankRequest);
|
||||||
|
return CollStreamUtil.toList(bankList.getPageData(), v -> new XgjBranchBankDTO(v.getBranchName(), v.getBranchCode()));
|
||||||
|
} else {
|
||||||
|
return thirdXgjService.queryBranchBankList(request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成退款申请单号
|
* 生成退款申请单号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import com.cool.store.exception.ServiceException;
|
|||||||
import com.cool.store.mq.producer.SimpleMessageService;
|
import com.cool.store.mq.producer.SimpleMessageService;
|
||||||
import com.cool.store.request.close.store.*;
|
import com.cool.store.request.close.store.*;
|
||||||
import com.cool.store.response.AuditInfoResponse;
|
import com.cool.store.response.AuditInfoResponse;
|
||||||
|
import com.cool.store.service.SysRoleService;
|
||||||
import com.cool.store.service.UserAuthMappingService;
|
import com.cool.store.service.UserAuthMappingService;
|
||||||
import com.cool.store.service.close.CloseStoreService;
|
import com.cool.store.service.close.CloseStoreService;
|
||||||
import com.cool.store.utils.BeanUtil;
|
import com.cool.store.utils.BeanUtil;
|
||||||
@@ -63,6 +64,7 @@ public class CloseStoreServiceImpl implements CloseStoreService {
|
|||||||
private final SimpleMessageService simpleMessageService;
|
private final SimpleMessageService simpleMessageService;
|
||||||
private final CloseStoreRefundInfoDAO closeStoreRefundInfoDAO;
|
private final CloseStoreRefundInfoDAO closeStoreRefundInfoDAO;
|
||||||
private final EnterpriseUserDAO enterpriseUserDAO;
|
private final EnterpriseUserDAO enterpriseUserDAO;
|
||||||
|
private final SysRoleService sysRoleService;
|
||||||
|
|
||||||
@Value("${mybatis.configuration.variables.enterpriseId}")
|
@Value("${mybatis.configuration.variables.enterpriseId}")
|
||||||
private String enterpriseId;
|
private String enterpriseId;
|
||||||
@@ -79,6 +81,9 @@ public class CloseStoreServiceImpl implements CloseStoreService {
|
|||||||
if (CommonConstants.CLOSED.equals(store.getStoreStatus())){
|
if (CommonConstants.CLOSED.equals(store.getStoreStatus())){
|
||||||
throw new ServiceException(ErrorCodeEnum.STORE_NOT_OPEN);
|
throw new ServiceException(ErrorCodeEnum.STORE_NOT_OPEN);
|
||||||
}
|
}
|
||||||
|
if (!StoreStatusEnum.OPEN.getValue().equals(store.getStoreStatus())) {
|
||||||
|
throw new ServiceException(ErrorCodeEnum.CLOSE_STORE_ONLY_SUPPORT_OPEN);
|
||||||
|
}
|
||||||
// 校验是否有正在进行的申请
|
// 校验是否有正在进行的申请
|
||||||
if (closeStoreInfoDAO.existOngoingRecord(request.getStoreId())) {
|
if (closeStoreInfoDAO.existOngoingRecord(request.getStoreId())) {
|
||||||
throw new ServiceException(ErrorCodeEnum.CLOSE_STORE_EXIST_ONGOING_RECORD);
|
throw new ServiceException(ErrorCodeEnum.CLOSE_STORE_EXIST_ONGOING_RECORD);
|
||||||
@@ -262,9 +267,11 @@ public class CloseStoreServiceImpl implements CloseStoreService {
|
|||||||
fillCloseStoreRecord(request, pageInfo.getList());
|
fillCloseStoreRecord(request, pageInfo.getList());
|
||||||
List<Long> closeStoreIds = CollStreamUtil.toList(pageInfo.getList(), CloseStoreInfoListVO::getCloseStoreId);
|
List<Long> closeStoreIds = CollStreamUtil.toList(pageInfo.getList(), CloseStoreInfoListVO::getCloseStoreId);
|
||||||
Map<Long, Long> completeCountMap = closeStoreStageInfoDAO.getCompleteCountMap(closeStoreIds);
|
Map<Long, Long> completeCountMap = closeStoreStageInfoDAO.getCompleteCountMap(closeStoreIds);
|
||||||
|
Map<Long, Long> auditIdMap = closeStoreAuditRecordDAO.getPendingAuditIdByCloseStoreIds(closeStoreIds);
|
||||||
pageInfo.getList().forEach(v -> {
|
pageInfo.getList().forEach(v -> {
|
||||||
v.setCompleteProcessNum(completeCountMap.getOrDefault(v.getCloseStoreId(), 0L).intValue());
|
v.setCompleteProcessNum(completeCountMap.getOrDefault(v.getCloseStoreId(), 0L).intValue());
|
||||||
v.setTotalProcessNum(CloseStoreSubStageEnum.values().length);
|
v.setTotalProcessNum(CloseStoreSubStageEnum.values().length);
|
||||||
|
v.setAuditRecordId(auditIdMap.get(v.getCloseStoreId()));
|
||||||
});
|
});
|
||||||
return pageInfo;
|
return pageInfo;
|
||||||
}
|
}
|
||||||
@@ -592,6 +599,9 @@ public class CloseStoreServiceImpl implements CloseStoreService {
|
|||||||
}
|
}
|
||||||
// 是否有审批权限
|
// 是否有审批权限
|
||||||
String currentUserId = CurrentUserHolder.getUserId();
|
String currentUserId = CurrentUserHolder.getUserId();
|
||||||
|
if (sysRoleService.checkIsAdmin(currentUserId)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (StringUtils.isBlank(auditRecordDO.getHandlerUserIds())) {
|
if (StringUtils.isBlank(auditRecordDO.getHandlerUserIds())) {
|
||||||
throw new ServiceException(ErrorCodeEnum.NO_APPROVAL_AUTHORITY);
|
throw new ServiceException(ErrorCodeEnum.NO_APPROVAL_AUTHORITY);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,12 @@ import com.cool.store.request.close.refund.CloseStoreRefundAddRequest;
|
|||||||
import com.cool.store.request.close.refund.CloseStoreRefundQueryRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundQueryRequest;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundSkipRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundSkipRequest;
|
||||||
import com.cool.store.request.close.refund.CloseStoreRefundUpdateRequest;
|
import com.cool.store.request.close.refund.CloseStoreRefundUpdateRequest;
|
||||||
|
import com.cool.store.dto.xgj.XgjBranchBankDTO;
|
||||||
|
import com.cool.store.dto.xgj.XgjPartnerPageDTO;
|
||||||
|
import com.cool.store.request.close.refund.*;
|
||||||
|
import com.cool.store.request.xgj.XgjBankQueryRequest;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
|
import com.cool.store.service.ThirdXgjService;
|
||||||
import com.cool.store.service.close.CloseStoreRefundService;
|
import com.cool.store.service.close.CloseStoreRefundService;
|
||||||
import com.cool.store.vo.close.refund.CloseStoreRefundDetailVO;
|
import com.cool.store.vo.close.refund.CloseStoreRefundDetailVO;
|
||||||
import com.cool.store.vo.close.refund.CloseStoreRefundListVO;
|
import com.cool.store.vo.close.refund.CloseStoreRefundListVO;
|
||||||
@@ -19,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -35,6 +41,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
@Validated
|
@Validated
|
||||||
public class CloseStoreRefundController {
|
public class CloseStoreRefundController {
|
||||||
private final CloseStoreRefundService closeStoreRefundService;
|
private final CloseStoreRefundService closeStoreRefundService;
|
||||||
|
private final ThirdXgjService thirdXgjService;
|
||||||
|
|
||||||
@ApiOperation("获取当前用户的每刻用户信息")
|
@ApiOperation("获取当前用户的每刻用户信息")
|
||||||
@GetMapping("/getCurrentMkUser")
|
@GetMapping("/getCurrentMkUser")
|
||||||
@@ -79,4 +86,22 @@ public class CloseStoreRefundController {
|
|||||||
public ResponseResult<Boolean> refresh(@RequestBody @Validated CloseStoreRefundQueryRequest request) {
|
public ResponseResult<Boolean> refresh(@RequestBody @Validated CloseStoreRefundQueryRequest request) {
|
||||||
return ResponseResult.success(closeStoreRefundService.refreshRefundOrderStatus(request));
|
return ResponseResult.success(closeStoreRefundService.refreshRefundOrderStatus(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("同步供应商")
|
||||||
|
@PostMapping("/savePartner")
|
||||||
|
public ResponseResult<Boolean> savePartner(@RequestBody @Validated CloseStorePartnerRequest request) {
|
||||||
|
return ResponseResult.success(closeStoreRefundService.savePartner(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("供应商列表")
|
||||||
|
@PostMapping("/queryPartnerPage")
|
||||||
|
public ResponseResult<XgjPartnerPageDTO> queryPartnerPage(@RequestBody CloseStorePartnerQueryRequest request) {
|
||||||
|
return ResponseResult.success(closeStoreRefundService.queryPartnerPage(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("支行列表")
|
||||||
|
@PostMapping("/queryBranchBankList")
|
||||||
|
public ResponseResult<List<XgjBranchBankDTO>> queryBranchBankList(@RequestBody XgjBankQueryRequest request) {
|
||||||
|
return ResponseResult.success(closeStoreRefundService.queryBranchBankList(request));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,4 +75,11 @@ public class MiniCloseStoreController {
|
|||||||
public ResponseResult<Boolean> cancelCloseStore(@RequestBody @Valid CloseStoreCancelRequest request) {
|
public ResponseResult<Boolean> cancelCloseStore(@RequestBody @Valid CloseStoreCancelRequest request) {
|
||||||
return ResponseResult.success(closeStoreService.cancelApply(request.getCloseStoreId()));
|
return ResponseResult.success(closeStoreService.cancelApply(request.getCloseStoreId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("根据闭店申请id获取闭店申请简单信息")
|
||||||
|
@GetMapping("/simple")
|
||||||
|
@ApiImplicitParam(name = "closeStoreId", value = "闭店申请id", required = true, dataType = "Long", paramType = "query")
|
||||||
|
public ResponseResult<CloseStoreSimpleVO> getCloseStoreSimple(@NotNull(message = "闭店申请id不能为空") Long closeStoreId) {
|
||||||
|
return ResponseResult.success(closeStoreService.getCloseStoreSimpleInfo(closeStoreId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.cool.store.controller.webc;
|
package com.cool.store.controller.webc;
|
||||||
|
|
||||||
|
import com.cool.store.request.close.refund.CloseStoreRefundQueryRequest;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
import com.cool.store.service.close.CloseStoreRefundService;
|
import com.cool.store.service.close.CloseStoreRefundService;
|
||||||
import com.cool.store.vo.close.refund.CloseStoreRefundSimpleVO;
|
import com.cool.store.vo.close.refund.CloseStoreRefundSimpleVO;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -32,7 +34,7 @@ public class MiniCloseStoreRefundController {
|
|||||||
@ApiOperation("退款信息列表")
|
@ApiOperation("退款信息列表")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@ApiImplicitParam(name = "closeStoreId", value = "闭店申请id", required = true, dataType = "Long")
|
@ApiImplicitParam(name = "closeStoreId", value = "闭店申请id", required = true, dataType = "Long")
|
||||||
public ResponseResult<List<CloseStoreRefundSimpleVO>> list(@NotNull(message = "闭店申请id不能为空") Long closeStoreId) {
|
public ResponseResult<PageInfo<CloseStoreRefundSimpleVO>> list(@Validated CloseStoreRefundQueryRequest request) {
|
||||||
return ResponseResult.success(closeStoreRefundService.getRefundSimpleList(closeStoreId));
|
return ResponseResult.success(closeStoreRefundService.getRefundSimpleList(request));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -588,30 +588,7 @@ public class XxlJobHandler {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hasNext = list.size() >= pageSize;
|
hasNext = list.size() >= pageSize;
|
||||||
for (CloseStoreRefundInfoDO refundInfoDO : list) {
|
closeStoreRefundService.refreshRefund(list, updateList, completeList);
|
||||||
try {
|
|
||||||
if (StringUtils.isNotBlank(refundInfoDO.getRefundOrderNo())) {
|
|
||||||
XgjPayResultDTO xgjPayResultDTO = thirdXgjService.queryOrderStatus(new XgjPaymentRequest(refundInfoDO.getRefundOrderNo()));
|
|
||||||
String xgjStatus = xgjPayResultDTO.getStatus();
|
|
||||||
String refundStatus = XgjRefundPayStatusEnum.REJECTED.getStatus().equals(xgjStatus) ? RefundPayStatusEnum.APPROVING.getStatus() : xgjStatus;
|
|
||||||
if (!refundInfoDO.getRefundStatus().equals(refundStatus)) {
|
|
||||||
CloseStoreRefundInfoDO update = CloseStoreRefundInfoDO.builder()
|
|
||||||
.id(refundInfoDO.getId())
|
|
||||||
.refundStatus(refundStatus)
|
|
||||||
.refundTime(CoolDateUtils.parseDate(xgjPayResultDTO.getPaySuccessTime(), "yyyy-MM-dd HH:mm:ss"))
|
|
||||||
.build();
|
|
||||||
if (refundStatus.equals(RefundPayStatusEnum.PAY_SUCCESS.getStatus())) {
|
|
||||||
completeList.add(update);
|
|
||||||
} else {
|
|
||||||
updateList.add(update);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.info("退款状态查询失败, refundId:{}", refundInfoDO.getId());
|
|
||||||
log.info("退款状态查询失败", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pageNum++;
|
pageNum++;
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isNotEmpty(updateList)) {
|
if (CollectionUtils.isNotEmpty(updateList)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user