public ResponseVO getUserInfo(@VerifyParam(required = true) String userId) { UserInfo userInfo = userInfoService.getUserInfoByUserId(userId); if (null == userInfo || UserStatusEnum.DISABLE.getStatus().equals(userInfo.getStatus())) { throw new BusinessException(ResponseCodeEnum.CODE_404);} ForumArticleQuery articleQuery = new ForumArticleQuery(); articleQuery.setUserId(userId); articleQuery.setStatus(ArticleStatusEnum.AUDIT.getStatus()); Integer postCount = forumArticleService.findCountByParam(articleQuery); UserInfoVO userInfoVO = CopyTools.copy(userInfo, UserInfoVO.class); userInfoVO.setPostCount(postCount); LikeRecordQuery recordQuery = new LikeRecordQuery(); recordQuery.setAuthorUserId(userId); Integer likeCount = likeRecordService.findCountByParam(recordQuery); userInfoVO.setLikeCount(likeCount); userInfoVO.setCurrentIntegral(userInfo.getCurrentIntegral()); return getSuccessResponseVO(userInfoVO);} @RequestMapping("/updateUserInfo") @GlobalInterceptor(checkParams = true, checkLogin = true) public ResponseVO updateUserInfo(HttpSession session, Integer sex, @VerifyParam(max = 100) String personDescription, MultipartFile avatar) { SessionWebUserDto userDto = getUserInfoFromSession(session); UserInfo userInfo = new UserInfo(); userInfo.setUserId(userDto.getUserId()); userInfo.setSex(sex); userInfo.setPersonDescription(personDescription); userInfoService.updateUserInfo(userInfo, avatar); return getSuccessResponseVO(null);}
时间: 2023-06-15 13:06:51 浏览: 180
这段代码是一个基于Spring MVC框架的Java Web应用的控制器(Controller),包含两个接口方法getUserInfo和updateUserInfo。getUserInfo方法接收一个userId参数,通过调用userInfoService的getUserInfoByUserId方法获取用户信息,如果用户不存在或者状态为DISABLE则抛出业务异常。然后通过调用forumArticleService和likeRecordService的方法获取用户发表的帖子数量和点赞数量,并将这些信息封装到UserInfoVO对象中返回。
updateUserInfo方法接收三个参数,分别为sex、personDescription和avatar。其中sex和personDescription直接设置到UserInfo对象中,avatar则通过调用userInfoService的updateUserInfo方法进行更新。最后返回一个空的成功响应对象ResponseVO。
这段代码使用了注解@VerifyParam、@GlobalInterceptor和@RequestMapping等。其中@VerifyParam用于参数验证,@GlobalInterceptor用于全局拦截器,@RequestMapping用于映射请求路径。
相关问题
@RequestMapping( value = {"/{user_name}/update"}, method = {RequestMethod.GET} ) public void update(@PathVariable String user_name, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception { UserInfo userInfo = this.userInfoService.getUserInfo(user_name); response.setContentType("text/json;charset=UTF-8"); PrintWriter out = response.getWriter(); JSONObject jsonUserInfo = userInfo.getJsonObject(); out.println(jsonUserInfo.toString()); out.flush(); out.close(); }
这是一个使用Spring MVC框架的Java代码段,用于处理GET请求并返回用户信息的JSON对象。具体来说,它使用了@RequestMapping注释将URL映射到处理程序方法上,@PathVariable注释将URI模板变量映射到方法参数上,Model对象用于向视图层传递数据,HttpServletRequest和HttpServletResponse对象用于处理HTTP请求和响应,UserInfoService对象用于获取用户信息,JSONObject对象用于将用户信息转换为JSON格式,PrintWriter对象用于将JSON字符串写入HTTP响应中。
@Override public boolean addTemplate(SmsTemplateDTO smsTemplatedTo){ String prestr = null; if (Stringutils.isNotEmpty(smsTemplateDTO.getPushPlanTpCd()) && PushPlanConsts.DUE_REMIND_CODE.equals(smsTemplatedTo.getPushPlanTpcd())){ prestr ="GQ";} else { prestr ="DH"; String tempId =smsTemplateMapper.generateTemplateid(prestr); UserInfo userInfo =UserContext.getUserInfo(); smsTemplateDTO.setCreatorNo(userInfo.getTlrid()); smsTemplateDTO.setModifierNo(userInfo.getTrId()); smsTemplateDTO.setOprorInstNo(userInfo.getInstno()); smsTemplateDTO.setTemplateId(tempId); if(smsTemplateMapper.addSmsTemplate(smsTemplateDTO)> ){ log.info("新增成功"); return true;} else { return false; }根据以上代码生成单元测试案例,需要使用mockito.lenient().when(xx).thenReturn(),
假设需要使用 Mockito 进行单元测试,可以按如下方式编写代码:
```java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class SmsTemplateServiceTest {
@Mock
private SmsTemplateMapper smsTemplateMapper;
@InjectMocks
private SmsTemplateService smsTemplateService;
@Test
public void testAddTemplate() {
// 设置输入参数
SmsTemplateDTO smsTemplateDTO = new SmsTemplateDTO();
smsTemplateDTO.setPushPlanTpCd("test");
// 设置模拟行为
Mockito.lenient().when(smsTemplateMapper.generateTemplateid(Mockito.anyString())).thenReturn("test");
Mockito.lenient().when(smsTemplateMapper.addSmsTemplate(Mockito.any(SmsTemplateDTO.class))).thenReturn(1);
// 调用被测方法
boolean result = smsTemplateService.addTemplate(smsTemplateDTO);
// 断言结果
Assert.assertTrue(result);
}
}
```
这里使用了 `@Mock` 注解来模拟 `SmsTemplateMapper` 的行为,使用 `@InjectMocks` 注解来注入被测对象 `SmsTemplateService`。在测试方法中,首先设置输入参数 `SmsTemplateDTO`,然后使用 `Mockito.lenient().when(xx).thenReturn()` 方法来设置模拟行为,最后调用被测方法并断言结果。
阅读全文