关联表
包VO
把需要的副表字段存储到VO中 VO继承主表 DtResultVO extends DtResult
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="DtResultVO", description="DtResultVO")
public class DtResultVO extends DtResult {
/**
* 电话号码
*/
@TableField(exist = false)
private String phone;
/**
* 从用户表中获得到的username
*/
@TableField(exist = false)
private String username;
/**
* 会员更多信息 包含邮寄地址
*/
@TableField(exist = false)
private String mark;
}
Mapper
翻页
/**
* 获取指定活动的奖品结果
* @return 剩余奖品数量
* costom 拼接where
*/
@Select("select dt_result.*,sys_user.phone,sys_user.username,sys_user.mark FROM dt_result, sys_user " +
"where dt_result.delete_flag = 0 AND dt_result.disabled = 0 " +
"AND sys_user.uuid = dt_result.user_uuid AND ${ew.getSqlSegment()} ")
List<DtResultVO> findByDtJackpotResult(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, IPage<DtResultVO> page);
}
写impl
@Override
public IPage<DtResultVO> findByDtJackpotResult(Page<DtResultVO> page, String uuid , DtResult entity){
QueryWrapper<DtResult> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DtResult::getActivityUuid,uuid)
.in(DtResult::getJackpotState,new Integer[]{DtResultService.DT_RESULT_STATE_2,DtResultService.DT_RESULT_STATE_3});
if(!V.isEmpty(entity.getJackpotState())){
queryWrapper.lambda().eq(DtResult::getJackpotState,entity.getJackpotState());
}
List<DtResultVO> list= baseMapper.findByDtJackpotResult(queryWrapper,page);
return page.setRecords(list);
}
controller
@SysLogTag("列出所有中奖的人员名单")
@ApiOperation("列出所有中奖的人员名单")
@GetMapping(value = "/api/dt_result/findByDtJackpotResult")
public R<IPage<DtResultVO>> findByDtJackpotResult(@RequestParam(value="uuid",required = false)String uuid ,DtResult entity) {
IPage<DtResultVO> page = dtResultService.findByDtJackpotResult(getPage(),uuid,entity);
return R.ok().putData(page);
}
不带翻页Mapper
@Select("select dt_result.*, sys_user.phone FROM dt_result,sys_user " +
"where sys_user.uuid = dt_result.user_uuid and dt_result.activity_uuid = #{uuid} " +
"AND dt_result.delete_flag = 0 AND dt_result.disabled = 0 " +
"AND (dt_result.jackpot_state=2 or dt_result.jackpot_state=3) order by dt_result.id desc limit 0,10")
List<DtResultVO> selectTop10LotterResultByActivityUuid(@Param("uuid") String uuid);
impl
activityimpl
@Override
public List<DtResultVO> findByActivityUuid(String uuid) {
List<DtResultVO> list = baseMapper.selectTop10LotterResultByActivityUuid(uuid);
for(DtResultVO dtResult : list){
String phone = dtResult.getPhone();
phone = phone.substring(0,2)+"****"+phone.substring(7);
dtResult.setPhone(phone);
}
return list;
}
Jackpotcontroller
@SysLogTag("通过活动UUID获取奖品列表")
@ApiOperation("通过活动UUID获取奖品列表")
@ApiImplicitParam(value = "活动uuid", name = "uuid", required = true, paramType = "query")
@GetMapping(value = "/public/dt_jackpot/findByActivityUuid")
public R<List<DtJackpot>> findByActivityUuid(@RequestParam("uuid") String uuid) {
List<DtJackpot> list = dtJackpotService.findByActivityUuid(uuid);
return R.ok().putData(list);
}