5 Commits

  1. 2
      src/main/java/com/example/demo/domain/entity/Detail.java
  2. 2
      src/main/java/com/example/demo/domain/vo/RefundA.java
  3. 6
      src/main/java/com/example/demo/mapper/RefundMapper.java
  4. 1
      src/main/java/com/example/demo/mapperLink/DouMapper.java
  5. 14
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  6. 1
      src/main/java/com/example/demo/sevice/RefundService.java
  7. 39
      src/main/resources/mapper/RefundMapper.xml
  8. 3
      src/main/resources/mapperLink/DouMapper.xml

2
src/main/java/com/example/demo/domain/entity/Detail.java

@ -81,5 +81,5 @@ public class Detail implements Serializable {
private String sortOrder;
private List<String> areas;
private Boolean hasIndexMatch;
}

2
src/main/java/com/example/demo/domain/vo/RefundA.java

@ -41,5 +41,5 @@ public class RefundA implements Serializable {
private String category;
private BigDecimal amount;
private List<String> areas;
private Boolean hasIndexMatch;
}

6
src/main/java/com/example/demo/mapper/RefundMapper.java

@ -105,5 +105,11 @@ public interface RefundMapper {
// "</choose>",
// "</script>"
// })
//查询退款商品
List<Detail> select(Detail detail);
//检查product是否有type值
boolean isIndexTypeExist(@Param("name") String name);
}

1
src/main/java/com/example/demo/mapperLink/DouMapper.java

@ -9,6 +9,7 @@ import java.util.List;
@Mapper
public interface DouMapper {
int add(Records Records);
Member searchinfo(Searchinfo jwcode);
Integer searchId(@Param("jwcode")String jwcode);
List<Yve> getYve(Yve yve);

14
src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java

@ -128,6 +128,12 @@ public class RefundServiceImpl implements RefundService {
@Cacheable(key = "#root.method.name + ':' + #pageNum + '-' + #pageSize + '-' + T(java.util.Objects).hashCode(#detail)")
@Override
public PageInfo<Detail> searchForPage(Integer pageNum, Integer pageSize, Detail detail) {
// 如果 refundGoods 存在则判断是否匹配 index 表中的 remark
if (detail.getRefundGoods() != null && !detail.getRefundGoods().trim().isEmpty()) {
boolean matchExists = refundMapper.isIndexTypeExist(detail.getRefundGoods());
detail.setHasIndexMatch(matchExists); // 设置标志位
}
PageHelper.startPage(pageNum, pageSize);
List<Detail> list = refundMapper.select(detail);
return new PageInfo<>(list);
@ -140,6 +146,12 @@ public class RefundServiceImpl implements RefundService {
@Override
public List<RefundA> getRefundA(RefundA refundA) {
// 如果 refundGoods 存在则判断是否匹配 index 表中的 remark
if (refundA.getRefundGoods() != null && !refundA.getRefundGoods().trim().isEmpty()) {
boolean matchExists = refundMapper.isIndexTypeExist(refundA.getRefundGoods());
refundA.setHasIndexMatch(matchExists); // 设置标志位
}
// 执行原始查询获取实际存在的分类及其汇总值
List<RefundA> result = refundMapper.getRefundA(refundA);
@ -162,4 +174,6 @@ public class RefundServiceImpl implements RefundService {
return result;
}
}

1
src/main/java/com/example/demo/sevice/RefundService.java

@ -23,4 +23,5 @@ public interface RefundService {
PageInfo<Detail> searchForPage(Integer pageNum, Integer pageSize, Detail detail);
List<RefundA> getRefundA(RefundA refundA);
}

39
src/main/resources/mapper/RefundMapper.xml

@ -34,7 +34,21 @@
<if test='startDate != null and endDate != null'>AND d.create_time BETWEEN #{startDate} AND #{endDate}</if>
<if test='area!=null and area.length>0'>and user.area=#{area}</if>
<if test='refundType != null and refundType.length>0'>AND d.refund_type LIKE CONCAT('%', #{refundType}, '%')</if>
<if test='refundGoods != null and refundGoods.length>0'>AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')</if>
<if test='refundGoods != null and refundGoods.length() > 0'>
<choose>
<!-- 是否走精确匹配 -->
<when test="hasIndexMatch">
AND d.refund_goods IN (
SELECT name FROM `index`
WHERE type = 1 AND remark = #{refundGoods}
)
</when>
<!-- 否则模糊匹配 -->
<otherwise>
AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')
</otherwise>
</choose>
</if>
<if test="areas != null">
AND area IN
<foreach collection="areas" item="areas" open="(" separator="," close=")">
@ -84,8 +98,20 @@
<if test='refundType != null and refundType.length > 0'>
AND d.refund_type LIKE CONCAT('%', #{refundType}, '%')
</if>
<if test='refundGoods != null and refundGoods.length > 0'>
AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')
<if test='refundGoods != null and refundGoods.length() > 0'>
<choose>
<!-- 是否走精确匹配 -->
<when test="hasIndexMatch">
AND d.refund_goods IN (
SELECT name FROM `index`
WHERE type = 1 AND remark = #{refundGoods}
)
</when>
<!-- 否则模糊匹配 -->
<otherwise>
AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')
</otherwise>
</choose>
</if>
<if test='startDate != null and endDate != null'>
AND d.create_time BETWEEN #{startDate} AND #{endDate}
@ -141,4 +167,11 @@
ORDER BY
detaily_id DESC
</select>
<!--检查是否有type值-->
<select id="isIndexTypeExist" resultType="java.lang.Boolean">
SELECT EXISTS (
SELECT 1 FROM product
WHERE type = 1 AND name = #{name}
)
</select>
</mapper>

3
src/main/resources/mapperLink/DouMapper.xml

@ -8,6 +8,9 @@
insert into fx_yaoqing_records (uid,content,money,money_free,money_buy,time,type,data)
values(#{uid},#{content},#{money},#{moneyFree},#{moneyBuy},#{time},1,#{data})
</insert>
<select id="searchinfo" resultType="com.example.demo.domain.dou.Member">
SELECT
fm.nickname,

Loading…
Cancel
Save