ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -172,24 +172,29 @@ // if(zfFamily!=null&&zfFamily.getMid()!=null) // infoUser.setMomId(zfFamily.getMid()); if (user.getFid() != null){ ZInfoUser father = zInfoUserService.getById(user.getFid()); if (father.getIsMyFamily() == 1) System.out.println("11111111111111111111111111111111/"); infoUser.setFamilyId(father.getFamilyId()); if (!zInfoUserService.getById(user.getUserId()).getFatherId().equals(user.getFid())){ if (user.getFid() != null){ ZInfoUser father = zInfoUserService.getById(user.getFid()); if (father.getIsMyFamily() == 1) System.out.println("11111111111111111111111111111111/"); infoUser.setFamilyId(father.getFamilyId()); } } else if(user.getMid() != null){ ZInfoUser mother = zInfoUserService.getById(user.getMid()); if (mother.getIsMyFamily() == 1) System.out.println("2222222222222222222222222222222222/"); infoUser.setFamilyId(mother.getFamilyId()); } else if (user.getSpouseId()!=null) { ZInfoUser spouse = zInfoUserService.getById(user.getSpouseId()); System.out.println("33333333333333333333333333333333333333333/"); infoUser.setFamilyId(spouse.getFamilyId()); infoUser.setSpouseId(user.getSpouseId()); } // else if(user.getMid() != null){ // ZInfoUser mother = zInfoUserService.getById(user.getMid()); // if (mother.getIsMyFamily() == 1) // System.out.println("2222222222222222222222222222222222/"); // infoUser.setFamilyId(mother.getFamilyId()); // } if ( !zInfoUserService.getById(user.getUserId()).getSpouseId().equals(user.getSpouseId())){ if (zInfoUserService.getById(user.getUserId()).getIsMyFamily() == 0) { ZInfoUser spouse = zInfoUserService.getById(user.getSpouseId()); System.out.println("33333333333333333333333333333333333333333/"); infoUser.setFamilyId(spouse.getFamilyId()); infoUser.setSpouseId(user.getSpouseId()); } } zInfoUserService.saveOrUpdate(infoUser); if(user.getSpouseId()!=null) { ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfClanController.java
New file @@ -0,0 +1,59 @@ package com.ruoyi.web.controller.zhang; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.domain.Meeting; import com.ruoyi.domain.ZfClan; import com.ruoyi.service.ZfClanService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import static com.ruoyi.common.core.page.TableSupport.*; @RestController @RequestMapping("/ZfClan") public class ZfClanController { @Autowired ZfClanService zfClanService; @GetMapping("/all") public AjaxResult listAll(ZfClan zfClan){ Integer pageNo = Convert.toInt(ServletUtils.getParameter(PAGE_NO), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); return zfClanService.selectDataList(zfClan, pageNo, pageSize); } /** * 新增家族 */ @Log(title = "家族", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ZfClan zfClan) { return zfClanService.addData(zfClan); } /** * 修改家族 */ @Log(title = "家族", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ZfClan zfClan) { return zfClanService.updateData(zfClan); } /** * 批量删除家族 */ @Log(title = "家族", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long ids) { return zfClanService.deleteData(ids); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfClanManageController.java
New file @@ -0,0 +1,49 @@ package com.ruoyi.web.controller.zhang; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.domain.ZfClanManage; import com.ruoyi.service.ZfClanManageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.method.P; import org.springframework.web.bind.annotation.*; import static com.ruoyi.common.core.page.TableSupport.*; @RestController @RequestMapping("/ZfClanManage") public class ZfClanManageController { @Autowired ZfClanManageService zfClanManageService; @GetMapping("/all/{clanId}") public AjaxResult listAll(@PathVariable Integer clanId){ Integer pageNo = Convert.toInt(ServletUtils.getParameter(PAGE_NO), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); return zfClanManageService.selectDataList(clanId, pageNo, pageSize); } /** * 新增家族成员 */ @Log(title = "家族管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ZfClanManage zfClanManage) { return zfClanManageService.addData(zfClanManage); } /** * 批量删除家族成员 */ @Log(title = "家族管理", businessType = BusinessType.DELETE) @DeleteMapping("/{clanId}/{id}") public AjaxResult remove(@PathVariable Integer id, @PathVariable Integer clanId) { return zfClanManageService.deleteData(clanId,id); } } zhang-content/src/main/java/com/ruoyi/domain/ZInfoUser.java
@@ -180,6 +180,11 @@ private Long momId; /** * 母亲的id */ private Integer clanId; /** * 出生年月日 */ @JsonFormat(pattern = "yyyy-MM-dd") zhang-content/src/main/java/com/ruoyi/domain/ZfClan.java
@@ -8,7 +8,7 @@ @Data @TableName("zf_clan") public class ZfClan { @TableId(value = "id", type = IdType.AUTO) @TableId(value = "clan_id", type = IdType.AUTO) private Integer clanId; /** zhang-content/src/main/java/com/ruoyi/domain/ZfClanDate.java
New file @@ -0,0 +1,31 @@ package com.ruoyi.domain; import lombok.Data; import java.util.HashMap; @Data public class ZfClanDate { private Integer clanId; /** * 家族名称 */ private String clanName; /** * 父亲名字 */ private HashMap<Integer,String> dadName; /** * 母亲名字 */ private HashMap<Integer,String> momName; /** * 管理员名字 */ private HashMap<Integer,String> adminName; } zhang-content/src/main/java/com/ruoyi/domain/ZfClanManage.java
@@ -10,6 +10,9 @@ @TableName("zf_clan_manage") public class ZfClanManage { @TableId(value = "id", type = IdType.AUTO) private Integer id; private Integer clanId; /** @@ -17,4 +20,9 @@ */ private Integer memberId; /** * 成员角色类型role_id */ private Integer roleId; } zhang-content/src/main/java/com/ruoyi/service/ZfClanManageService.java
@@ -7,10 +7,14 @@ import com.ruoyi.domain.ZfClanManage; public interface ZfClanManageService extends IService<ZfClanManage> { AjaxResult selectDataList(ZfClanManage zfClanManage, Integer pageNum, Integer pageSize); AjaxResult selectDataList(Integer clanId, Integer pageNo, Integer pageSize); void addA(Integer clanId,Integer memberId,Integer roleId); void deleteMember(Long ids); AjaxResult addData(ZfClanManage zfClanManage); AjaxResult deleteData(Long[] ids); AjaxResult deleteData(Integer clanId, Integer id); } zhang-content/src/main/java/com/ruoyi/service/ZfClanService.java
@@ -6,14 +6,16 @@ import com.ruoyi.domain.Meeting; import com.ruoyi.domain.ZfClan; import java.util.List; public interface ZfClanService extends IService<ZfClan> { AjaxResult selectDataList(ZfClan zfClan, Integer pageNum, Integer pageSize); AjaxResult selectDataList(ZfClan zfClan, Integer pageNo, Integer pageSize); AjaxResult addData(ZfClan zfClan); AjaxResult updateData(ZfClan zfClan); AjaxResult deleteData(Long[] ids); AjaxResult deleteData(Long ids); } zhang-content/src/main/java/com/ruoyi/service/impl/ZfClanManageServiceImpl.java
@@ -1,28 +1,239 @@ package com.ruoyi.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.EsModel; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.domain.ZInfoUser; import com.ruoyi.domain.ZfClanManage; import com.ruoyi.mapper.ZfClanManageMapper; import com.ruoyi.service.ZfClanManageService; import com.ruoyi.service.*; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @Service public class ZfClanManageServiceImpl extends ServiceImpl<ZfClanManageMapper, ZfClanManage> implements ZfClanManageService { @Resource private EsService esSer; @Resource ZInfoUserService zInfoUserService; @Resource private RestHighLevelClient restHighLevelClient; @Resource private ZfClanManageService zfClanManageService; @Resource private ZfClanService zfClanService; // @Resource // private ISysUserService iSysUserService; private LambdaQueryWrapper<ZfClanManage> buildCondition(ZfClanManage zfClanManage) { LambdaQueryWrapper<ZfClanManage> lqw = new LambdaQueryWrapper<>(); lqw.orderByDesc(ZfClanManage::getId); lqw.like(zfClanManage.getClanId() !=null , ZfClanManage::getClanId, zfClanManage.getClanId()) .like(zfClanManage.getMemberId() !=null, ZfClanManage::getClanId, zfClanManage.getClanId()); return lqw; } private LambdaQueryWrapper<ZfClanManage> uniqueCondition(ZfClanManage zfClanManage){ LambdaQueryWrapper<ZfClanManage> lqw = new LambdaQueryWrapper<>(); lqw.eq(zfClanManage.getClanId() !=null , ZfClanManage::getClanId, zfClanManage.getClanId()); lqw.eq(zfClanManage.getMemberId() !=null, ZfClanManage::getMemberId, zfClanManage.getMemberId()); return lqw; } /** * * 获取当前用户的sysUserId * @return */ public Long getUserId(){ ZInfoUser myself = zInfoUserService.getMyself(); return zInfoUserService.getInfoBysysId( myself.getUserId()).getUserId(); } @Override public AjaxResult selectDataList(ZfClanManage zfClanManage, Integer pageNum, Integer pageSize) { return null; public AjaxResult selectDataList(Integer clanId, Integer pageNo, Integer pageSize) { ZfClanManage zfClanManage = new ZfClanManage(); zfClanManage.setClanId(clanId); LambdaQueryWrapper<ZfClanManage> lqw = buildCondition(zfClanManage); List<ZfClanManage> beanRecords = list(lqw); List<HashMap<Integer, String>> zInfoUsers = new ArrayList<>(); for (ZfClanManage beanRecord:beanRecords) { HashMap<Integer,String> idAndName = new HashMap<>(); String name = zInfoUserService.getById(Long.valueOf(beanRecord.getMemberId())).getNickName(); idAndName.put(beanRecord.getMemberId(),name); zInfoUsers.add(idAndName); } List<HashMap<Integer, String>> record = zInfoUsers.stream().skip((pageNo-1)*pageSize).limit(pageSize).collect(Collectors.toList()); int totalPage = (record.size() -1) / pageSize +1; Page<String> zInfoUserPage = new Page<>(pageNo, pageSize,totalPage); HashMap<String, Object> data = MapUtils.getShareResult(zInfoUserPage, record,zInfoUsers.size()); return AjaxResult.success(data); } @Override public void addA(Integer clanId,Integer memberId,Integer roleId){ ZfClanManage zfClanManage = new ZfClanManage(); zfClanManage.setClanId(clanId); zfClanManage.setMemberId(memberId); zfClanManage.setRoleId(roleId); addData(zfClanManage); } @Override public AjaxResult addData(ZfClanManage zfClanManage) { return null; // LambdaQueryWrapper<ZfClanManage> lqw = uniqueCondition(zfClanManage); // List<ZfClanManage> list = list(lqw); // if(list.size()>0){ // throw new RuntimeException("请勿重复添加同一成员"); // } // if (!Long.valueOf(zfClanService.getById(zfClanManage.getClanId()).getAdminId()).equals(getUserId())) { // throw new RuntimeException("您不是管理员,没有权力添加成员"); // // } /** * 在用户信息表添加家族号 */ ZInfoUser zInfoUser = zInfoUserService.getById(Long.valueOf(zfClanManage.getMemberId())); zInfoUser.setClanId(zfClanManage.getClanId()); zInfoUserService.saveOrUpdate(zInfoUser); if (save(zfClanManage)) { EsModel esModel = new EsModel(); Integer inte =zfClanManage.getClanId(); String uuid = UUID.randomUUID().toString().replace("-",""); esModel.setId(uuid); esModel.setCtId(Long.valueOf(inte)); esModel.setCtTableName("家族管理"); esModel.setBy10(zfClanManage.getMemberId()); esModel.setBy5("/zfClanManage"); // esModel.setFid(familyId); esSer.insertTable(esModel); // System.out.println(esModel); return AjaxResult.success(); } else { return AjaxResult.error(); } } /** *通过id删除 */ @Override public AjaxResult deleteData(Long[] ids) { return null; public AjaxResult deleteData(Integer clanId,Integer id) { ZfClanManage zfClanManage1 = new ZfClanManage(); zfClanManage1.setMemberId(id); zfClanManage1.setClanId(clanId); List<ZfClanManage> zfClanManages =list(buildCondition(zfClanManage1)); // for (ZfClanManage zfClanManage : zfClanManages) { // if (!zfClanManages.getAdminId().equals(getUserId())) { // throw new RuntimeException("您不是管理员,没有权力删除该家族"); // } // } // if (!Long.valueOf(zfClanService.getById(zfClanManages.get(0).getClanId()).getAdminId()).equals(getUserId())) { // throw new RuntimeException("您不是管理员,没有权力删除成员"); // } /** * 在用户信息表删除家族号 */ ZInfoUser zInfoUser = zInfoUserService.getById(Long.valueOf(zfClanManages.get(0).getMemberId())); zInfoUser.setClanId(0); zInfoUserService.saveOrUpdate(zInfoUser); if (zfClanManageService.removeByIds(Arrays.asList(zfClanManages.get(0).getId()))) { //删除es中的数据 zfClanManages.stream().forEach(zfClanManage -> { EsModel esModel = esSer.findByCtId((zfClanManage.getId().intValue()), "家族管理"); if (esModel != null) { DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId()); try { restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new RuntimeException(e); } } }); return AjaxResult.success(); } else { return AjaxResult.error(); } } } /** *通过家族id删除 */ @Override public void deleteMember(Long ids) { LambdaQueryWrapper<ZfClanManage> lqw = new LambdaQueryWrapper<>(); lqw.eq(ZfClanManage::getClanId,ids); List<ZfClanManage> zfClanManages =list(lqw) ; // for (ZfClanManage zfClanManage : zfClanManages) { // if (!zfClanManages.getAdminId().equals(getUserId())) { // throw new RuntimeException("您不是管理员,没有权力删除该家族"); // } // } // if (!Long.valueOf(zfClanService.getById(zfClanManages.get(0).getClanId()).getAdminId()).equals(getUserId())) { // throw new RuntimeException("您不是管理员,没有权力删除成员"); // } List<Integer> id = new ArrayList<>() ; for (ZfClanManage zfClanManage: zfClanManages) { ZInfoUser zInfoUser = zInfoUserService.getById(Long.valueOf(zfClanManage.getMemberId())); zInfoUser.setClanId(0); System.out.println(zInfoUser); zInfoUserService.saveOrUpdate(zInfoUser); id.add(zfClanManage.getId()); } /** * 在用户信息表删除家族号 */ if (zfClanManageService.removeByIds(id)) { //删除es中的数据 zfClanManages.stream().forEach(zfClanManage -> { EsModel esModel = esSer.findByCtId((zfClanManage.getId().intValue()), "家族管理"); if (esModel != null) { DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId()); try { restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new RuntimeException(e); } } }); }}} zhang-content/src/main/java/com/ruoyi/service/impl/ZfClanServiceImpl.java
@@ -8,14 +8,9 @@ import com.ruoyi.common.core.domain.entity.EsModel; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.ZInfoUser; import com.ruoyi.domain.ZfClan; import com.ruoyi.domain.ZfLog; import com.ruoyi.domain.*; import com.ruoyi.mapper.ZfClanMapper; import com.ruoyi.service.EsService; import com.ruoyi.service.ZInfoUserService; import com.ruoyi.service.ZfClanService; import com.ruoyi.service.ZfLogService; import com.ruoyi.service.*; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.client.RequestOptions; @@ -25,10 +20,7 @@ import javax.annotation.Resource; import java.io.IOException; import java.time.LocalDateTime; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.UUID; import java.util.*; @Service public class ZfClanServiceImpl extends ServiceImpl<ZfClanMapper,ZfClan> implements ZfClanService { @@ -48,25 +40,29 @@ @Resource private ZfClanService zfClanService; @Resource private ZfClanManageService zfClanManageService; private LambdaQueryWrapper<ZfClan> buildCondition(ZfClan zfClan) { LambdaQueryWrapper<ZfClan> lqw = new LambdaQueryWrapper<>(); lqw.orderByDesc(ZfClan::getClanId); lqw.like(StringUtils.isNotEmpty(zfClan.getClanName()), ZfClan::getClanName, zfClan.getClanName()) .like(zfClan.getAdminId() !=0, ZfClan::getAdminId, zfClan.getAdminId()) .like(zfClan.getDadId() !=0 , ZfClan::getDadId, zfClan.getDadId()) .like(zfClan.getMomId() !=0, ZfClan::getMomId, zfClan.getMomId()); .like(zfClan.getAdminId() != null, ZfClan::getAdminId, zfClan.getAdminId()) .like(zfClan.getMomId() != null, ZfClan::getDadId, zfClan.getDadId()) .like(zfClan.getDadId() != null, ZfClan::getMomId, zfClan.getMomId()); return lqw; } private LambdaQueryWrapper<ZfClan> uniqueCondition(ZfClan zfClan){ LambdaQueryWrapper<ZfClan> lqw = new LambdaQueryWrapper<>(); lqw.eq(!StringUtils.isEmpty(zfClan.getClanName()), ZfClan::getClanName, zfClan.getClanName()); lqw.eq(zfClan.getAdminId() !=0, ZfClan::getAdminId, zfClan.getAdminId()); lqw.eq(zfClan.getDadId() !=0 , ZfClan::getDadId, zfClan.getDadId()); lqw.eq(zfClan.getMomId() !=0, ZfClan::getMomId, zfClan.getMomId()); lqw.eq(zfClan.getAdminId() !=null, ZfClan::getAdminId, zfClan.getAdminId()); lqw.eq(zfClan.getDadId() !=null , ZfClan::getDadId, zfClan.getDadId()); lqw.eq(zfClan.getMomId() !=null, ZfClan::getMomId, zfClan.getMomId()); return lqw; } /** * @@ -75,22 +71,37 @@ */ public Long getUserId(){ ZInfoUser myself = zInfoUserService.getMyself(); return myself.getUserId(); } @Override public AjaxResult selectDataList(ZfClan zfClan, Integer pageNum, Integer pageSize) { LambdaQueryWrapper<ZfClan> lqw = buildCondition(zfClan); List<ZfClan> beanRecords = list(lqw); List<ZfClanDate> zfClanDates=new ArrayList<>(); Page<ZfClan> zfClanPage = new Page<>(pageNum, pageSize); Page<ZfClan> pageResult = page(zfClanPage, lqw); List<ZfClan> beanRecords = pageResult.getRecords();//得到查询出来的数据 // System.out.println(beanRecords); System.out.println(beanRecords); for (ZfClan zfClan1: beanRecords) { ZfClanDate zfClanDate = new ZfClanDate(); HashMap<Integer,String> adminName = new HashMap<>(); adminName.put(zfClan1.getAdminId(),zInfoUserService.getById(zfClan1.getAdminId()).getNickName()); zfClanDate.setAdminName(adminName); HashMap<Integer,String> momName = new HashMap<>(); momName.put(zfClan1.getMomId(),zInfoUserService.getById(zfClan1.getMomId()).getNickName()); zfClanDate.setMomName(momName); HashMap<Integer,String> dadName = new HashMap<>(); dadName.put(zfClan1.getDadId(),zInfoUserService.getById(zfClan1.getDadId()).getNickName()); zfClanDate.setDadName(dadName); zfClanDate.setClanId(zfClan1.getClanId()); zfClanDate.setClanName(zfClan1.getClanName()); zfClanDates.add(zfClanDate); } HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); return AjaxResult.success(zfClanDates); } @@ -99,9 +110,13 @@ LambdaQueryWrapper<ZfClan> lqw = uniqueCondition(zfClan); List<ZfClan> list = list(lqw); if(list.size()>0){ throw new RuntimeException("请勿新增重复家族"); } if (save(zfClan)) { EsModel esModel = new EsModel(); @@ -116,6 +131,10 @@ // esModel.setFid(familyId); esSer.insertTable(esModel); // System.out.println(esModel); zfClanManageService.addA(zfClan.getClanId(),zfClan.getDadId(),2); zfClanManageService.addA(zfClan.getClanId(),zfClan.getMomId(),2); // if (!zfClan.getDadId().equals(zfClan.getAdminId()) && !zfClan.getMomId().equals(zfClan.getAdminId()) ) zfClanManageService.addA(zfClan.getClanId(),zfClan.getAdminId(),1); return AjaxResult.success(); } else { @@ -128,8 +147,10 @@ @Override public AjaxResult updateData(ZfClan zfClan) { List<ZfClan> lqw = list(buildCondition(zfClan)); // if (!Long.valueOf(zfClanService.getById(zfClan.getClanId()).getAdminId()).equals(getUserId())) { // throw new RuntimeException("您不是管理员,没有权力修改该家族信息"); // // } ZfLog zfLog = new ZfLog(); zfLog.setUpdateTime(LocalDateTime.now()); zfLog.setModule("家族"); @@ -175,13 +196,10 @@ } @Override public AjaxResult deleteData(Long[] ids) { public AjaxResult deleteData(Long ids) { List<ZfClan> zfClans = listByIds(Arrays.asList(ids)); for (ZfClan zfClan : zfClans) { if (!zfClan.getAdminId().equals(getUserId())) { throw new RuntimeException("您不是管理员,没有权力删除该家族"); } } zfClanManageService.deleteMember(ids); if (zfClanService.removeByIds(Arrays.asList(ids))) { //删除es中的数据 @@ -197,6 +215,7 @@ } }); return AjaxResult.success(); } else { return AjaxResult.error();