pc端和小程序端用户id处理

This commit is contained in:
戈经莹
2026-07-28 10:56:35 +08:00
parent 69270286bb
commit 937349dac7
6 changed files with 88 additions and 11 deletions

View File

@@ -34,10 +34,14 @@ public class AppPolicyConsultRecordController extends BaseController {
@ApiOperation("用户提交留言咨询")
@PostMapping("/submit")
public AjaxResult save(@RequestBody PolicyConsultSubmitDTO policyConsultSubmitDTO){
log.info("用户提交留言咨询...");
log.info("用户提交留言咨询...小程序端");
if(!SiteSecurityUtils.isLogin()){
return AjaxResult.error("用户未登录!");
}
if(SiteSecurityUtils.getUserId() == null){
return AjaxResult.error("获取用户ID失败!");
}
policyConsultSubmitDTO.setUserId(SiteSecurityUtils.getUserId());
return toAjax(policyConsultRecordService.insert(policyConsultSubmitDTO));
}
@@ -48,7 +52,11 @@ public class AppPolicyConsultRecordController extends BaseController {
@GetMapping("/my/list/{policyId}")
public TableDataInfo getMyConsult(@ApiParam("政策ID") @PathVariable Long policyId){
startPage();
List<PolicyConsultRecord> list = policyConsultRecordService.getUserOwnConsultList(policyId);
if(SiteSecurityUtils.getUserId() == null){
throw new RuntimeException("用户ID不能为空");
}
Long userId = SiteSecurityUtils.getUserId();
List<PolicyConsultRecord> list = policyConsultRecordService.getUserOwnConsultList(policyId,userId);
return getDataTable(list);
}
@@ -61,6 +69,11 @@ public class AppPolicyConsultRecordController extends BaseController {
if(!SiteSecurityUtils.isLogin()){
return AjaxResult.error("用户未登录!");
}
if(SiteSecurityUtils.getUserId() == null){
return AjaxResult.error("获取用户ID失败!");
}
dto.setUserId(SiteSecurityUtils.getUserId());
return toAjax(policyConsultRecordService.submitSatisfaction(dto));
}

View File

@@ -1,20 +1,25 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.policy.PolicyConsultQueryDTO;
import com.ruoyi.cms.domain.policy.PolicyConsultRecord;
import com.ruoyi.cms.domain.policy.PolicyConsultReplyDTO;
import com.ruoyi.cms.domain.policy.PolicyInfoQuery;
import com.ruoyi.cms.domain.policy.*;
import com.ruoyi.cms.service.policy.IPolicyConsultRecordService;
import com.ruoyi.cms.service.policy.impl.PolicyConsultRecordServiceImpl;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.SiteSecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
@RestController
@RequestMapping("/cms/policyConsultRecord")
@Api(tags = "CMS政策咨询记录管理")
@@ -23,6 +28,59 @@ public class CmsPolicyConsultRecordController extends BaseController {
@Autowired
private IPolicyConsultRecordService policyConsultRecordService;
private static final Logger log = LoggerFactory.getLogger(CmsPolicyConsultRecordController.class);
/**
* 保存用户提交留言咨询
*/
@ApiOperation("用户提交留言咨询")
@PostMapping("/submit")
public AjaxResult save(@RequestBody PolicyConsultSubmitDTO policyConsultSubmitDTO){
log.info("用户提交留言咨询...pc端");
if(!SecurityUtils.isLogin()){
return AjaxResult.error("用户未登录!");
}
if(SecurityUtils.getUserId() == null){
return AjaxResult.error("获取用户ID失败!");
}
policyConsultSubmitDTO.setUserId(SecurityUtils.getUserId());
return toAjax(policyConsultRecordService.insert(policyConsultSubmitDTO));
}
/**
* 用户查看【自己】的留言咨询记录(留言板只能看自己)
*/
@ApiOperation("用户查看【自己】的留言咨询记录(留言板只能看自己)")
@GetMapping("/my/list/{policyId}")
public TableDataInfo getMyConsult(@ApiParam("政策ID") @PathVariable Long policyId){
startPage();
if(SecurityUtils.getUserId() == null){
throw new RuntimeException("用户ID不能为空");
}
Long userId = SecurityUtils.getUserId();
List<PolicyConsultRecord> list = policyConsultRecordService.getUserOwnConsultList(policyId,userId);
return getDataTable(list);
}
/**
* 用户对咨询进行满意度评价
*/
@ApiOperation("用户对咨询进行满意度评价")
@PostMapping("/satisfaction")
public AjaxResult satisfaction(@RequestBody PolicyConsultSatisfactionDTO dto){
if(!SecurityUtils.isLogin()){
return AjaxResult.error("用户未登录!");
}
if(SecurityUtils.getUserId() == null){
return AjaxResult.error("获取用户ID失败!");
}
dto.setUserId(SecurityUtils.getUserId());
return toAjax(policyConsultRecordService.submitSatisfaction(dto));
}
// ========== 管理员接口 ==========
/**

View File

@@ -17,4 +17,7 @@ public class PolicyConsultSatisfactionDTO {
@ApiModelProperty(value = "满意度", required = true, example = "1")
@NotNull(message = "满意度不能为空")
private Integer satisfaction;
@ApiModelProperty(value = "用户ID")
private Long userId;
}

View File

@@ -20,4 +20,7 @@ public class PolicyConsultSubmitDTO {
@NotNull(message = "咨询渠道不能为空( 渠道固定传 MESSAGE_BOARD留言板渠道")
@ApiModelProperty(value = "咨询渠道", required = true, example = "MESSAGE_BOARD")
private String consultChannel;
@ApiModelProperty(value = "咨询用户ID")
private Long userId;
}

View File

@@ -12,7 +12,7 @@ public interface IPolicyConsultRecordService {
int submitSatisfaction(PolicyConsultSatisfactionDTO dto);
List<PolicyConsultRecord> getUserOwnConsultList(Long policyId);
List<PolicyConsultRecord> getUserOwnConsultList(Long policyId, Long userId);
List<PolicyConsultRecord> getAllConsultRecord(PolicyConsultQueryDTO queryDTO);
}

View File

@@ -41,7 +41,7 @@ public class PolicyConsultRecordServiceImpl extends ServiceImpl<PolicyConsultRec
throw new RuntimeException("政策不存在");
}
PolicyConsultRecord record = new PolicyConsultRecord();
record.setUserId(SiteSecurityUtils.getUserId());
record.setUserId(policyConsultSubmitDTO.getUserId());
record.setPolicyId(policyConsultSubmitDTO.getPolicyId());
record.setPolicyName(policyInfo.getZcmc());
record.setConsultChannel(policyConsultSubmitDTO.getConsultChannel());
@@ -73,7 +73,7 @@ public class PolicyConsultRecordServiceImpl extends ServiceImpl<PolicyConsultRec
public int submitSatisfaction(PolicyConsultSatisfactionDTO dto) {
PolicyConsultRecord record = policyConsultRecordMapper.selectById(dto.getRecordId());
// 权限校验:只能评价自己的咨询记录
if (!record.getUserId().equals(SiteSecurityUtils.getUserId())){
if (!record.getUserId().equals(dto.getUserId())){
throw new RuntimeException("无权操作");
}
record.setSatisfaction(dto.getSatisfaction());
@@ -86,9 +86,9 @@ public class PolicyConsultRecordServiceImpl extends ServiceImpl<PolicyConsultRec
* 需求备注留言板自己看自己只能查询userId匹配的数据
*/
@Override
public List<PolicyConsultRecord> getUserOwnConsultList(Long policyId) {
public List<PolicyConsultRecord> getUserOwnConsultList(Long policyId, Long userId) {
LambdaQueryWrapper<PolicyConsultRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PolicyConsultRecord::getUserId, SiteSecurityUtils.getUserId());
wrapper.eq(PolicyConsultRecord::getUserId, userId);
// 可选:按政策筛选
if(policyId != null){
wrapper.eq(PolicyConsultRecord::getPolicyId, policyId);