diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wgz/controller/WgzAppController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wgz/controller/WgzAppController.java index c0d472e..64f8bb2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wgz/controller/WgzAppController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wgz/controller/WgzAppController.java @@ -95,12 +95,14 @@ public class WgzAppController { @Autowired private IWgzPayCalculationService iWgzPayCalculationService; + @Autowired + private IWgzMessageService iWgzMessageService; + /** * 【注册】务工者注册 */ @ApiOperation("【务工者账号注册】") - @PreAuthorize("@ss.hasPermi('wgzApp:user:register')") @PostMapping("/wgzRegister") public AjaxResult userRegister(@Validated @RequestBody WgzAppRegisterReq bo) { return AjaxResult.success(iWgzUserService.userRegister(bo)); @@ -441,6 +443,17 @@ public class WgzAppController { return iWgzPayCalculationService.userApplyForPayrollSettlementList(req); } + /** + * 【消息】消息类型统计 + */ + @ApiOperation("【消息】消息类型统计") + @PreAuthorize("@ss.hasPermi('wgzApp:user:userMessageTypeStatistics')") + @GetMapping("/WgzAppUserMessageTypeStatistics") + public AjaxResult userMessageTypeStatistics() { + Long appUserId = SecurityUtils.getAppUserId(); + return AjaxResult.success(iWgzMessageService.userMessageTypeStatistics(appUserId)); + } + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 808bdf8..7aef2a6 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -101,7 +101,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/app/login", "/captchaImage","/demo/tress/all").anonymous() + .antMatchers("/login", "/app/login", "/captchaImage","/demo/tress/all","/wgz/app/wgzRegister").anonymous() .antMatchers( HttpMethod.GET, "/*.html", diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java b/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java index f2105bb..02577fa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java +++ b/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java @@ -25,7 +25,7 @@ public class WgzAndBgtMessageConstant { public static final String WGZ_SYSTEM_HEADLINE_APPLY = "您已申请【%s】项目!"; public static final String WGZ_SYSTEM_SUBHEADING_APPLY = "您已成功申请到【%s】项目,请耐心等待回复!"; //【报名】务工者给包工头提示 - public static final String WGZ_HEADLINE_APPLY = "务工者【%s】正在向你申请【%s】的工作岗位!"; + public static final String WGZ_HEADLINE_APPLY = "务工者【%s】正在向你申请【%s】的岗位!"; public static final String WGZ__SUBHEADING_APPLY = "务工者【%s】正在向你申请【%s】岗位,您可点击查看更多信息!"; //务工者消息返回 diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/res/WgzAppMessageTypeStatisticsRes.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/res/WgzAppMessageTypeStatisticsRes.java new file mode 100644 index 0000000..3154e6b --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/res/WgzAppMessageTypeStatisticsRes.java @@ -0,0 +1,22 @@ +package com.ruoyi.wgz.bo.res; + +import com.ruoyi.wgz.bo.rests.WgzAppMessageTypeStatisticsTwo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDate; +import java.util.List; + +@Data +@NoArgsConstructor +@Accessors(chain = true) +@ApiModel("消息类型统计返回参数") +public class WgzAppMessageTypeStatisticsRes implements Serializable { + @ApiModelProperty("消息类型") + private List list; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/rests/WgzAppMessageTypeStatisticsTwo.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/rests/WgzAppMessageTypeStatisticsTwo.java new file mode 100644 index 0000000..c95ebde --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/rests/WgzAppMessageTypeStatisticsTwo.java @@ -0,0 +1,23 @@ +package com.ruoyi.wgz.bo.rests; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@Accessors(chain = true) +@ApiModel("消息类型统计返回参数") +public class WgzAppMessageTypeStatisticsTwo implements Serializable { + + @ApiModelProperty("类型") + private String type; + + @ApiModelProperty("数量") + private Integer num; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzMessageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzMessageMapper.java index 070d1ae..dcb4cd6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzMessageMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/mapper/WgzMessageMapper.java @@ -4,6 +4,10 @@ import com.ruoyi.wgz.domain.WgzMessage; import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus; import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache; import org.apache.ibatis.annotations.CacheNamespace; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** * 消息Mapper接口 @@ -14,5 +18,8 @@ import org.apache.ibatis.annotations.CacheNamespace; // 如使需切换数据源 请勿使用缓存 会造成数据不一致现象 @CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class) public interface WgzMessageMapper extends BaseMapperPlus { - + /** + * 消息类型统计(先分组再统计) + */ + List> userMessageTypeStatistics(@Param("id") Long id); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java index 71a3310..a13f100 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java @@ -1,5 +1,6 @@ package com.ruoyi.wgz.service; +import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes; import com.ruoyi.wgz.domain.WgzMessage; import com.ruoyi.wgz.bo.WgzMessageQueryBo; import com.ruoyi.common.core.mybatisplus.core.IServicePlus; @@ -64,4 +65,9 @@ public interface IWgzMessageService extends IServicePlus { * 发送消息 */ Boolean sendAMessage(WgzMessage bo); + + /** + * 消息类型统计 + */ + WgzAppMessageTypeStatisticsRes userMessageTypeStatistics(Long id); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java index c023b1b..297a53e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java @@ -3,9 +3,14 @@ package com.ruoyi.wgz.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.system.service.ISysDictTypeService; +import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes; +import com.ruoyi.wgz.bo.rests.WgzAppMessageTypeStatisticsTwo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; @@ -16,6 +21,7 @@ import com.ruoyi.wgz.domain.WgzMessage; import com.ruoyi.wgz.mapper.WgzMessageMapper; import com.ruoyi.wgz.service.IWgzMessageService; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -29,7 +35,8 @@ import java.util.Collection; @Service public class WgzMessageServiceImpl extends ServicePlusImpl implements IWgzMessageService { - + @Autowired + private ISysDictTypeService dictTypeService; @Override public WgzMessage queryById(Long id){ @@ -106,4 +113,26 @@ public class WgzMessageServiceImpl extends ServicePlusImpl list = new ArrayList<>(); + //1、获取字典类型 + List data = dictTypeService.selectDictDataByType("message_large_type"); + for (SysDictData datum : data) { + WgzAppMessageTypeStatisticsTwo two = new WgzAppMessageTypeStatisticsTwo(); + //2、统计数据 + LambdaQueryWrapper wp = new LambdaQueryWrapper(). + eq(WgzMessage::getRecipientId, id). + eq(WgzMessage::getRecipientType, "1"). + eq(WgzMessage::getReadStatus, "0"). + eq(WgzMessage::getMessageLargeType, datum.getDictValue()); + two.setType(datum.getDictValue()); + two.setNum(baseMapper.delete(wp)); + list.add(two); + } + res.setList(list); + return res; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzUserServiceImpl.java index 6f6ec15..c31a5a4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzUserServiceImpl.java @@ -130,9 +130,13 @@ public class WgzUserServiceImpl extends ServicePlusImpl //2、组装数据 BeanUtils.copyProperties(bo,wgzUser); wgzUser.setPhone(bo.getPhone()); wgzUser.setUserId(SnowflakeIdUtil.generateId()); - wgzUser.setPassword(SecurityUtils.encryptPassword(wgzUser.getPassword())); + wgzUser.setCreateBy("admin"). + setUpdateBy("admin"). + setPassword(SecurityUtils.encryptPassword(bo.getPassword())); //3、保存数据 - return baseMapper.insert(wgzUser) > 0; + int insert = baseMapper.insert(wgzUser); + + return insert > 0; } @Override diff --git a/ruoyi-system/src/main/resources/mapper/wgz/WgzMessageMapper.xml b/ruoyi-system/src/main/resources/mapper/wgz/WgzMessageMapper.xml index cf35c0a..b92935b 100644 --- a/ruoyi-system/src/main/resources/mapper/wgz/WgzMessageMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wgz/WgzMessageMapper.xml @@ -25,5 +25,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - \ No newline at end of file +