feige
4 天以前 c8668a4a71987199e610781e7ac8cc02faa4f082
zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -18,6 +19,8 @@
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -26,6 +29,7 @@
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static com.ruoyi.constant.MenuAuthority.*;
@@ -40,7 +44,7 @@
 */
@Service
@Slf4j
public class ZfEconomyServiceImpl extends ServiceImpl<ZfEconomyMapper, ZfEconomy> implements ZfEconomyService {
public class ZfEconomyServiceImpl extends ServiceImpl<ZfEconomyMapper, ZfEconomy> implements ZfEconomyService,ModuleSearchable{
    @Resource
    ZfEconomyService zfEconomyService;
@@ -76,10 +80,41 @@
        lqw.like(StringUtils.isNotEmpty(zfEconomy.getUsePeople()),ZfEconomy::getUsePeople,zfEconomy.getUsePeople());
        lqw.like(StringUtils.isNotEmpty(zfEconomy.getBalance()),ZfEconomy::getBalance,zfEconomy.getBalance());
        lqw.like(StringUtils.isNotEmpty(zfEconomy.getRemark()),ZfEconomy::getRemark,zfEconomy.getRemark());
//        lqw.in(StringUtils.isNotEmpty(zfEconomy.getCompanionList()),ZfEconomy::getCompanion,zfEconomy.getCompanionList());
//        if (zfEconomy.getYear() != 0) {
//            System.out.println("pppppppppppppppppppppppppppppppppppppppppppppppppppp"+zfEconomy.getYear());
//            lqw.apply("YEAR(happen_time) = {0}", zfEconomy.getYear());
//        }
            if (CollectionUtils.isNotEmpty(zfEconomy.getCompanionList())) {
                List<String> companionList = zfEconomy.getCompanionList();
                // 清理和去重
                companionList = companionList.stream()
                    .map(String::trim)
                    .filter(s -> !s.isEmpty())
                    .distinct()
                    .collect(Collectors.toList());
                if (!companionList.isEmpty()) {
                    // 确保所有参与人都在companion字段中
                    for (String companion : companionList) {
                        lqw.apply("FIND_IN_SET({0}, REPLACE(REPLACE(companion, ' ', ''), ',', ',')) > 0",
                            companion);
                    }
                }
            }
        lqw.eq(zfEconomy.getHappenTime() != null, ZfEconomy::getHappenTime, zfEconomy.getHappenTime());
        lqw.between(zfEconomy.getHappenStartTime() != null && zfEconomy.getHappenEndTime() != null, ZfEconomy::getHappenTime, zfEconomy.getHappenStartTime(), zfEconomy.getHappenEndTime());
        System.out.println("查询条件: " + lqw.getCustomSqlSegment());
        return lqw;
    }
    private LambdaQueryWrapper<ZfEconomy> uniqueCondition(ZfEconomy zfEconomy) {
        LambdaQueryWrapper<ZfEconomy> lqw = new LambdaQueryWrapper<>();
@@ -93,6 +128,11 @@
        lqw.eq(zfEconomy.getFamilyId()!=null,ZfEconomy::getFamilyId,zfEconomy.getFamilyId());
        lqw.eq(zfEconomy.getHappenTime() != null, ZfEconomy::getHappenTime, zfEconomy.getHappenTime());
        return lqw;
    }
    @Override
    public List<ZfEconomy> change(){
        ZfEconomy zfEconomy = new ZfEconomy();
       return list(buildCondition(zfEconomy,null));
    }
//    private LambdaQueryWrapper<ZfEconomy> buildCondition(ZfEconomy zfEconomy, String familyIds, String secondFamilyAuthority) {
@@ -236,7 +276,7 @@
            fatherFaId = zInfoUserService.getInfoById(myself.getFatherId()).getFamilyId();
        Long motherFaId = 0L;
        if(myself.getMomId()!=null)
            motherFaId = zInfoUserService.getInfoBysysId(myself.getMomId()).getFamilyId();
            motherFaId = zInfoUserService.getInfoById(myself.getMomId()).getFamilyId();
        //也要查别人授权的
        List<ZAuthority> authority = zAuthorityService.getAuthority();
@@ -247,7 +287,11 @@
        //加上父母家族id
        idList.add(fatherFaId);
        idList.add(motherFaId);
        List<Long> fms = zInfoUserService.findByUaidToFaid(myself.getUaid()).stream().map(ZInfoUser::getFamilyId).collect(Collectors.toList());
        if(!fms.isEmpty())
        {
            idList.addAll(fms);
        }
        LambdaQueryWrapper<ZfEconomy> lambdaQueryWrapper = buildCondition(zfEconomy, idList);
        List<ZfEconomy> beanRecords = list(lambdaQueryWrapper);
        log.info("从数据库中查到的为:{}", beanRecords);
@@ -313,7 +357,7 @@
            fatherFaId = zInfoUserService.getInfoById(myself.getFatherId()).getFamilyId();
        Long motherFaId = 0L;
        if(myself.getMomId()!=null)
            motherFaId = zInfoUserService.getInfoBysysId(myself.getMomId()).getFamilyId();
            motherFaId = zInfoUserService.getInfoById(myself.getMomId()).getFamilyId();
        //也要查别人授权的
        List<ZAuthority> authority = zAuthorityService.getAuthority();
@@ -324,7 +368,11 @@
        //加上父母家族id
        idList.add(fatherFaId);
        idList.add(motherFaId);
        List<Long> fms = zInfoUserService.findByUaidToFaid(myself.getUaid()).stream().map(ZInfoUser::getFamilyId).collect(Collectors.toList());
        if(!fms.isEmpty())
        {
            idList.addAll(fms);
        }
//        String familyIds = listFamilyIds();
//        String secondFamilyAuthority = listSecondFamilyIds();
        LambdaQueryWrapper<ZfEconomy> lqw = buildCondition(zfEconomy, idList);
@@ -344,7 +392,7 @@
    public List<ZfEconomy> markOwnData(Long familyId,Long fatherFamilyId, Long motherFamilyId,List<ZfEconomy> beanRecords){
        return beanRecords.stream().peek(
                bean -> {
                    if (bean.getFamilyId() == familyId||(fatherFamilyId!=0L && fatherFamilyId==familyId)||(motherFamilyId!=0L && motherFamilyId==familyId)) {
                    if (Objects.equals(bean.getFamilyId(), familyId) ||(fatherFamilyId!=0L && fatherFamilyId.equals(familyId))||(motherFamilyId!=0L && motherFamilyId.equals(familyId))) {
                        bean.setOwnData(1);
                    } else {
                        bean.setOwnData(0);
@@ -412,6 +460,9 @@
    @Override
    public AjaxResult addData(ZfEconomy zfEconomy) {
        //清除redis中zfEconomy的缓存
        clearAllCache();
        ZInfoUser myself = zInfoUserService.getMyself();
        Long familyId = myself.getFamilyId();
@@ -466,6 +517,9 @@
    @Override
    public AjaxResult updateData(ZfEconomy zfEconomy) {
        //清除redis中zfEconomy的缓存
        clearAllCache();
        ZInfoUser myself = zInfoUserService.getMyself();
        Long familyId = myself.getFamilyId();
@@ -587,4 +641,28 @@
    }
    @Override
    public String getModuleCode() {
        return "2045";
    }
    @Override
    @Cacheable(value = "economy_search", key = "T(String).format('2045_%s_%s_%s',#companion != null ? #companion : 'null',#happenStartTime != null ? #happenStartTime.getTime() : 0,#happenEndTime != null ? #happenEndTime.getTime() : 0)")
    public List<?> search(String companion, Date happenStartTime,Date happenEndTime) {
        ZfEconomy zfEconomy = new ZfEconomy();
        zfEconomy.setCompanion(companion);
        zfEconomy.setHappenStartTime(happenStartTime);
        zfEconomy.setHappenEndTime(happenEndTime);
        String[] split = companion.split(",");
        List<String> list = Arrays.asList(split);
        zfEconomy.setCompanionList(list);
        return selectByCondition(zfEconomy);
    }
    @CacheEvict(value = "economy_search", allEntries = true)
    public void clearAllCache() {
        System.out.println("清除所有经济搜索缓存");
    }
}