222
This commit is contained in:
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -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",
|
||||
|
@ -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】岗位,您可点击查看更多信息!";
|
||||
|
||||
//务工者消息返回
|
||||
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
Reference in New Issue
Block a user