This commit is contained in:
2025-02-24 19:12:16 +08:00
parent 35a644c5da
commit bb0d3d0146
10 changed files with 126 additions and 8 deletions

View File

@ -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<Boolean> 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<WgzAppMessageTypeStatisticsRes> userMessageTypeStatistics() {
Long appUserId = SecurityUtils.getAppUserId();
return AjaxResult.success(iWgzMessageService.userMessageTypeStatistics(appUserId));
}

View File

@ -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",

View File

@ -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】岗位您可点击查看更多信息";
//务工者消息返回

View File

@ -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<WgzAppMessageTypeStatisticsTwo> list;
}

View File

@ -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;
}

View File

@ -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<WgzMessage> {
/**
* 消息类型统计(先分组再统计)
*/
List<Map<String, Object>> userMessageTypeStatistics(@Param("id") Long id);
}

View File

@ -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<WgzMessage> {
* 发送消息
*/
Boolean sendAMessage(WgzMessage bo);
/**
* 消息类型统计
*/
WgzAppMessageTypeStatisticsRes userMessageTypeStatistics(Long id);
}

View File

@ -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<WgzMessageMapper, WgzMessage> implements IWgzMessageService {
@Autowired
private ISysDictTypeService dictTypeService;
@Override
public WgzMessage queryById(Long id){
@ -106,4 +113,26 @@ public class WgzMessageServiceImpl extends ServicePlusImpl<WgzMessageMapper, Wgz
public Boolean sendAMessage(WgzMessage bo) {
return save(bo);
}
@Override
public WgzAppMessageTypeStatisticsRes userMessageTypeStatistics(Long id) {
WgzAppMessageTypeStatisticsRes res = new WgzAppMessageTypeStatisticsRes();
List<WgzAppMessageTypeStatisticsTwo> list = new ArrayList<>();
//1、获取字典类型
List<SysDictData> data = dictTypeService.selectDictDataByType("message_large_type");
for (SysDictData datum : data) {
WgzAppMessageTypeStatisticsTwo two = new WgzAppMessageTypeStatisticsTwo();
//2、统计数据
LambdaQueryWrapper<WgzMessage> wp = new LambdaQueryWrapper<WgzMessage>().
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;
}
}

View File

@ -130,9 +130,13 @@ public class WgzUserServiceImpl extends ServicePlusImpl<WgzUserMapper, WgzUser>
//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

View File

@ -25,5 +25,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="remark" column="remark"/>
</resultMap>
<!-- 消息类型统计(先分组再统计) -->
<select id="userMessageTypeStatistics" resultType="java.util.Map">
SELECT
message_large_type,
count( 1 ) as ct
FROM
wgz_message
WHERE
recipient_id = #{id}
AND recipient_type = "1"
AND read_status = "0"
GROUP BY
message_large_type
</select>
</mapper>
</mapper>