This commit is contained in:
pengjie 2025-08-22 18:10:17 +08:00
parent e6ae3efd1c
commit 783f3d208b
46 changed files with 649 additions and 64 deletions

View File

@ -431,7 +431,9 @@
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--测试环境-->
<profile>
@ -453,9 +455,7 @@
<properties>
<profiles.active>prod</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>

View File

@ -36,18 +36,18 @@ public class MvcConfig implements WebMvcConfigurer {
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 匹配所有的路径
.allowCredentials(true) // 设置允许凭证
.allowedHeaders("*") // 设置请求头
.allowedMethods("GET", "POST", "PUT", "DELETE") // 设置允许的方式
.allowedOriginPatterns("*");
}
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer
.addPathPrefix("/village",c -> c.isAnnotationPresent(RestController.class));
}
// @Override
// public void addCorsMappings(CorsRegistry registry) {
// registry.addMapping("/**") // 匹配所有的路径
// .allowCredentials(true) // 设置允许凭证
// .allowedHeaders("*") // 设置请求头
// .allowedMethods("GET", "POST", "PUT", "DELETE") // 设置允许的方式
// .allowedOriginPatterns("*");
// }
//
// @Override
// public void configurePathMatch(PathMatchConfigurer configurer) {
// configurer
// .addPathPrefix("/village",c -> c.isAnnotationPresent(RestController.class));
// }
}

View File

@ -1,5 +1,6 @@
package net.lab1024.sa.admin.module.business.affairs.controller;
import net.lab1024.sa.admin.module.business.affairs.domain.entity.VillageIntroduceEntity;
import net.lab1024.sa.admin.module.business.affairs.domain.form.VillageIntroduceAddForm;
import net.lab1024.sa.admin.module.business.affairs.domain.form.VillageIntroduceQueryForm;
import net.lab1024.sa.admin.module.business.affairs.domain.form.VillageIntroduceUpdateForm;
@ -69,4 +70,11 @@ public class VillageIntroduceController {
public ResponseDTO<String> batchDelete(@PathVariable Long introduceId) {
return villageIntroduceService.delete(introduceId);
}
@Operation(summary = "单个查询 @author pengjie")
@GetMapping("/villageIntroduce/queryById/{villageId}")
@SaCheckPermission("villageIntroduce:query")
public ResponseDTO<VillageIntroduceEntity> queryById(@PathVariable Integer villageId) {
return villageIntroduceService.queryById(villageId);
}
}

View File

@ -19,6 +19,7 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.Map;
/**
* 内部邮件 Controller
@ -76,4 +77,18 @@ public class VillageMailController {
public ResponseDTO<String> batchDelete(@PathVariable Long mailId) {
return villageMailService.delete(mailId);
}
@Operation(summary = "单个删除 @author pengjie")
@GetMapping("/villageMail/queryById/{mailId}")
@SaCheckPermission("villageMail:query")
public ResponseDTO<VillageMailVO> queryById(@PathVariable Long mailId) {
return villageMailService.queryById(mailId);
}
@Operation(summary = "查询已读未读数量 @author pengjie")
@GetMapping("/villageMail/queryState")
@SaCheckPermission("villageMail:query")
public ResponseDTO<Map<String, Object>> queryState() {
return villageMailService.queryState();
}
}

View File

@ -31,4 +31,5 @@ public interface VillageMailDao extends BaseMapper<VillageMailEntity> {
*/
List<VillageMailVO> queryPage(Page page, @Param("queryForm") VillageMailQueryForm queryForm);
VillageMailVO queryById(@Param("id") Long id);
}

View File

@ -34,7 +34,7 @@ public class AffairsEntity {
private Integer type;
/**
* 可见范围类型(1:人员;2:部门)
* 可见范围类型(1:人员;2:部门;3:全部可见)
*/
private Integer rangeType;

View File

@ -20,7 +20,7 @@ public class AffairsAddForm {
@Schema(description = "类型")
private Integer type;
@Schema(description = "可见范围类型(1:人员;2:组织)")
@Schema(description = "可见范围类型(1:人员;2:组织;3:全部可见)")
private Integer rangeType;
@Schema(description = "发布范围")

View File

@ -25,7 +25,7 @@ public class AffairsUpdateForm {
@Schema(description = "类型")
private Integer type;
@Schema(description = "可见范围类型(1:人员;2:组织)")
@Schema(description = "可见范围类型(1:人员;2:组织;3:全部可见)")
private Integer rangeType;
@Schema(description = "发布范围")

View File

@ -26,4 +26,10 @@ public class VillageMailQueryForm extends PageParam {
@Schema(description = "主题")
private String title;
@Schema(description = "阅读状态(0未读1已读)")
private String state;
@Schema(description = "是否设为星标(0/1)")
private String asterisk;
}

View File

@ -27,7 +27,7 @@ public class AffairsVO {
@Schema(description = "类型")
private Integer type;
@Schema(description = "可见范围类型(1:人员;2:组织)")
@Schema(description = "可见范围类型(1:人员;2:组织;3:全部可见)")
private Integer rangeType;
@Schema(description = "发布范围")

View File

@ -53,6 +53,7 @@ public class VillageMailVO {
private String createByName;
@Schema(description = "创建人头像")
@JsonSerialize(using = FileKeyVoSerializer.class)
private String createByAvatar;
@Schema(description = "更新时间")

View File

@ -61,7 +61,7 @@ public class AffairsService {
list = affairsDao.queryPage(page, queryForm);
} else {
list = affairsDao.queryPage(queryForm);
list = list.stream().filter(l -> (StringUtils.isBlank(l.getRangeInfo()) && l.getRangeType() == null)
list = list.stream().filter(l -> (StringUtils.isBlank(l.getRangeInfo()) && l.getRangeType() == 3)
|| (l.getRangeInfo().contains(requestUser.getUserId().toString()) && l.getRangeType() == 1)
|| (l.getRangeInfo().contains(String.valueOf(requestUser.getDepartmentId())) && l.getRangeType() == 2))
.collect(Collectors.toList());

View File

@ -12,6 +12,7 @@ import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
@ -49,6 +50,7 @@ public class FundInfoService {
*/
public ResponseDTO<String> add(FundInfoAddForm addForm) {
FundInfoEntity fundInfoEntity = SmartBeanUtil.copy(addForm, FundInfoEntity.class);
fundInfoEntity.setCreateBy(SmartRequestUtil.getRequestUserId().toString());
fundInfoDao.insert(fundInfoEntity);
return ResponseDTO.ok();
}

View File

@ -15,6 +15,7 @@ import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import net.lab1024.sa.base.module.support.dict.domain.vo.DictValueVO;
import net.lab1024.sa.base.module.support.dict.service.DictCacheService;
import org.apache.commons.collections4.CollectionUtils;
@ -58,6 +59,7 @@ public class PropertyInfoService {
*/
public ResponseDTO<String> add(PropertyInfoAddForm addForm) {
PropertyInfoEntity propertyInfoEntity = SmartBeanUtil.copy(addForm, PropertyInfoEntity.class);
propertyInfoEntity.setCreateBy(SmartRequestUtil.getRequestUserId().toString());
propertyInfoDao.insert(propertyInfoEntity);
return ResponseDTO.ok();
}

View File

@ -17,6 +17,7 @@ import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import net.lab1024.sa.base.module.support.dict.domain.vo.DictValueVO;
import net.lab1024.sa.base.module.support.dict.service.DictCacheService;
import org.apache.commons.collections4.CollectionUtils;
@ -60,6 +61,7 @@ public class ResourceInfoService {
*/
public ResponseDTO<String> add(ResourceInfoAddForm addForm) {
ResourceInfoEntity resourceInfoEntity = SmartBeanUtil.copy(addForm, ResourceInfoEntity.class);
resourceInfoEntity.setCreateBy(SmartRequestUtil.getRequestUserId().toString());
resourceInfoDao.insert(resourceInfoEntity);
return ResponseDTO.ok();
}

View File

@ -12,6 +12,7 @@ import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
@ -49,6 +50,7 @@ public class VillageFrameworkService {
*/
public ResponseDTO<String> add(VillageFrameworkAddForm addForm) {
VillageFrameworkEntity villageFrameworkEntity = SmartBeanUtil.copy(addForm, VillageFrameworkEntity.class);
villageFrameworkEntity.setCreateBy(SmartRequestUtil.getRequestUserId().toString());
villageFrameworkDao.insert(villageFrameworkEntity);
return ResponseDTO.ok();
}

View File

@ -58,6 +58,7 @@ public class VillageIntroduceService {
return ResponseDTO.error(UserErrorCode.ALREADY_EXIST, "已存在乡村介绍信息");
}
VillageIntroduceEntity villageIntroduceEntity = SmartBeanUtil.copy(addForm, VillageIntroduceEntity.class);
villageIntroduceEntity.setCreateBy(SmartRequestUtil.getRequestUserId().toString());
villageIntroduceDao.insert(villageIntroduceEntity);
return ResponseDTO.ok();
}
@ -100,4 +101,15 @@ public class VillageIntroduceService {
villageIntroduceDao.deleteById(introduceId);
return ResponseDTO.ok();
}
/**
* 单个查询
*/
public ResponseDTO<VillageIntroduceEntity> queryById(Integer villageId) {
if (null == villageId){
return ResponseDTO.ok();
}
return ResponseDTO.ok(villageIntroduceDao.selectOne(Wrappers.<VillageIntroduceEntity>lambdaQuery().eq(VillageIntroduceEntity::getVillageId, villageId)));
}
}

View File

@ -1,7 +1,9 @@
package net.lab1024.sa.admin.module.business.affairs.service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -22,7 +24,10 @@ import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import net.lab1024.sa.base.module.support.file.service.IFileStorageService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -47,6 +52,9 @@ public class VillageMailService {
@Resource
private EmployeeDao employeeDao;
@Resource
private IFileStorageService fileStorageService;
/**
* 分页查询
*
@ -128,6 +136,28 @@ public class VillageMailService {
return ResponseDTO.ok();
}
/**
* 单个查询
*/
public ResponseDTO<VillageMailVO> queryById(Long mailId) {
if (null == mailId){
return ResponseDTO.ok();
}
return ResponseDTO.ok(villageMailDao.queryById(mailId));
}
/**
* 查询已读未读数量
*/
public ResponseDTO<Map<String, Object>> queryState() {
Map<String, Object> map = new HashMap<>();
String userId = SmartRequestUtil.getRequestUserId().toString();
map.put("read", villageMailDao.selectCount(Wrappers.<VillageMailEntity>lambdaQuery().eq(VillageMailEntity::getRecipient, userId).eq(VillageMailEntity::getState, 1)));
map.put("unRead", villageMailDao.selectCount(Wrappers.<VillageMailEntity>lambdaQuery().eq(VillageMailEntity::getRecipient, userId).eq(VillageMailEntity::getState, 0)));
return ResponseDTO.ok(map);
}
// private void build(List<VillageMailVO> list) {
// List<EmployeeEntity> employeeEntities = employeeDao.selectList(null);
// for (VillageMailVO villageMailVO : list) {

View File

@ -29,6 +29,20 @@ public class EventDraftEntity {
*/
private String address;
/**
* 位置
*/
private String addressName;
/**
* 纬度
*/
private String latitude;
/**
* 经度
*/
private String longitude;
/**
* 发生日期
*/

View File

@ -18,6 +18,15 @@ public class EventDraftAddForm {
@Schema(description = "详细位置")
private String address;
@Schema(description = "位置")
private String addressName;
@Schema(description = "纬度")
private String latitude;
@Schema(description = "经度")
private String longitude;
@Schema(description = "发生日期")
private LocalDate happenTime;

View File

@ -23,6 +23,15 @@ public class EventDraftUpdateForm {
@Schema(description = "详细位置")
private String address;
@Schema(description = "位置")
private String addressName;
@Schema(description = "纬度")
private String latitude;
@Schema(description = "经度")
private String longitude;
@Schema(description = "发生日期")
private LocalDate happenTime;

View File

@ -23,6 +23,15 @@ public class EventDraftVO {
@Schema(description = "详细位置")
private String address;
@Schema(description = "位置")
private String addressName;
@Schema(description = "纬度")
private String latitude;
@Schema(description = "经度")
private String longitude;
@Schema(description = "发生日期")
private LocalDate happenTime;

View File

@ -2,6 +2,7 @@ package net.lab1024.sa.admin.module.business.livelihood.controller;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.SurveyAnswerAddForm;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.SurveyAnswerQueryForm;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.SurveyAnswerSubmit;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.SurveyAnswerUpdateForm;
import net.lab1024.sa.admin.module.business.livelihood.domain.vo.SurveyAnswerVO;
import net.lab1024.sa.admin.module.business.livelihood.service.SurveyAnswerService;
@ -64,4 +65,10 @@ public class SurveyAnswerController {
public ResponseDTO<String> batchDelete(@PathVariable Long answerId) {
return surveyAnswerService.delete(answerId);
}
@Operation(summary = "提交 @author pengjie")
@PostMapping("/surveyAnswer/submit")
public ResponseDTO<String> submit(@RequestBody @Valid SurveyAnswerSubmit surveyAnswerSubmit) {
return surveyAnswerService.submit(surveyAnswerSubmit);
}
}

View File

@ -0,0 +1,29 @@
package net.lab1024.sa.admin.module.business.livelihood.domain.form;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import net.lab1024.sa.admin.module.business.livelihood.domain.entity.SurveyOptionEntity;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 民意调研问题提交
*
* @Author pengjie
* @Date 2025-08-04 16:28:17
* @Copyright jxj
*/
@Data
public class SurveyAnswerQuestionSubmit {
@Schema(description = "民意调研问题ID")
private Long questionId;
@Schema(description = "题目类型(1:单选;2:多选;3:简答)")
private Integer type;
@Schema(description = "选项,多选逗号隔开")
private String options;
}

View File

@ -0,0 +1,25 @@
package net.lab1024.sa.admin.module.business.livelihood.domain.form;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import net.lab1024.sa.admin.module.business.livelihood.domain.entity.SurveyQuestionEntity;
import java.util.List;
/**
* 民意调研结果提交
*
* @Author pengjie
* @Date 2025-08-02 17:25:41
* @Copyright jxj
*/
@Data
public class SurveyAnswerSubmit {
@Schema(description = "民意调研ID")
private Long surveyId;
@Schema(description = "民意调研问题ID")
private List<SurveyAnswerQuestionSubmit> questionSubmitList;
}

View File

@ -46,6 +46,9 @@ public class SurveyVO {
@Schema(description = "参与人数")
private Integer joinNum;
@Schema(description = "当前账号是否参与")
private Integer joinFlag;
@Schema(description = "绑定的题目ID")
private String questionId;

View File

@ -1,12 +1,14 @@
package net.lab1024.sa.admin.module.business.livelihood.service;
import java.util.ArrayList;
import java.util.List;
import net.lab1024.sa.admin.module.business.livelihood.dao.SurveyAnswerDao;
import net.lab1024.sa.admin.module.business.livelihood.domain.entity.SurveyAnswerEntity;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.SurveyAnswerAddForm;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.SurveyAnswerQueryForm;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.SurveyAnswerUpdateForm;
import net.lab1024.sa.admin.module.business.livelihood.domain.form.*;
import net.lab1024.sa.admin.module.business.livelihood.domain.vo.SurveyAnswerVO;
import net.lab1024.sa.admin.module.business.livelihood.manager.SurveyAnswerManager;
import net.lab1024.sa.admin.module.business.livelihood.manager.SurveyManager;
import net.lab1024.sa.base.common.domain.RequestUser;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
@ -32,6 +34,9 @@ public class SurveyAnswerService {
@Resource
private SurveyAnswerDao surveyAnswerDao;
@Resource
private SurveyAnswerManager surveyAnswerManager;
/**
* 分页查询
*
@ -93,4 +98,25 @@ public class SurveyAnswerService {
surveyAnswerDao.deleteById(answerId);
return ResponseDTO.ok();
}
/**
* 提交
*/
public ResponseDTO<String> submit(SurveyAnswerSubmit surveyAnswerSubmit) {
RequestUser requestUserId = SmartRequestUtil.getRequestUser();
List<SurveyAnswerEntity> list = new ArrayList<>();
List<SurveyAnswerQuestionSubmit> questionSubmitList = surveyAnswerSubmit.getQuestionSubmitList();
for (SurveyAnswerQuestionSubmit surveyAnswerQuestionSubmit : questionSubmitList) {
SurveyAnswerEntity surveyAnswerEntity = new SurveyAnswerEntity();
surveyAnswerEntity.setSurveyId(surveyAnswerSubmit.getSurveyId());
surveyAnswerEntity.setSurveyQuestionId(surveyAnswerQuestionSubmit.getQuestionId());
surveyAnswerEntity.setSurveyOptionId(surveyAnswerQuestionSubmit.getOptions());
surveyAnswerEntity.setAnswerPersonId(requestUserId.getUserId());
surveyAnswerEntity.setType(requestUserId.getType() == 4 ? 2 : 1);
surveyAnswerEntity.setCreateBy(requestUserId.getUserId().toString());
list.add(surveyAnswerEntity);
}
surveyAnswerManager.saveBatch(list);
return ResponseDTO.ok();
}
}

View File

@ -196,17 +196,17 @@ public class SurveyService {
for (SurveyAnswerQuestionEntity surveyAnswerQuestionEntity : questionList) {
List<SurveyAnswerOptionEntity> collect = optionList.stream().filter(o -> o.getQuestionId().toString()
.equals(surveyAnswerQuestionEntity.getQuestionId().toString())).collect(Collectors.toList());
List<SurveyAnswerEntity> surveyAnswerList = answerList.stream().filter(a ->
a.getSurveyQuestionId().toString().equals(surveyAnswerQuestionEntity.getQuestionId().toString())).collect(Collectors.toList());
if (surveyAnswerQuestionEntity.getType() == 3) {
List<SurveyAnswerEntity> surveyAnswerList = answerList.stream().filter(a ->
a.getSurveyQuestionId().toString().equals(surveyAnswerQuestionEntity.getQuestionId().toString())).collect(Collectors.toList());
surveyAnswerQuestionEntity.setAnswerList(surveyAnswerList.stream().map(s -> s.getSurveyOptionId()).collect(Collectors.toList()));
} else {
for (SurveyAnswerOptionEntity surveyAnswerOptionEntity : collect) {
List<SurveyAnswerEntity> surveyAnswerList = answerList.stream().filter(a -> a.getSurveyQuestionId().toString().equals(surveyAnswerQuestionEntity.getQuestionId().toString())
&& Arrays.asList(a.getSurveyOptionId().split(",")).contains(surveyAnswerOptionEntity.getOptionId().toString())).collect(Collectors.toList());
surveyAnswerOptionEntity.setHitNum(surveyAnswerList.size());
surveyAnswerOptionEntity.setRatio(surveyDetailVO.getTotal() == 0 ? new BigDecimal(0) :
new BigDecimal(surveyAnswerList.size()).divide(new BigDecimal(surveyDetailVO.getTotal()), 2, BigDecimal.ROUND_HALF_UP)
List<SurveyAnswerEntity> surveyAnswerHitList = surveyAnswerList.stream().filter(a ->
Arrays.asList(a.getSurveyOptionId().split(",")).contains(surveyAnswerOptionEntity.getOptionId().toString())).collect(Collectors.toList());
surveyAnswerOptionEntity.setHitNum(surveyAnswerHitList.size());
surveyAnswerOptionEntity.setRatio(surveyAnswerList.size() == 0 ? new BigDecimal(0) :
new BigDecimal(surveyAnswerHitList.size()).divide(new BigDecimal(surveyAnswerList.size()), 2, BigDecimal.ROUND_HALF_UP)
.multiply(new BigDecimal(100)));
}
surveyAnswerQuestionEntity.setAnswerOptionList(collect);
@ -218,9 +218,12 @@ public class SurveyService {
}
private void build(List<SurveyVO> list) {
String string = SmartRequestUtil.getRequestUserId().toString();
for (SurveyVO surveyVO : list) {
surveyVO.setJoinNum((int) surveyAnswerManager.count(Wrappers.<SurveyAnswerEntity>lambdaQuery()
.eq(SurveyAnswerEntity::getSurveyId, surveyVO.getSurveyId())));
List<SurveyAnswerEntity> answerEntityList = surveyAnswerManager.list(Wrappers.<SurveyAnswerEntity>lambdaQuery()
.eq(SurveyAnswerEntity::getSurveyId, surveyVO.getSurveyId()));
surveyVO.setJoinNum((int) answerEntityList.stream().map(s -> s.getAnswerPersonId()).distinct().count());
surveyVO.setJoinFlag(answerEntityList.stream().filter(a -> a.getAnswerPersonId().toString().equals(string)).count() > 0 ? 1 : 0);
}
}

View File

@ -3,6 +3,9 @@ package net.lab1024.sa.admin.module.business.village.controller;
import net.lab1024.sa.admin.module.business.village.domain.form.GroupAddForm;
import net.lab1024.sa.admin.module.business.village.domain.form.GroupQueryForm;
import net.lab1024.sa.admin.module.business.village.domain.form.GroupUpdateForm;
import net.lab1024.sa.admin.module.business.village.domain.vo.GridDetailVO;
import net.lab1024.sa.admin.module.business.village.domain.vo.GridTreeVO;
import net.lab1024.sa.admin.module.business.village.domain.vo.GroupDetailVO;
import net.lab1024.sa.admin.module.business.village.domain.vo.GroupVO;
import net.lab1024.sa.admin.module.business.village.service.GroupService;
import net.lab1024.sa.base.common.domain.ValidateList;
@ -77,4 +80,18 @@ public class GroupController {
public ResponseDTO<String> batchDelete(@RequestBody ValidateList<Long> idList) {
return groupService.batchDelete(idList);
}
@Operation(summary = "单个查询 @author pengjie")
@GetMapping("/group/queryById/{groupId}")
@SaCheckPermission("group:query")
public ResponseDTO<GroupDetailVO> queryById(@PathVariable Long groupId) {
return groupService.queryById(groupId);
}
@Operation(summary = "根据当前账号查询区域小组树 @author pengjie")
@GetMapping("/group/queryGroupTree")
@SaCheckPermission("group:query")
public ResponseDTO<List<GridTreeVO>> queryGroupTree() {
return groupService.queryGroupTree();
}
}

View File

@ -1,5 +1,6 @@
package net.lab1024.sa.admin.module.business.village.controller;
import net.lab1024.sa.admin.module.business.village.domain.entity.NewsEntity;
import net.lab1024.sa.admin.module.business.village.domain.form.NewsAddForm;
import net.lab1024.sa.admin.module.business.village.domain.form.NewsQueryForm;
import net.lab1024.sa.admin.module.business.village.domain.form.NewsUpdateForm;
@ -70,4 +71,11 @@ public class NewsController {
public ResponseDTO<String> batchDelete(@PathVariable Long id) {
return newsService.delete(id);
}
@Operation(summary = "单个查询 @author pengjie")
@GetMapping("/news/queryById/{id}")
@SaCheckPermission("news:query")
public ResponseDTO<NewsEntity> queryById(@PathVariable Long id) {
return newsService.queryById(id);
}
}

View File

@ -3,6 +3,8 @@ package net.lab1024.sa.admin.module.business.village.dao;
import java.util.List;
import net.lab1024.sa.admin.module.business.village.domain.entity.GroupEntity;
import net.lab1024.sa.admin.module.business.village.domain.form.GroupQueryForm;
import net.lab1024.sa.admin.module.business.village.domain.vo.GridDetailVO;
import net.lab1024.sa.admin.module.business.village.domain.vo.GroupDetailVO;
import net.lab1024.sa.admin.module.business.village.domain.vo.GroupVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -33,4 +35,5 @@ public interface GroupDao extends BaseMapper<GroupEntity> {
*/
List<GroupVO> queryPage(Page page, @Param("queryForm") GroupQueryForm queryForm);
GroupDetailVO queryById(@Param("id") Long id);
}

View File

@ -4,6 +4,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDateTime;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 村民信息 新建表单
*
@ -36,6 +38,7 @@ public class VillagerAddForm {
@Schema(description = "名族")
private String nation;
@NotBlank(message = "联系方式不能为空")
@Schema(description = "联系方式")
private String phone;

View File

@ -2,6 +2,7 @@ package net.lab1024.sa.admin.module.business.village.domain.form;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
@ -40,6 +41,7 @@ public class VillagerUpdateForm {
@Schema(description = "名族")
private String nation;
@NotBlank(message = "联系方式不能为空")
@Schema(description = "联系方式")
private String phone;

View File

@ -19,14 +19,20 @@ import java.util.List;
public class GridTreeVO{
@Schema(description = "ID")
private Long id;
private String id;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "名称")
private String name;
@Schema(description = "类型1:组织;2:网格")
@Schema(description = "类型1:组织;2:网格/小组")
private Integer type;
@Schema(description = "层级")
private String level;
@Schema(description = "子级")
private List<GridTreeVO> chidrenList;
}

View File

@ -0,0 +1,68 @@
package net.lab1024.sa.admin.module.business.village.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import net.lab1024.sa.admin.module.business.village.domain.entity.EnterpriseEntity;
import net.lab1024.sa.admin.module.business.village.domain.entity.VillagerEntity;
import java.util.List;
/**
* 小组信息 详细VO
*
* @Author pengjie
* @Date 2025-02-18 09:55:32
* @Copyright jxj
*/
@Data
public class GroupDetailVO extends GroupVO{
@Schema(description = "总人口")
private Integer villagerTotal;
@Schema(description = "男性")
private Integer man;
@Schema(description = "女性")
private Integer woman;
@Schema(description = "常住人口")
private Integer permanentVillager;
@Schema(description = "流动人口")
private Integer flowVillager;
@Schema(description = "外出人口")
private Integer goOutVillager;
@Schema(description = "空挂人口")
private Integer EmptyHangingVillager;
@Schema(description = "楼房类型数量统计")
private List<BuildTypeStatVO> buildTypeStatVOList;
@Schema(description = "实有企业")
private List<EnterpriseEntity> enterpriseEntityList;
@Schema(description = "楼房数量")
private Integer floorNum;
@Schema(description = "房屋数量")
private Integer homeNum;
@Schema(description = "院落数量")
private Integer courtyardNum;
@Schema(description = "户籍数量")
private Integer householdRegisterNum;
@Schema(description = "农场数量")
private Integer farmNum;
@Schema(description = "企业数量")
private Integer enterpriseNum;
@Schema(description = "事件数量")
private Integer eventNum;
}

View File

@ -28,6 +28,12 @@ public class GroupVO {
@Schema(description = "组长")
private String groupMaster;
@Schema(description = "网格长")
private String gridMasterName;
@Schema(description = "网格长联系方式")
private String gridMasterPhone;
@Schema(description = "联系方式")
private String phone;

View File

@ -5,6 +5,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import net.lab1024.sa.admin.module.business.event.domain.entity.EventEntity;
import net.lab1024.sa.admin.module.business.event.manager.EventManager;
@ -156,10 +157,12 @@ public class GridService {
}
GridDetailVO gridDetailVO = gridDao.queryById(gridId);
List<VillagerEntity> villagerVOList = villagerDao.selectList(Wrappers.<VillagerEntity>lambdaQuery().eq(VillagerEntity::getGridId, gridId));
List<String> list = Arrays.asList(gridDetailVO.getGridOperator().split(","));
List<VillagerEntity> gridOperatorList = villagerVOList.stream().filter(v -> list.contains(v.getVillagerId().toString())).collect(Collectors.toList());
gridDetailVO.setGridOperatorName(gridOperatorList.stream().map(g -> g.getVillagerId().toString()).collect(Collectors.joining(",")));
gridDetailVO.setGridOperatorList(gridOperatorList);
if (StringUtils.isNotBlank(gridDetailVO.getGridOperator())) {
List<String> list = Arrays.asList(gridDetailVO.getGridOperator().split(","));
List<VillagerEntity> gridOperatorList = villagerVOList.stream().filter(v -> list.contains(v.getVillagerId().toString())).collect(Collectors.toList());
gridDetailVO.setGridOperatorName(gridOperatorList.stream().map(g -> g.getName().toString()).collect(Collectors.joining(",")));
gridDetailVO.setGridOperatorList(gridOperatorList);
}
gridDetailVO.setVillagerTotal(villagerVOList.size());
gridDetailVO.setMan((int) villagerVOList.stream().filter(v -> v.getSex() == 1).count());
gridDetailVO.setWoman((int) villagerVOList.stream().filter(v -> v.getSex() == 2).count());
@ -204,33 +207,68 @@ public class GridService {
gridDetailVO.setFarmNum((int) farmManager.count(Wrappers.<FarmEntity>lambdaQuery().eq(FarmEntity::getGridId, gridId)));
gridDetailVO.setEnterpriseNum(enterpriseEntityList.size());
gridDetailVO.setEventNum((int) eventManager.count(Wrappers.<EventEntity>lambdaQuery().eq(EventEntity::getGridId, gridId)));
return ResponseDTO.ok();
return ResponseDTO.ok(gridDetailVO);
}
/**
* 根据当前账号查询区域网格树
*/
public ResponseDTO<List<GridTreeVO>> queryGridTree() {
List<GridTreeVO> list = new ArrayList<>();
RequestUser requestUser = SmartRequestUtil.getRequestUser();
Integer villageId = requestUser.getVillageId();
List<VillageEntity> parentList = villageManager.list(Wrappers.<VillageEntity>lambdaQuery()
List<VillageEntity> parents = villageManager.list(Wrappers.<VillageEntity>lambdaQuery()
.eq(VillageEntity::getState, 1)
.eq(VillageEntity::getId, villageId));
List<VillageEntity> allList = new ArrayList<>();
allList.addAll(parentList);
for (VillageEntity villageEntity : parentList) {
allList.addAll(villageManager.list(Wrappers.<VillageEntity>lambdaQuery().apply("find_in_set({0}, ancestors)", villageEntity.getId())));
List<GridTreeVO> allList = new ArrayList<>();
List<GridTreeVO> parentList = new ArrayList<>();
for (VillageEntity villageEntity : parents) {
GridTreeVO gridTreeVO = new GridTreeVO();
gridTreeVO.setId(villageEntity.getId().toString());
gridTreeVO.setParentId(villageEntity.getParentId().toString());
gridTreeVO.setName(villageEntity.getName());
gridTreeVO.setType(1);
allList.add(gridTreeVO);
parentList.add(gridTreeVO);
}
getVillageChildren(parentList, allList);
return ResponseDTO.ok(list);
for (VillageEntity villageEntity : parents) {
List<VillageEntity> villageEntityList = villageManager.list(Wrappers.<VillageEntity>lambdaQuery().apply("find_in_set({0}, ancestors)", villageEntity.getId()));
for (VillageEntity villageEntity1 : villageEntityList) {
GridTreeVO gridTreeVO = new GridTreeVO();
gridTreeVO.setId(villageEntity1.getId().toString());
gridTreeVO.setParentId(villageEntity1.getParentId().toString());
gridTreeVO.setName(villageEntity1.getName());
gridTreeVO.setType(1);
allList.add(gridTreeVO);
}
}
List<GridEntity> gridEntityList = gridDao.selectList(null);
getVillageChildren(parentList, allList, gridEntityList);
return ResponseDTO.ok(parentList);
}
private void getVillageChildren(List<VillageEntity> parentList, List<VillageEntity> allList) {
for (VillageEntity village : parentList) {
List<VillageEntity> collect = allList.stream().filter(a -> a.getParentId().toString().equals(village.getId().toString())).collect(Collectors.toList());
getVillageChildren(collect, allList);
village.setVillageList(collect);
private void getVillageChildren(List<GridTreeVO> parentList, List<GridTreeVO> allList, List<GridEntity> gridEntityList) {
for (GridTreeVO gridTreeVO : parentList) {
List<GridTreeVO> collect = allList.stream().filter(a -> a.getParentId().toString().equals(gridTreeVO.getId().toString())).collect(Collectors.toList());
if (collect.size() > 0) {
getVillageChildren(collect, allList, gridEntityList);
gridTreeVO.setChidrenList(collect);
} else {
buildGrid(gridTreeVO, gridEntityList);
}
}
}
private void buildGrid(GridTreeVO gridTreeVO, List<GridEntity> gridEntityList) {
List<GridEntity> collect = gridEntityList.stream().filter(g -> g.getVillageId() != null && g.getVillageId().toString().equals(gridTreeVO.getId())).collect(Collectors.toList());
List<GridTreeVO> children = new ArrayList<>();
for (GridEntity gridEntity : collect) {
GridTreeVO gridTreeVO1 = new GridTreeVO();
gridTreeVO1.setId(gridEntity.getGridId().toString());
gridTreeVO1.setParentId(gridTreeVO.getId());
gridTreeVO1.setName(gridEntity.getName());
gridTreeVO1.setType(2);
children.add(gridTreeVO1);
}
gridTreeVO.setChidrenList(children);
}
}

View File

@ -1,12 +1,26 @@
package net.lab1024.sa.admin.module.business.village.service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import net.lab1024.sa.admin.module.business.village.dao.GroupDao;
import net.lab1024.sa.admin.module.business.village.domain.entity.GroupEntity;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import net.lab1024.sa.admin.module.business.event.domain.entity.EventEntity;
import net.lab1024.sa.admin.module.business.event.manager.EventManager;
import net.lab1024.sa.admin.module.business.village.dao.*;
import net.lab1024.sa.admin.module.business.village.domain.entity.*;
import net.lab1024.sa.admin.module.business.village.domain.form.GroupAddForm;
import net.lab1024.sa.admin.module.business.village.domain.form.GroupQueryForm;
import net.lab1024.sa.admin.module.business.village.domain.form.GroupUpdateForm;
import net.lab1024.sa.admin.module.business.village.domain.vo.GroupVO;
import net.lab1024.sa.admin.module.business.village.domain.vo.*;
import net.lab1024.sa.admin.module.business.village.manager.CourtyardManager;
import net.lab1024.sa.admin.module.business.village.manager.FarmManager;
import net.lab1024.sa.admin.module.business.village.manager.HomeManager;
import net.lab1024.sa.admin.module.business.village.manager.HouseholdRegisterManager;
import net.lab1024.sa.admin.module.system.village.domain.entity.VillageEntity;
import net.lab1024.sa.admin.module.system.village.manager.VillageManager;
import net.lab1024.sa.base.common.domain.RequestUser;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
@ -32,6 +46,36 @@ public class GroupService {
@Resource
private GroupDao groupDao;
@Resource
private VillagerDao villagerDao;
@Resource
private EnterpriseDao enterpriseDao;
@Resource
private BuildTypeDao buildTypeDao;
@Resource
private FloorDao floorDao;
@Resource
private HomeManager homeManager;
@Resource
private CourtyardManager courtyardManager;
@Resource
private HouseholdRegisterManager householdRegisterManager;
@Resource
private FarmManager farmManager;
@Resource
private EventManager eventManager;
@Resource
private VillageManager villageManager;
/**
* 分页查询
*
@ -103,4 +147,126 @@ public class GroupService {
groupDao.deleteById(groupId);
return ResponseDTO.ok();
}
/**
* 单个查询
*/
public ResponseDTO<GroupDetailVO> queryById(Long groupId) {
if (null == groupId){
return ResponseDTO.ok();
}
GroupDetailVO groupDetailVO = groupDao.queryById(groupId);
List<VillagerEntity> villagerVOList = villagerDao.selectList(Wrappers.<VillagerEntity>lambdaQuery().eq(VillagerEntity::getGroupId, groupId));
// List<String> list = Arrays.asList(groupDetailVO.getGridOperator().split(","));
// List<VillagerEntity> gridOperatorList = villagerVOList.stream().filter(v -> list.contains(v.getVillagerId().toString())).collect(Collectors.toList());
// gridDetailVO.setGridOperatorName(gridOperatorList.stream().map(g -> g.getVillagerId().toString()).collect(Collectors.joining(",")));
// gridDetailVO.setGridOperatorList(gridOperatorList);
groupDetailVO.setVillagerTotal(villagerVOList.size());
groupDetailVO.setMan((int) villagerVOList.stream().filter(v -> v.getSex() == 1).count());
groupDetailVO.setWoman((int) villagerVOList.stream().filter(v -> v.getSex() == 2).count());
List<BuildTypeEntity> buildTypeEntityList = buildTypeDao.selectList(null);
List<FloorEntity> floorEntityList = floorDao.selectList(Wrappers.<FloorEntity>lambdaQuery().eq(FloorEntity::getGridId, groupId));
List<BuildTypeStatVO> statVOList = new ArrayList<>();
for (BuildTypeEntity buildTypeEntity : buildTypeEntityList) {
BuildTypeStatVO buildTypeStatVO = new BuildTypeStatVO();
buildTypeStatVO.setName(buildTypeEntity.getName());
buildTypeStatVO.setNum((int) floorEntityList.stream().filter(f -> f.getBuildTypeId().toString().equals(buildTypeEntity.getBuildTypeId().toString())).count());
statVOList.add(buildTypeStatVO);
}
groupDetailVO.setBuildTypeStatVOList(statVOList);
List<HomeEntity> homeEntityList = homeManager.list(Wrappers.<HomeEntity>lambdaQuery().eq(HomeEntity::getGridId, groupId));
groupDetailVO.setHomeNum(homeEntityList.size());
List<CourtyardEntity> courtyardEntityList = courtyardManager.list(Wrappers.<CourtyardEntity>lambdaQuery().eq(CourtyardEntity::getGridId, groupId));
groupDetailVO.setCourtyardNum(courtyardEntityList.size());
List<EnterpriseEntity> enterpriseEntityList = new ArrayList<>();
if (homeEntityList.size() > 0) {
enterpriseEntityList.addAll(enterpriseDao.selectList(Wrappers.<EnterpriseEntity>lambdaQuery().eq(EnterpriseEntity::getPermanentType, 1)
.in(EnterpriseEntity::getPermanentId, homeEntityList.stream().map(h -> h.getHomeId()).collect(Collectors.toList()))));
}
if (courtyardEntityList.size() > 0) {
enterpriseEntityList.addAll(enterpriseDao.selectList(Wrappers.<EnterpriseEntity>lambdaQuery().eq(EnterpriseEntity::getPermanentType, 2)
.in(EnterpriseEntity::getPermanentId, courtyardEntityList.stream().map(c -> c.getCourtyardId()).collect(Collectors.toList()))));
}
groupDetailVO.setEnterpriseEntityList(enterpriseEntityList);
groupDetailVO.setFloorNum(floorEntityList.size());
int num = 0;
if (homeEntityList.size() > 0) {
num = num + (int)householdRegisterManager.count(Wrappers.<HouseholdRegisterEntity>lambdaQuery()
.in(HouseholdRegisterEntity::getPermanentId, homeEntityList.stream().map(h -> h.getHomeId()).collect(Collectors.toList()))
.eq(HouseholdRegisterEntity::getPermanentType, 1));
}
if (courtyardEntityList.size() > 0) {
num = num + (int)householdRegisterManager.count(Wrappers.<HouseholdRegisterEntity>lambdaQuery()
.in(HouseholdRegisterEntity::getPermanentId, courtyardEntityList.stream().map(c -> c.getCourtyardId()).collect(Collectors.toList()))
.eq(HouseholdRegisterEntity::getPermanentType, 2));
}
groupDetailVO.setHouseholdRegisterNum(num);
groupDetailVO.setFarmNum((int) farmManager.count(Wrappers.<FarmEntity>lambdaQuery().eq(FarmEntity::getGridId, groupId)));
groupDetailVO.setEnterpriseNum(enterpriseEntityList.size());
groupDetailVO.setEventNum((int) eventManager.count(Wrappers.<EventEntity>lambdaQuery().eq(EventEntity::getGridId, groupId)));
return ResponseDTO.ok(groupDetailVO);
}
/**
* 根据当前账号查询区域网格树
*/
public ResponseDTO<List<GridTreeVO>> queryGroupTree() {
RequestUser requestUser = SmartRequestUtil.getRequestUser();
Integer villageId = requestUser.getVillageId();
List<VillageEntity> parents = villageManager.list(Wrappers.<VillageEntity>lambdaQuery()
.eq(VillageEntity::getState, 1)
.eq(VillageEntity::getId, villageId));
List<GridTreeVO> allList = new ArrayList<>();
List<GridTreeVO> parentList = new ArrayList<>();
for (VillageEntity villageEntity : parents) {
GridTreeVO gridTreeVO = new GridTreeVO();
gridTreeVO.setId(villageEntity.getId().toString());
gridTreeVO.setParentId(villageEntity.getParentId().toString());
gridTreeVO.setName(villageEntity.getName());
gridTreeVO.setType(1);
allList.add(gridTreeVO);
parentList.add(gridTreeVO);
}
for (VillageEntity villageEntity : parents) {
List<VillageEntity> villageEntityList = villageManager.list(Wrappers.<VillageEntity>lambdaQuery().apply("find_in_set({0}, ancestors)", villageEntity.getId()));
for (VillageEntity villageEntity1 : villageEntityList) {
GridTreeVO gridTreeVO = new GridTreeVO();
gridTreeVO.setId(villageEntity1.getId().toString());
gridTreeVO.setParentId(villageEntity1.getParentId().toString());
gridTreeVO.setName(villageEntity1.getName());
gridTreeVO.setType(1);
allList.add(gridTreeVO);
}
}
List<GroupEntity> groupEntityList = groupDao.selectList(null);
getVillageChildren(parentList, allList, groupEntityList);
return ResponseDTO.ok(parentList);
}
private void getVillageChildren(List<GridTreeVO> parentList, List<GridTreeVO> allList, List<GroupEntity> gridEntityList) {
for (GridTreeVO gridTreeVO : parentList) {
List<GridTreeVO> collect = allList.stream().filter(a -> a.getParentId().toString().equals(gridTreeVO.getId().toString())).collect(Collectors.toList());
if (collect.size() > 0) {
getVillageChildren(collect, allList, gridEntityList);
gridTreeVO.setChidrenList(collect);
} else {
buildGrid(gridTreeVO, gridEntityList);
}
}
}
private void buildGrid(GridTreeVO gridTreeVO, List<GroupEntity> groupEntityList) {
List<GroupEntity> collect = groupEntityList.stream().filter(g -> g.getVillageId() != null && g.getVillageId().toString().equals(gridTreeVO.getId())).collect(Collectors.toList());
List<GridTreeVO> children = new ArrayList<>();
for (GroupEntity groupEntity : collect) {
GridTreeVO gridTreeVO1 = new GridTreeVO();
gridTreeVO1.setId(groupEntity.getGroupId().toString());
gridTreeVO1.setParentId(gridTreeVO.getId());
gridTreeVO1.setName(groupEntity.getName());
gridTreeVO1.setType(2);
children.add(gridTreeVO1);
}
gridTreeVO.setChidrenList(children);
}
}

View File

@ -94,4 +94,14 @@ public class NewsService {
newsDao.deleteById(id);
return ResponseDTO.ok();
}
/**
* 单个查询
*/
public ResponseDTO<NewsEntity> queryById(Long id) {
if (null == id){
return ResponseDTO.ok();
}
return ResponseDTO.ok(newsDao.selectById(id));
}
}

View File

@ -19,6 +19,7 @@ import net.lab1024.sa.admin.module.business.village.domain.vo.*;
import net.lab1024.sa.admin.module.business.village.manager.*;
import net.lab1024.sa.admin.module.system.village.domain.entity.VillageEntity;
import net.lab1024.sa.admin.util.ExcelUtils;
import net.lab1024.sa.base.common.code.UserErrorCode;
import net.lab1024.sa.base.common.domain.PageResult;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.exception.BusinessException;
@ -137,6 +138,10 @@ public class VillagerService {
* 添加
*/
public ResponseDTO<String> add(VillagerAddForm addForm) {
VillagerEntity exist = villagerDao.selectOne(Wrappers.<VillagerEntity>lambdaQuery().eq(VillagerEntity::getPhone, addForm.getPhone()));
if (exist != null) {
return ResponseDTO.error(UserErrorCode.ALREADY_EXIST, "手机号码已存在");
}
VillagerEntity villagerEntity = SmartBeanUtil.copy(addForm, VillagerEntity.class);
villagerEntity.setCreateBy(SmartRequestUtil.getRequestUser().getUserId().toString());
villagerDao.insert(villagerEntity);
@ -158,6 +163,12 @@ public class VillagerService {
* @return
*/
public ResponseDTO<String> update(VillagerUpdateForm updateForm) {
VillagerEntity exist = villagerDao.selectOne(Wrappers.<VillagerEntity>lambdaQuery()
.eq(VillagerEntity::getPhone, updateForm.getPhone())
.ne(VillagerEntity::getVillagerId, updateForm.getVillagerId()));
if (exist != null) {
return ResponseDTO.error(UserErrorCode.ALREADY_EXIST, "手机号码已存在");
}
VillagerEntity villagerEntity = SmartBeanUtil.copy(updateForm, VillagerEntity.class);
villagerDao.updateById(villagerEntity);
LambdaUpdateWrapper<HomeVillagerEntity> wrapper = Wrappers.<HomeVillagerEntity>lambdaUpdate();

View File

@ -240,6 +240,7 @@ public class EmployeeService {
entity.setGender(villager.getSex());
entity.setPhone(phone);
entity.setDeletedFlag(Boolean.FALSE);
entity.setDisabledFlag(Boolean.FALSE);
entity.setType(4);
List<Long> roleIds = new ArrayList<>();
roleIds.add(role.getRoleId());

View File

@ -202,7 +202,7 @@ public class LoginService implements StpInterface {
* 验证短信验证码
*/
public ResponseDTO<String> checkSmsCode(VillagerLoginForm villagerLoginForm) {
String redisCaptchaKey = redisService.generateRedisKey(RedisKeyConst.Support.SMS, villagerLoginForm.getPhone());
String redisCaptchaKey = redisService.generateRedisKey(RedisKeyConst.Support.REG_SMS, villagerLoginForm.getPhone());
String codeCache = redisService.get(redisCaptchaKey);
if (!villagerLoginForm.getSmsCode().equals(codeCache)) {
return ResponseDTO.userErrorParam("验证码错误");
@ -378,6 +378,7 @@ public class LoginService implements StpInterface {
// 创建账号并设置默认权限
employeeService.addVillagerEmployee(villagerLoginForm.getPhone(), villager);
}
employeeEntity = employeeService.getByLoginName(villagerLoginForm.getPhone() + "@4");
// 验证账号状态
if (employeeEntity.getDeletedFlag()) {
saveLoginLog(employeeEntity, ip, userAgent, "账号已注销", LoginLogResultEnum.LOGIN_FAIL);
@ -427,7 +428,7 @@ public class LoginService implements StpInterface {
// 设置 token
loginResultVO.setToken(token);
loginResultVO.setVillageId(villager.getVillageId());
// 清除权限缓存
permissionCache.remove(employeeEntity.getEmployeeId());

View File

@ -39,8 +39,24 @@
<if test="queryForm.title != null and queryForm.title != ''">
AND INSTR(village_mail.title,#{queryForm.title})
</if>
<!--状态-->
<if test="queryForm.state != null and queryForm.state != ''">
AND village_mail.state = #{queryForm.state}
</if>
<!--星标-->
<if test="queryForm.asterisk != null and queryForm.asterisk != ''">
AND village_mail.asterisk = #{queryForm.asterisk}
</if>
</where>
</select>
<!-- 单个查询 -->
<select id="queryById" resultType="net.lab1024.sa.admin.module.business.affairs.domain.vo.VillageMailVO">
SELECT
<include refid="base_columns"/>
FROM village_mail
left join t_employee e1 on village_mail.create_by = e1.employee_id
left join t_employee e2 on village_mail.recipient = e2.employee_id
where village_mail.mail_id = #{id}
</select>
</mapper>

View File

@ -6,6 +6,9 @@
<sql id="base_columns">
event_draft.id,
event_draft.address,
event_draft.address_name,
event_draft.latitude,
event_draft.longitude,
event_draft.happen_time,
event_draft.type,
event_draft.event_desc,

View File

@ -8,6 +8,7 @@
grid.code,
grid.name,
grid.grid_master,
grid.grid_operator,
grid.color,
grid.map_data,
grid.create_time,
@ -41,6 +42,6 @@
<include refid="base_columns"/>
FROM grid
left join villager on grid.grid_master = villager.villager_id
where grid_id = #{id}
where grid.grid_id = #{id}
</select>
</mapper>

View File

@ -14,7 +14,9 @@
group_info.create_time,
group_info.create_by,
group_info.update_time,
group_info.village_id
group_info.village_id,
villager.name groupMasterName,
villager.phone groupMasterPhone
</sql>
<!-- 分页查询 -->
@ -22,6 +24,7 @@
SELECT
<include refid="base_columns"/>
FROM group_info
left join villager on group_info.group_master = villager.villager_id
<where>
<!--关键字查询-->
<if test="queryForm.keywords != null and queryForm.keywords != ''">
@ -33,5 +36,12 @@
</where>
</select>
<!-- 单个查询 -->
<select id="queryById" resultType="net.lab1024.sa.admin.module.business.village.domain.vo.GroupDetailVO">
SELECT
<include refid="base_columns"/>
FROM group_info
left join villager on group_info.group_master = villager.villager_id
where group_info.group_id = #{id}
</select>
</mapper>