diff --git a/src/main/java/com/qs/serve/common/util/bus/QueryFilterUtil.java b/src/main/java/com/qs/serve/common/util/bus/QueryFilterUtil.java new file mode 100644 index 00000000..92b56755 --- /dev/null +++ b/src/main/java/com/qs/serve/common/util/bus/QueryFilterUtil.java @@ -0,0 +1,29 @@ +package com.qs.serve.common.util.bus; + +import com.qs.serve.common.util.Assert; +import com.qs.serve.modules.vtb.entity.so.VtbActivityCheckSo; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; + +/** + * @author YenHex + * @since 2024/11/1 + */ +public class QueryFilterUtil { + + public static void filterSubmitDate(LocalDateTime startDate,LocalDateTime endDate,int maxDays) { + filterDate(startDate,endDate,maxDays,"申请时间段"); + } + + public static void filterDate(LocalDateTime startDate,LocalDateTime endDate,int maxDays,String timeName) { + if(startDate==null||endDate==null){ + Assert.throwEx("请选择"+timeName); + } + long daysBetween = ChronoUnit.DAYS.between(startDate, endDate); + if(daysBetween > maxDays){ + Assert.throwEx(timeName+"跨度最大值(天):"+maxDays); + } + } + +} diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java index 8cf8aedb..50673cbd 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java @@ -7,6 +7,7 @@ import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.common.util.bus.QueryFilterUtil; import com.qs.serve.modules.bir.entity.dto.BirTbsVtbPayJoinDTO; import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; import com.qs.serve.modules.bir.entity.so.BirTbsVtbPayJoinSo; @@ -27,6 +28,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -50,6 +52,14 @@ public class BirTbsVtbPayJoinController { if(so.getShowType()==null){ Assert.throwEx("请选择显示方式!"); } + if(so.getQueryStartSubmitTime()==null||so.getQueryEndSubmitTime()==null){ + Assert.throwEx("请选择申请时间段"); + } + long daysBetween = ChronoUnit.DAYS.between(so.getQueryStartSubmitTime(), so.getQueryEndSubmitTime()); + long maxDiff = 120L; + if(daysBetween > maxDiff){ + Assert.throwEx("申请时间段跨度最大值(天):"+maxDiff); + } PageVo page = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so,1); BirTbsVtbPayJoinDTO sumData = birTbsVtbPayJoinService.getSumData(so); Map returnMap = new HashMap<>(); @@ -64,6 +74,7 @@ public class BirTbsVtbPayJoinController { if(so.getShowType()==null){ Assert.throwEx("请选择显示方式!"); } + QueryFilterUtil.filterSubmitDate(so.getQueryStartSubmitTime(),so.getQueryEndSubmitTime(),120); PageVo page = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so,0); BirTbsVtbPayJoinDTO sumData = birTbsVtbPayJoinService.getSumData(so); Map returnMap = new HashMap<>(); diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java index 9ab3a9a0..cf8fceca 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java @@ -1,5 +1,6 @@ package com.qs.serve.modules.goods.controller; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; @@ -10,7 +11,12 @@ import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackBo; +import com.qs.serve.modules.goods.entity.vo.GoodsFeedbackVo; +import com.qs.serve.modules.goods.service.GoodsSkuService; +import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.sys.service.SysPostUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -21,6 +27,7 @@ import com.qs.serve.modules.goods.entity.GoodsFeedback; import com.qs.serve.modules.goods.service.GoodsFeedbackService; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; /** @@ -36,6 +43,8 @@ public class GoodsFeedbackController { private GoodsFeedbackService goodsFeedbackService; private SysPostUserService postUserService; + private GoodsSkuService goodsSkuService; + private GoodsSpuService goodsSpuService; /** * 列表 @@ -101,10 +110,18 @@ public class GoodsFeedbackController { */ @GetMapping("/getById/{id}") @SysLog(module = SystemModule.GOODS, title = "问题反馈", biz = BizType.QUERY) - @PreAuthorize("hasRole('goods:feedback:query')") - public R getById(@PathVariable("id") String id){ + public R getById(@PathVariable("id") String id){ GoodsFeedback goodsFeedback = goodsFeedbackService.getById(id); - return R.ok(goodsFeedback); + GoodsFeedbackVo feedbackVo = CopierUtil.copy(goodsFeedback,new GoodsFeedbackVo()); + if(feedbackVo.getSkuIds()!=null && feedbackVo.getSkuIds().length>0){ + List skuList = goodsSkuService.listByIds(Arrays.asList(feedbackVo.getSkuIds())); + feedbackVo.setGoodSkuList(skuList); + } + if(feedbackVo.getSpuIds()!=null && feedbackVo.getSpuIds().length>0){ + List list = goodsSpuService.listByIds(Arrays.asList(feedbackVo.getSpuIds())); + feedbackVo.setGoodSpuList(list); + } + return R.ok(feedbackVo); } /** diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java index b4a3bb4a..56695fe6 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java @@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; import lombok.Data; +import org.apache.ibatis.type.JdbcType; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -22,7 +24,7 @@ import javax.validation.constraints.NotBlank; * @since 2024-10-25 */ @Data -@TableName("goods_feedback") +@TableName(value = "goods_feedback",autoResultMap = true) public class GoodsFeedback implements Serializable { private static final long serialVersionUID = 1L; @@ -32,30 +34,16 @@ public class GoodsFeedback implements Serializable { private Long id; /** spuId */ - private Long spuId; - - /** 产品编码 */ - @Length(max = 255,message = "产品编码长度不能超过255字") - private String spuCode; - - /** 产品名称 */ - @Length(max = 255,message = "产品名称长度不能超过255字") - private String spuName; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] spuIds; /** skuId */ - private Long skuId; - - /** sku编码 */ - @Length(max = 255,message = "sku编码长度不能超过255字") - private String skuCode; - - /** sku名称 */ - @Length(max = 255,message = "sku名称长度不能超过255字") - private String skuName; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] skuIds; /** 反馈图片 */ - @Length(max = 1024,message = "反馈图片长度不能超过1024字") - private String imgUrls; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] imgUrls; /** 反馈类型 */ @Length(max = 255,message = "反馈类型长度不能超过255字") @@ -112,30 +100,5 @@ public class GoodsFeedback implements Serializable { private String updateBy; - public static GoodsFeedback toNewObject(GoodsFeedback source){ - GoodsFeedback feedback = new GoodsFeedback(); - feedback.setId(source.getId()); - feedback.setSpuId(source.getSpuId()); - feedback.setSpuCode(source.getSpuCode()); - feedback.setSpuName(source.getSpuName()); - feedback.setSkuId(source.getSkuId()); - feedback.setSkuCode(source.getSkuCode()); - feedback.setSkuName(source.getSkuName()); - feedback.setImgUrls(source.getImgUrls()); - feedback.setFeedbackType(source.getFeedbackType()); - feedback.setFeedbackText(source.getFeedbackText()); - feedback.setUserId(source.getUserId()); - feedback.setUserCode(source.getUserCode()); - feedback.setUserName(source.getUserName()); - feedback.setRemark(source.getRemark()); - feedback.setCreateTime(source.getCreateTime()); - feedback.setUpdateTime(source.getUpdateTime()); - feedback.setTenantId(source.getTenantId()); - feedback.setDelFlag(source.getDelFlag()); - feedback.setCreateBy(source.getCreateBy()); - feedback.setUpdateBy(source.getUpdateBy()); - return feedback; - } - } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackBo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackBo.java index 0a7225a9..2b8e9eeb 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackBo.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackBo.java @@ -1,8 +1,11 @@ package com.qs.serve.modules.goods.entity.bo; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; import lombok.Data; +import org.apache.ibatis.type.JdbcType; import org.hibernate.validator.constraints.Length; /** @@ -13,14 +16,13 @@ import org.hibernate.validator.constraints.Length; public class GoodsFeedbackBo { /** spuId */ - private Long spuId; + private String[] spuIds; /** skuId */ - private Long skuId; + private String[] skuIds; /** 反馈图片 */ - @Length(max = 1024,message = "反馈图片长度不能超过1024字") - private String imgUrls; + private String[] imgUrls; /** 反馈类型 */ private String feedbackType; @@ -29,4 +31,8 @@ public class GoodsFeedbackBo { @Length(max = 255,message = "反馈内容长度不能超过255字") private String feedbackText; + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsFeedbackVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsFeedbackVo.java new file mode 100644 index 00000000..a8c2e32d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsFeedbackVo.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.goods.entity.vo; + +import com.qs.serve.modules.goods.entity.GoodsFeedback; +import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; +import lombok.Data; + +import java.util.List; + +/** + * @author YenHex + * @since 2024/10/31 + */ +@Data +public class GoodsFeedbackVo extends GoodsFeedback { + + List goodSkuList; + + List goodSpuList; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java index 76d867f9..c0b28aea 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java @@ -34,21 +34,6 @@ public class GoodsFeedbackServiceImpl extends ServiceImpl dev(@PathVariable("budgetId") Long id){ + tbsBudgetApplyOperationService.doFinished(new TbsAffairCommitBo(id+"")); + return R.ok(); + } + /** * 提交申请 * @return diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 51061167..c20d5855 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -87,6 +87,9 @@ public class TbsBudgetController { List budgetIds = tbsBudgetMapper.selectBudgetId(param); if(budgetIds.size()>0){ List list = tbsBudgetService.listByIds(budgetIds); + if(list.size()>120){ + Assert.throwEx("请添加查询条件,服务无法大批量导出数据,最大120行"); + } for (TbsBudget budget : list) { List conditionList = tbsBudgetConditionService .list(new LambdaQueryWrapper() diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java index ddba49c6..a34a76e1 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java @@ -64,7 +64,7 @@ public class TbsCostApplyCheckController { * 测试接口(正式环境无法调用) * @return */ - //@GetMapping("devDoFinished") + @GetMapping("devDoFinished") public R devDoFinished(String costApplyId){ TbsAffairCommitBo commitBo = new TbsAffairCommitBo(); commitBo.setCostApplyId(Long.parseLong(costApplyId)); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index a7a29b39..0a510043 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -1038,6 +1038,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl0){ newWayData.put("formson_1988",subPaymentList); } diff --git a/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java b/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java index a2da18ac..9be02957 100644 --- a/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java +++ b/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java @@ -59,6 +59,7 @@ public class PortalFormPushController { //ThirdTokenUtil.checkToken(request); WxFormPush entity = CopierUtil.copy(param,new WxFormPush()); entity.setStatus("1"); + entity.setPublishTime(LocalDateTime.now()); wxFormPushService.save(entity); WxFormPushType pushType = null; if(param.getTypeCode()!=null){ diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java index 2837c74b..b7196cd6 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java @@ -2,7 +2,9 @@ package com.qs.serve.modules.vtb.controller; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.bus.QueryFilterUtil; import com.qs.serve.modules.vtb.entity.dto.VtbActivityCheckDTO; import com.qs.serve.modules.vtb.entity.dto.VtbVerificationDTO; import com.qs.serve.modules.vtb.entity.so.VtbActivityCheckSo; @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -71,6 +74,7 @@ public class VtbVerificationDataController { public R getActivityDataSum(VtbActivityCheckSo query){ VtbActivityCheckDTO dto = new VtbActivityCheckDTO(); List list = new ArrayList<>(); + QueryFilterUtil.filterSubmitDate(query.getQueryStartSubmitTime(),query.getQueryEndSubmitTime(),120); Long count = verReportMapper.countActiveAndVtbDataAmount(query); if(count>0) { List activityIds = verReportMapper.getActiveIdsForDataAmount(query); @@ -92,6 +96,7 @@ public class VtbVerificationDataController { */ @GetMapping("exportActivityCheck") public R> exportActivityData(VtbActivityCheckSo query){ + QueryFilterUtil.filterSubmitDate(query.getQueryStartSubmitTime(),query.getQueryEndSubmitTime(),120); List list = new ArrayList<>(); Long count = verReportMapper.countActiveAndVtbDataAmount(query); if(count>0) { @@ -102,6 +107,8 @@ public class VtbVerificationDataController { return R.ok(list); } + + /** * 获取核销的支付信息 * @param query @@ -139,7 +146,8 @@ public class VtbVerificationDataController { public R getVerificationDataSum(VtbVerificationCheckSo query){ VtbVerificationDTO dto = new VtbVerificationDTO(); List list = new ArrayList<>(); - + QueryFilterUtil.filterDate(query.getQueryStartFinishCheckTime(), + query.getQueryEndFinishCheckTime(),90,"核销完成时间段"); Long count = verPayReportMapper.countVerificationCheck(query); if(count>0) { List ids = verPayReportMapper.getVerificationIdsForPay(query); @@ -165,7 +173,8 @@ public class VtbVerificationDataController { @GetMapping("exportVerificationCheck") public R> exportVerificationCheck(VtbVerificationCheckSo query){ List list = new ArrayList<>(); - + QueryFilterUtil.filterDate(query.getQueryStartFinishCheckTime(), + query.getQueryEndFinishCheckTime(),90,"核销完成时间段"); Long count = verPayReportMapper.countVerificationCheck(query); if(count>0) { List ids = verPayReportMapper.getVerificationIdsForPay(query); diff --git a/src/main/resources/mapper/tbs/TbsBudgetMapper.xml b/src/main/resources/mapper/tbs/TbsBudgetMapper.xml index 2389d29d..cc31a320 100644 --- a/src/main/resources/mapper/tbs/TbsBudgetMapper.xml +++ b/src/main/resources/mapper/tbs/TbsBudgetMapper.xml @@ -73,6 +73,7 @@ FROM `tbs_budget` `tbs_budget` LEFT JOIN `tbs_budget_condition` `tbs_budget_condition` ON `tbs_budget`.`id` = `tbs_budget_condition`.`budget_id` + and tbs_budget.del_flag = 0 and `tbs_budget`.`id` in