diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CommunityUserController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CommunityUserController.java new file mode 100644 index 0000000..594135b --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CommunityUserController.java @@ -0,0 +1,54 @@ +package com.ruoyi.cms.controller.cms; + +import com.ruoyi.cms.domain.CommunityUser; +import com.ruoyi.cms.service.ICommunityUserService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/cms/communityUser") +@Api(tags = "后台:工作人员管理") +public class CommunityUserController extends BaseController { + + @Autowired + private ICommunityUserService communityUserService; + + + @ApiOperation("查询工作人员列表") + @PreAuthorize("@ss.hasPermi('cms:communityUser:list')") + @GetMapping("/list") + public TableDataInfo list(CommunityUser communityUser) { + startPage(); + List list = communityUserService.selectCommunityUserList(communityUser); + return getDataTable(list); + } + + @ApiOperation("新增工作人员") + @PreAuthorize("@ss.hasPermi('cms:communityUser:add')") + @PostMapping + public AjaxResult add(@RequestBody CommunityUser communityUser) { + return toAjax(communityUserService.save(communityUser)); + } + + @ApiOperation("修改工作人员") + @PreAuthorize("@ss.hasPermi('cms:communityUser:edit')") + @PutMapping + public AjaxResult update(@RequestBody CommunityUser communityUser) { + return toAjax(communityUserService.updateById(communityUser)); + } + + @ApiOperation("删除工作人员") + @PreAuthorize("@ss.hasPermi('cms:communityUser:remove')") + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable("ids") Long[] ids) { + return toAjax(communityUserService.delCommunityUser(ids)); + } +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/WechatGroupController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/WechatGroupController.java new file mode 100644 index 0000000..26a3da1 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/WechatGroupController.java @@ -0,0 +1,65 @@ +package com.ruoyi.cms.controller.cms; + +import cn.hutool.core.collection.CollUtil; +import com.ruoyi.cms.domain.WechatGroup; +import com.ruoyi.cms.domain.vo.WechatGroupVo; +import com.ruoyi.cms.service.IWechatGroupService; +import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/cms/wechatGroup") +@Api(tags = "后台:转发对象管理") +public class WechatGroupController extends BaseController { + + @Autowired + private IWechatGroupService wechatGroupService; + + + @ApiOperation("查询转发对象列表") + @PreAuthorize("@ss.hasPermi('cms:wechatGroup:list')") + @GetMapping("/list") + public TableDataInfo list(WechatGroup wechatGroup) { + startPage(); + List list = wechatGroupService.selectWechatGroupList(wechatGroup); + return getDataTable(list); + } + + @ApiOperation("新增转发对象") + @PreAuthorize("@ss.hasPermi('cms:wechatGroup:add')") + @PostMapping + public AjaxResult add(@RequestBody WechatGroup wechatGroup) { + return toAjax(wechatGroupService.save(wechatGroup)); + } + + @ApiOperation("修改转发对象") + @PreAuthorize("@ss.hasPermi('cms:wechatGroup:edit')") + @PutMapping + public AjaxResult update(@RequestBody WechatGroup wechatGroup) { + return toAjax(wechatGroupService.updateById(wechatGroup)); + } + + @ApiOperation("删除转发对象") + @PreAuthorize("@ss.hasPermi('cms:wechatGroup:remove')") + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable("ids") Long[] ids) { + return toAjax(wechatGroupService.removeBatchByIds(CollUtil.newArrayList(ids))); + } + + @GetMapping("/enableList") + @Anonymous + public List enableList() { + WechatGroup wechatGroup = new WechatGroup(); + wechatGroup.setIsPush(1); + return wechatGroupService.selectWechatGroupList(wechatGroup); + } +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CommunityUser.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CommunityUser.java new file mode 100644 index 0000000..49a47be --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CommunityUser.java @@ -0,0 +1,33 @@ +package com.ruoyi.cms.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 工作人员配置 + */ +@TableName("community_user") +@EqualsAndHashCode(callSuper = true) +@Data +public class CommunityUser extends BaseEntity { + /** + * id + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 微信名 + */ + private String wechatName; + + /** + * 手机号 + */ + private String phoneNumber; + +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/WechatGroup.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/WechatGroup.java new file mode 100644 index 0000000..170ed22 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/WechatGroup.java @@ -0,0 +1,39 @@ +package com.ruoyi.cms.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 转发对象配置 + */ +@TableName("wechat_group") +@EqualsAndHashCode(callSuper = true) +@Data +public class WechatGroup extends BaseEntity { + + /** + * id + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 群聊名称 + */ + private String name; + + /** + * 工作人员 ID + */ + private Long communityId; + + /** + * 是否启用 0=禁用 1=启用 + */ + private Integer isPush; + +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/vo/WechatGroupVo.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/vo/WechatGroupVo.java new file mode 100644 index 0000000..91e1457 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/vo/WechatGroupVo.java @@ -0,0 +1,20 @@ +package com.ruoyi.cms.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class WechatGroupVo { + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + private Long id; + private String name; + private Integer isPush; + private String wechatNumber; + private String phoneNumber; + private String wechatName; + private Long communityId; +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CommunityUserMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CommunityUserMapper.java new file mode 100644 index 0000000..62fc456 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CommunityUserMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cms.domain.CommunityUser; + +public interface CommunityUserMapper extends BaseMapper { +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/WechatGroupMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/WechatGroupMapper.java new file mode 100644 index 0000000..2ef025c --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/WechatGroupMapper.java @@ -0,0 +1,12 @@ +package com.ruoyi.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cms.domain.WechatGroup; +import com.ruoyi.cms.domain.vo.WechatGroupVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface WechatGroupMapper extends BaseMapper { + List selectWechatGroupList(@Param("p") WechatGroup wechatGroup); +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ICommunityUserService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ICommunityUserService.java new file mode 100644 index 0000000..73ddb37 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ICommunityUserService.java @@ -0,0 +1,12 @@ +package com.ruoyi.cms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.cms.domain.CommunityUser; + +import java.util.List; + +public interface ICommunityUserService extends IService { + List selectCommunityUserList(CommunityUser communityUser); + + int delCommunityUser(Long[] ids); +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IWechatGroupService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IWechatGroupService.java new file mode 100644 index 0000000..58f39f2 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IWechatGroupService.java @@ -0,0 +1,11 @@ +package com.ruoyi.cms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.cms.domain.WechatGroup; +import com.ruoyi.cms.domain.vo.WechatGroupVo; + +import java.util.List; + +public interface IWechatGroupService extends IService { + List selectWechatGroupList(WechatGroup wechatGroup); +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CommunityUserServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CommunityUserServiceImpl.java new file mode 100644 index 0000000..9fa6119 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CommunityUserServiceImpl.java @@ -0,0 +1,46 @@ +package com.ruoyi.cms.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.cms.domain.CommunityUser; +import com.ruoyi.cms.domain.WechatGroup; +import com.ruoyi.cms.mapper.CommunityUserMapper; +import com.ruoyi.cms.mapper.WechatGroupMapper; +import com.ruoyi.cms.service.ICommunityUserService; +import com.ruoyi.common.exception.ServiceException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; + +@Service +public class CommunityUserServiceImpl extends ServiceImpl + implements ICommunityUserService { + + @Autowired + private WechatGroupMapper wechatGroupMapper; + + @Override + public List selectCommunityUserList(CommunityUser communityUser) { + + return baseMapper.selectList(Wrappers.lambdaQuery(CommunityUser.class) + .like(StrUtil.isNotBlank(communityUser.getWechatName()), CommunityUser::getWechatName, communityUser.getWechatName()) + .like(StrUtil.isNotBlank(communityUser.getPhoneNumber()), CommunityUser::getPhoneNumber, communityUser.getPhoneNumber()) + ); + } + + @Override + public int delCommunityUser(Long[] ids) { + if (ids == null || ids.length == 0) return 0; + Collection userIds = CollUtil.newArrayList(ids); + Long count = wechatGroupMapper.selectCount(Wrappers.lambdaQuery(WechatGroup.class) + .in(WechatGroup::getCommunityId, userIds)); + if (count > 0) { + throw new ServiceException("所选工作人员已配置转发对象!"); + } + return baseMapper.deleteBatchIds(userIds); + } +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/WechatGroupServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/WechatGroupServiceImpl.java new file mode 100644 index 0000000..7c8e881 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/WechatGroupServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.cms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.cms.domain.WechatGroup; +import com.ruoyi.cms.domain.vo.WechatGroupVo; +import com.ruoyi.cms.mapper.WechatGroupMapper; +import com.ruoyi.cms.service.IWechatGroupService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class WechatGroupServiceImpl extends ServiceImpl + implements IWechatGroupService { + + @Override + public List selectWechatGroupList(WechatGroup wechatGroup) { + return baseMapper.selectWechatGroupList(wechatGroup); + } +} diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/WechatGroupMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/WechatGroupMapper.xml new file mode 100644 index 0000000..bff8480 --- /dev/null +++ b/ruoyi-bussiness/src/main/resources/mapper/app/WechatGroupMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file