LIVE_YE 2 месяцев назад
Родитель
Сommit
cf12f3b59c
21 измененных файлов с 328 добавлено и 5 удалено
  1. 5 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/assets/CommunityAssetsController.java
  2. 9 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/checkPoint/CheckPointManageController.java
  3. 10 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/checkPoint/CheckPointRecordController.java
  4. 10 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/illegalParking/IllegalParkingController.java
  5. 3 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/checkPoint/bo/CheckPointManageBo.java
  6. 7 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/complaintSuggestion/bo/ComplaintSuggestionBo.java
  7. 8 1
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/complaintSuggestion/vo/ComplaintSuggestionVo.java
  8. 6 1
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/illegalParking/vo/IllegalParkingVo.java
  9. 8 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/partyNews/vo/PartyNewsVo.java
  10. 2 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/mapper/CommunityAssetsMapper.java
  11. 3 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/ICheckPointManageService.java
  12. 4 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/ICheckPointRecordService.java
  13. 2 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/ICommunityAssetsService.java
  14. 3 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/IIllegalParkingService.java
  15. 10 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/CheckPointManageServiceImpl.java
  16. 33 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/CheckPointRecordServiceImpl.java
  17. 11 0
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/CommunityAssetsServiceImpl.java
  18. 82 1
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/ComplaintSuggestionServiceImpl.java
  19. 33 1
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/IllegalParkingServiceImpl.java
  20. 44 1
      ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/PartyNewsServiceImpl.java
  21. 35 0
      ruoyi-modules/ruoyi-wuye/src/main/resources/mapper/wuYe/CommunityAssetsMapper.xml

+ 5 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/assets/CommunityAssetsController.java

@@ -77,6 +77,11 @@ public class CommunityAssetsController extends BaseController {
     @RepeatSubmit()
     @PostMapping()
     public R<Void> add(@Validated(AddGroup.class) @RequestBody CommunityAssetsBo bo) {
+        if (!communityAssetsService.checkEquipmentNumberUnique(bo)) {
+            {
+                return R.fail("新增资产'" + bo.getAssetName() + "'失败,资产编号已存在");
+            }
+        }
         return toAjax(communityAssetsService.insertByBo(bo));
     }
 

+ 9 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/checkPoint/CheckPointManageController.java

@@ -80,6 +80,15 @@ public class CheckPointManageController extends BaseController {
         return toAjax(checkPointManageService.insertByBo(bo));
     }
 
+    /**
+     * 批量新增巡更点管理
+     */
+    @SaCheckPermission("wuYe:checkPointManage:addList")
+    @PostMapping("/addList")
+    public R<Void> addList( @RequestBody CheckPointManageBo bo) {
+        return toAjax(checkPointManageService.batchCheckPointManage(bo.getCheckPointManageList()));
+    }
+
     /**
      * 修改巡更点管理
      */

+ 10 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/checkPoint/CheckPointRecordController.java

@@ -22,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 巡更点记录
@@ -103,4 +104,13 @@ public class CheckPointRecordController extends BaseController {
                           @PathVariable Long[] checkPointRecordIds) {
         return toAjax(checkPointRecordService.deleteWithValidByIds(List.of(checkPointRecordIds), true));
     }
+
+    /**
+     * 巡更点记录首页统计
+     */
+    @SaCheckPermission("wuYe:checkPointRecord:count")
+    @PostMapping("/count")
+    public R<Map<String,Object>> count(@RequestBody CheckPointRecordBo bo) {
+        return checkPointRecordService.getCheckPointRecordCount(bo);
+    }
 }

+ 10 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/illegalParking/IllegalParkingController.java

@@ -15,6 +15,7 @@ import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.web.core.BaseController;
+import org.dromara.domain.illegalParking.IllegalParking;
 import org.dromara.domain.illegalParking.bo.IllegalParkingBo;
 import org.dromara.domain.illegalParking.vo.IllegalParkingVo;
 import org.dromara.service.IIllegalParkingService;
@@ -103,4 +104,13 @@ public class IllegalParkingController extends BaseController {
                           @PathVariable Long[] illegalParkingIds) {
         return toAjax(illegalParkingService.deleteWithValidByIds(List.of(illegalParkingIds), true));
     }
+
+    /**
+     * 解除黑名单
+     */
+    @SaCheckPermission("wuYe:illegalParking:cancel")
+    @PostMapping("/cancel")
+    public R<Void> cancel(@RequestBody IllegalParkingBo bo) {
+        return illegalParkingService.cancel(bo);
+    }
 }

+ 3 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/checkPoint/bo/CheckPointManageBo.java

@@ -11,6 +11,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.domain.checkPoint.CheckPointManage;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 巡更点管理业务对象 check_point_manage
@@ -65,5 +66,7 @@ public class CheckPointManageBo extends BaseEntity {
      */
     private String remark;
 
+    private List<CheckPointManage> checkPointManageList;
+
 
 }

+ 7 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/complaintSuggestion/bo/ComplaintSuggestionBo.java

@@ -8,8 +8,10 @@ import lombok.EqualsAndHashCode;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.domain.complaintSuggestion.ComplaintSuggestion;
+import org.dromara.domain.suggestionFj.SuggestionFj;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 投诉建议业务对象 complaint_suggestion
@@ -88,5 +90,10 @@ public class ComplaintSuggestionBo extends BaseEntity {
      */
     private String remark;
 
+    /**
+     * 回复附件表
+     */
+    private List<SuggestionFj> suggestionFjList;
+
 
 }

+ 8 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/complaintSuggestion/vo/ComplaintSuggestionVo.java

@@ -7,11 +7,12 @@ import lombok.Data;
 import org.dromara.common.excel.annotation.ExcelDictFormat;
 import org.dromara.common.excel.convert.ExcelDictConvert;
 import org.dromara.domain.complaintSuggestion.ComplaintSuggestion;
+import org.dromara.domain.suggestionFj.vo.SuggestionFjVo;
 
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -112,4 +113,10 @@ public class ComplaintSuggestionVo implements Serializable {
     private String remark;
 
 
+    /**
+     * 回复附件表
+     */
+    private List<SuggestionFjVo> suggestionFjList;
+
+
 }

+ 6 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/illegalParking/vo/IllegalParkingVo.java

@@ -8,7 +8,7 @@ import org.dromara.domain.illegalParking.IllegalParking;
 
 import java.io.Serial;
 import java.io.Serializable;
-
+import java.util.List;
 
 
 /**
@@ -85,5 +85,10 @@ public class IllegalParkingVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    /**
+     * 违停记录子集
+     */
+    private List<IllegalParkingVo> children;
+
 
 }

+ 8 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/partyNews/vo/PartyNewsVo.java

@@ -111,5 +111,13 @@ public class PartyNewsVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    /** 是否收藏:Y(收藏)、N(不收藏) */
+    private String isStars;
+
+    /**
+     * 收藏数量
+     */
+    private Integer starsCount;
+
 
 }

+ 2 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/mapper/CommunityAssetsMapper.java

@@ -1,5 +1,6 @@
 package org.dromara.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.domain.assets.CommunityAssets;
 import org.dromara.domain.assets.vo.CommunityAssetsVo;
@@ -12,4 +13,5 @@ import org.dromara.domain.assets.vo.CommunityAssetsVo;
  */
 public interface CommunityAssetsMapper extends BaseMapperPlus<CommunityAssets, CommunityAssetsVo> {
 
+    CommunityAssetsVo checkEquipmentNumberUnique(@Param("equipmentNumber")String equipmentNumber);
 }

+ 3 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/ICheckPointManageService.java

@@ -2,6 +2,7 @@ package org.dromara.service;
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.domain.checkPoint.CheckPointManage;
 import org.dromara.domain.checkPoint.bo.CheckPointManageBo;
 import org.dromara.domain.checkPoint.vo.CheckPointManageVo;
 
@@ -65,4 +66,6 @@ public interface ICheckPointManageService {
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    Boolean batchCheckPointManage(List<CheckPointManage> checkPointManageList);
 }

+ 4 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/ICheckPointRecordService.java

@@ -1,5 +1,6 @@
 package org.dromara.service;
 
+import org.dromara.common.core.domain.R;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.domain.checkPoint.bo.CheckPointRecordBo;
@@ -7,6 +8,7 @@ import org.dromara.domain.checkPoint.vo.CheckPointRecordVo;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 巡更点记录Service接口
@@ -65,4 +67,6 @@ public interface ICheckPointRecordService {
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    R<Map<String, Object>> getCheckPointRecordCount(CheckPointRecordBo bo);
 }

+ 2 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/ICommunityAssetsService.java

@@ -65,4 +65,6 @@ public interface ICommunityAssetsService {
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    boolean checkEquipmentNumberUnique(CommunityAssetsBo bo);
 }

+ 3 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/IIllegalParkingService.java

@@ -1,6 +1,7 @@
 package org.dromara.service;
 
 
+import org.dromara.common.core.domain.R;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.domain.illegalParking.bo.IllegalParkingBo;
@@ -66,4 +67,6 @@ public interface IIllegalParkingService {
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    R<Void> cancel(IllegalParkingBo bo);
 }

+ 10 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/CheckPointManageServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -132,4 +133,13 @@ public class CheckPointManageServiceImpl implements ICheckPointManageService {
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    @Override
+    public Boolean batchCheckPointManage(List<CheckPointManage> checkPointManageList) {
+        for (CheckPointManage pointManage : checkPointManageList) {
+            pointManage.setCreateTime(DateUtils.getNowDate());
+        }
+        boolean flag = baseMapper.insertBatch(checkPointManageList);
+        return flag;
+    }
 }

+ 33 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/CheckPointRecordServiceImpl.java

@@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.domain.dto.StaffManageDTO;
+import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.domain.checkPoint.CheckPointRecord;
 import org.dromara.domain.checkPoint.bo.CheckPointRecordBo;
 import org.dromara.domain.checkPoint.vo.CheckPointRecordVo;
@@ -16,9 +20,12 @@ import org.dromara.service.ICheckPointRecordService;
 import org.springframework.stereotype.Service;
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static org.dromara.common.core.constant.Constants.TWO;
+
 /**
  * 巡更点记录Service业务层处理
  *
@@ -116,6 +123,13 @@ public class CheckPointRecordServiceImpl implements ICheckPointRecordService {
      */
     @Override
     public Boolean updateByBo(CheckPointRecordBo bo) {
+        StaffManageDTO staffManage = LoginHelper.getLoginUser().getStaffManage();
+        bo.setUpdateTime(DateUtils.getNowDate());
+        if (staffManage != null){
+            bo.setCheckUserName(staffManage.getStaffName());
+            bo.setCheckUsePhone(staffManage.getPhoneNumber());
+            bo.setCheckStaffId(staffManage.getStaffId());
+        }
         CheckPointRecord update = MapstructUtils.convert(bo, CheckPointRecord.class);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
@@ -142,4 +156,23 @@ public class CheckPointRecordServiceImpl implements ICheckPointRecordService {
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    @Override
+    public R<Map<String, Object>> getCheckPointRecordCount(CheckPointRecordBo bo) {
+        Map<String,Object> resultMap = new HashMap<>(3);
+        resultMap.put("checkPoint",0);
+        resultMap.put("yCheckPoint",0);
+        resultMap.put("wCheckPoint",0);
+        bo.setCreateTime(DateUtils.getNowDate());
+        //查询出今日所有巡更点记录
+        List<CheckPointRecordVo> checkPointRecords = queryList(bo);
+        if (checkPointRecords != null && !checkPointRecords.isEmpty()){
+            //判断巡更时间不为null的代表已经巡更
+            resultMap.put("checkPoint",checkPointRecords.size());
+            long checkCount = checkPointRecords.stream().filter(e -> TWO.equals(e.getCheckStatus())).count();
+            resultMap.put("yCheckPoint",checkCount);
+            resultMap.put("wCheckPoint",checkPointRecords.size()-checkCount);
+        }
+        return R.ok(resultMap);
+    }
 }

+ 11 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/CommunityAssetsServiceImpl.java

@@ -148,4 +148,15 @@ public class CommunityAssetsServiceImpl implements ICommunityAssetsService {
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    @Override
+    public boolean checkEquipmentNumberUnique(CommunityAssetsBo bo) {
+        Long communityAssetId = StringUtils.isNull(bo.getCommunityAssetId()) ? -1L : bo.getCommunityAssetId();
+        CommunityAssetsVo info = baseMapper.checkEquipmentNumberUnique(bo.getEquipmentNumber());
+        if (StringUtils.isNotNull(info) && info.getCommunityAssetId().longValue() != communityAssetId.longValue())
+        {
+            return false;
+        }
+        return true;
+    }
 }

+ 82 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/ComplaintSuggestionServiceImpl.java

@@ -4,21 +4,34 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
+import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.domain.complaintSuggestion.ComplaintSuggestion;
 import org.dromara.domain.complaintSuggestion.bo.ComplaintSuggestionBo;
 import org.dromara.domain.complaintSuggestion.vo.ComplaintSuggestionVo;
+import org.dromara.domain.suggestionFj.SuggestionFj;
+import org.dromara.domain.suggestionFj.bo.SuggestionFjBo;
+import org.dromara.domain.suggestionFj.vo.SuggestionFjVo;
 import org.dromara.mapper.ComplaintSuggestionMapper;
+import org.dromara.mapper.SuggestionFjMapper;
 import org.dromara.service.IComplaintSuggestionService;
+import org.dromara.service.ISuggestionFjService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.cache.RedisCache;
 import org.springframework.stereotype.Service;
 
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import static org.dromara.common.core.constant.Constants.*;
+
 /**
  * 投诉建议Service业务层处理
  *
@@ -31,6 +44,15 @@ public class ComplaintSuggestionServiceImpl implements IComplaintSuggestionServi
 
     private final ComplaintSuggestionMapper baseMapper;
 
+    @Autowired
+    private ISuggestionFjService suggestionFjService;
+
+    @Autowired
+    private SuggestionFjMapper suggestionFjMapper;
+
+    @Autowired
+    private RedisCache redisCache;
+
     /**
      * 查询投诉建议
      *
@@ -39,7 +61,31 @@ public class ComplaintSuggestionServiceImpl implements IComplaintSuggestionServi
      */
     @Override
     public ComplaintSuggestionVo queryById(Long suggestionId){
-        return baseMapper.selectVoById(suggestionId);
+        ComplaintSuggestionVo vo = baseMapper.selectVoById(suggestionId);
+        SuggestionFjBo fjBo = new SuggestionFjBo();
+        fjBo.setSuggestionId(suggestionId);
+        List<SuggestionFjVo> suggestionFjVos = suggestionFjService.queryList(fjBo);
+        if (suggestionFjVos != null && !suggestionFjVos.isEmpty()){
+            vo.setSuggestionFjList(suggestionFjVos);
+        }
+        //判断是否已读如果是未读设置成已读
+        String isRead = vo.getIsRead();
+        Long userId = vo.getUserId();
+        if (N.equals(isRead) && userId.equals(LoginHelper.getUserId())){
+            vo.setIsRead(Y);
+            ComplaintSuggestion update = MapstructUtils.convert(vo, ComplaintSuggestion.class);
+            baseMapper.updateById(update);
+            //app首页统计减少一个数
+            String userSuggestionKey = COMPLAINT_SUGGESTION_NO + userId;
+            //往redis中新增 个人 投诉建议未回复的数量 app统计使用 回复了这个用户的投诉,这个用户能看到
+            Object userNum = RedisUtils.getCacheObject(userSuggestionKey);
+            if (ObjectUtils.isNotEmpty(userNum)) {
+                RedisUtils.setCacheObject(userSuggestionKey, Math.max((int) userNum - 1, 0));
+            }else {
+                RedisUtils.setCacheObject(userSuggestionKey,0);
+            }
+        }
+        return vo;
     }
 
     /**
@@ -94,11 +140,21 @@ public class ComplaintSuggestionServiceImpl implements IComplaintSuggestionServi
      */
     @Override
     public Boolean insertByBo(ComplaintSuggestionBo bo) {
+        Long userId = LoginHelper.getUserId();
+        bo.setCreateTime(DateUtils.getNowDate());
+        bo.setUserId(userId);
         ComplaintSuggestion add = MapstructUtils.convert(bo, ComplaintSuggestion.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             bo.setSuggestionId(add.getSuggestionId());
+            //往redis中新增 总数 投诉建议未回复的数量 app统计使用
+            Object allNum = RedisUtils.getCacheObject(COMPLAINT_SUGGESTION_NO_ALL);
+            if (ObjectUtils.isNotEmpty(allNum)) {
+                RedisUtils.setCacheObject(COMPLAINT_SUGGESTION_NO_ALL, Math.max((int) allNum + 1, 0));
+            }else {
+                RedisUtils.setCacheObject(COMPLAINT_SUGGESTION_NO_ALL,1);
+            }
         }
         return flag;
     }
@@ -111,6 +167,31 @@ public class ComplaintSuggestionServiceImpl implements IComplaintSuggestionServi
      */
     @Override
     public Boolean updateByBo(ComplaintSuggestionBo bo) {
+        Long userId = bo.getUserId();
+        String status = bo.getStatus();
+        if (TWO.equals(status)){
+            //判断是否有附件
+            List<SuggestionFj> suggestionFjList = bo.getSuggestionFjList();
+            if (suggestionFjList != null && !suggestionFjList.isEmpty()){
+
+                suggestionFjMapper.insertBatch(suggestionFjList);
+            }
+            String userSuggestionKey = COMPLAINT_SUGGESTION_NO + userId;
+            //往redis中新增 个人 投诉建议未回复的数量 app统计使用 回复了这个用户的投诉,这个用户能看到
+            Object userNum = RedisUtils.getCacheObject(userSuggestionKey);
+            if (ObjectUtils.isNotEmpty(userNum)) {
+                RedisUtils.setCacheObject(userSuggestionKey, Math.max((int) userNum + 1, 0));
+            }else {
+                RedisUtils.setCacheObject(userSuggestionKey,1);
+            }
+            //往redis中新增 总数 投诉建议未回复的数量 app统计使用
+            Object allNum = RedisUtils.getCacheObject(COMPLAINT_SUGGESTION_NO_ALL);
+            if (ObjectUtils.isNotEmpty(allNum)) {
+                RedisUtils.setCacheObject(COMPLAINT_SUGGESTION_NO_ALL, Math.max((int) allNum - 1, 0));
+            }else {
+                RedisUtils.setCacheObject(COMPLAINT_SUGGESTION_NO_ALL,0);
+            }
+        }
         ComplaintSuggestion update = MapstructUtils.convert(bo, ComplaintSuggestion.class);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;

+ 33 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/IllegalParkingServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -39,7 +40,15 @@ public class IllegalParkingServiceImpl implements IIllegalParkingService {
      */
     @Override
     public IllegalParkingVo queryById(Long illegalParkingId){
-        return baseMapper.selectVoById(illegalParkingId);
+        IllegalParkingVo illegalParkingVo = baseMapper.selectVoById(illegalParkingId);
+        String plateNumber = illegalParkingVo.getPlateNumber();
+        IllegalParkingBo bo = new IllegalParkingBo();
+        bo.setPlateNumber(plateNumber);
+        List<IllegalParkingVo> illegalParkingVos = queryList(bo);
+        if (illegalParkingVos != null && !illegalParkingVos.isEmpty()){
+            illegalParkingVo.setChildren(illegalParkingVos);
+        }
+        return illegalParkingVo;
     }
 
     /**
@@ -53,6 +62,17 @@ public class IllegalParkingServiceImpl implements IIllegalParkingService {
     public TableDataInfo<IllegalParkingVo> queryPageList(IllegalParkingBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<IllegalParking> lqw = buildQueryWrapper(bo);
         Page<IllegalParkingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        if (result.getRecords() != null && !result.getRecords().isEmpty()){
+            for (IllegalParkingVo parking : result.getRecords()) {
+                String plateNumber = parking.getPlateNumber();
+                IllegalParkingBo ibo = new IllegalParkingBo();
+                ibo.setPlateNumber(plateNumber);
+                List<IllegalParkingVo> illegalParkingVos = queryList(ibo);
+                if (illegalParkingVos != null && !illegalParkingVos.isEmpty()){
+                    parking.setChildren(illegalParkingVos);
+                }
+            }
+        }
         return TableDataInfo.build(result);
     }
 
@@ -134,4 +154,16 @@ public class IllegalParkingServiceImpl implements IIllegalParkingService {
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    @Override
+    public R<Void> cancel(IllegalParkingBo bo) {
+        bo.setIsBlack("N");
+        IllegalParking update = MapstructUtils.convert(bo, IllegalParking.class);
+        validEntityBeforeSave(update);
+        boolean bl = baseMapper.updateById(update)>0;
+        if (bl) {
+            return R.ok();
+        }
+        return R.fail();
+    }
 }

+ 44 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/PartyNewsServiceImpl.java

@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.domain.partyNews.PartyNews;
 import org.dromara.domain.partyNews.bo.PartyNewsBo;
 import org.dromara.domain.partyNews.vo.PartyNewsVo;
@@ -19,6 +22,9 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import static org.dromara.common.core.constant.Constants.STARS_PARTY_NEWS;
+import static org.dromara.common.core.constant.Constants.STARS_PARTY_NEWS_COUNT;
+
 /**
  * 党建资讯Service业务层处理
  *
@@ -39,7 +45,26 @@ public class PartyNewsServiceImpl implements IPartyNewsService {
      */
     @Override
     public PartyNewsVo queryById(Long partyId){
-        return baseMapper.selectVoById(partyId);
+        PartyNewsVo partyNewsVo = baseMapper.selectVoById(partyId);
+        //观看次数+1
+        Long viewCount = partyNewsVo.getViewCount();
+        partyNewsVo.setViewCount(viewCount + 1);
+        PartyNews update = MapstructUtils.convert(partyNewsVo, PartyNews.class);
+        baseMapper.updateById(update);
+        String partyKey = STARS_PARTY_NEWS + LoginHelper.getUserId();
+        List<Long> partyIdList = RedisUtils.getCacheList(partyKey);
+        partyNewsVo.setIsStars("N");
+        Long partyIdNews = partyNewsVo.getPartyId();
+        if (partyIdList.contains(partyIdNews)) {
+            partyNewsVo.setIsStars("Y");
+        }
+        //插入收藏数量
+        partyNewsVo.setStarsCount(0);
+        Object startCount = RedisUtils.getCacheObject(STARS_PARTY_NEWS_COUNT + partyId);
+        if (ObjectUtils.isNotEmpty(startCount)) {
+            partyNewsVo.setStarsCount(Integer.parseInt(startCount.toString()));
+        }
+        return partyNewsVo;
     }
 
     /**
@@ -53,6 +78,24 @@ public class PartyNewsServiceImpl implements IPartyNewsService {
     public TableDataInfo<PartyNewsVo> queryPageList(PartyNewsBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<PartyNews> lqw = buildQueryWrapper(bo);
         Page<PartyNewsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        if (result.getRecords() != null && !result.getRecords().isEmpty()) {
+            String partyKey = STARS_PARTY_NEWS + LoginHelper.getUserId();
+            List<Long> partyIdList = RedisUtils.getCacheList(partyKey);
+            for (PartyNewsVo news : result.getRecords()) {
+                news.setIsStars("N");
+                Long partyId = news.getPartyId();
+                if (partyIdList.contains(partyId)) {
+                    news.setIsStars("Y");
+                }
+                //插入收藏数量
+                news.setStarsCount(0);
+                Object startCount = RedisUtils.getCacheObject(STARS_PARTY_NEWS_COUNT + partyId);
+                if (ObjectUtils.isNotEmpty(startCount)) {
+                    news.setStarsCount(Integer.parseInt(startCount.toString()));
+                }
+            }
+        }
+
         return TableDataInfo.build(result);
     }
 

+ 35 - 0
ruoyi-modules/ruoyi-wuye/src/main/resources/mapper/wuYe/CommunityAssetsMapper.xml

@@ -4,4 +4,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.mapper.CommunityAssetsMapper">
 
+    <resultMap type="org.dromara.domain.assets.vo.CommunityAssetsVo" id="CommunityAssetsResult">
+        <result property="communityAssetId"    column="community_asset_id"    />
+        <result property="assetId"    column="asset_id"    />
+        <result property="assetName"    column="asset_name"    />
+        <result property="equipmentName"    column="equipment_name"    />
+        <result property="equipmentCoverPhoto"    column="equipment_cover_photo"    />
+        <result property="equipmentNumber"    column="equipment_number"    />
+        <result property="equipmentQrCode"    column="equipment_qr_code"    />
+        <result property="equipmentStatus"    column="equipment_status"    />
+        <result property="equipmentModel"    column="equipment_model"    />
+        <result property="purchaseDate"    column="purchase_date"    />
+        <result property="equipmentPurpose"    column="equipment_purpose"    />
+        <result property="equipmentLocation"    column="equipment_location"    />
+        <result property="equipmentPrice"    column="equipment_price"    />
+        <result property="storageTime"    column="storage_time"    />
+        <result property="storagePerson"    column="storage_person"    />
+        <result property="outboundTime"    column="outbound_time"    />
+        <result property="outboundPerson"    column="outbound_person"    />
+        <result property="plateNumber"    column="plate_number"    />
+        <result property="equipmentPhotos"    column="equipment_photos"    />
+        <result property="maintenanceDate"    column="maintenance_date"    />
+        <result property="maintenancePerson"    column="maintenance_person"    />
+        <result property="warrantyPeriod"    column="warranty_period"    />
+        <result property="depreciationRate"    column="depreciation_rate"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectCommunityAssetsVo">
+        select community_asset_id, asset_id, asset_name, equipment_name, equipment_cover_photo, equipment_number, equipment_qr_code, equipment_status, equipment_model, purchase_date, equipment_purpose, equipment_location, equipment_price, storage_time, storage_person, outbound_time, outbound_person, plate_number, equipment_photos, maintenance_date, maintenance_person, warranty_period, depreciation_rate, create_by, create_time, update_by, update_time, remark from community_assets
+    </sql>
+
+    <select id="checkEquipmentNumberUnique" resultMap="CommunityAssetsResult" parameterType="java.lang.String">
+        <include refid="selectCommunityAssetsVo"/>
+        where equipment_number = #{equipmentNumber} limit 1
+    </select>
 </mapper>