Mybatis-plus两表关联

关联表

包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);
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值