从表查询主表的“微信头像”和“微信昵称”数据
1.新建VO.java文件
/**
* 用户余额变动明细表视图实体类
*
* @author BladeX
* @since 2019-09-04
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "UserBalanceLogVO对象", description = "用户余额变动明细表")
public class WxUserBalanceLogVO extends UserBalanceLog {
/**
* 微信头像
*/
@ApiModelProperty(value = "微信头像")
private String avatarUrl;
/**
* 微信昵称
*/
@ApiModelProperty(value = "微信昵称")
private String nickName;
}
2.在mapper.xml里配置映射文件,写sql语句
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.shop.shopuser.mapper.UserBalanceLogMapper">
<!-- 在“用户余额变动明细表”中查询“用户记录表”的微信头像,微信昵称-->
<resultMap id="WxuserbalancelogvoResultMap" type="org.springblade.modules.shop.shopuser.vo.WxUserBalanceLogVO">
<result column="id" property="id"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
<result column="user_id" property="userId"/>
<result column="scene" property="scene"/>
<result column="money" property="money"/>
<result column="des" property="des"/>
<result column="remark" property="remark"/>
<result column="wxapp_id" property="wxappId"/>
<result column="status" property="status"/>
<result column="avatarUrl" property="avatarUrl"/>
<result column="nickName" property="nickName"/>
</resultMap>
<select id="selectUserBalanceLogAvatarUrlNickName" resultMap="WxuserbalancelogvoResultMap">
select a.avatarUrl, a.nickName,b.* from alishop_shopuser a join alishop_user_balance_log b on a.id = b.user_id where b.is_deleted = 0
</select>
</mapper>
3.去mapper.java文件里写方法
这里select里的id就是mapper.java文件里的方法名
public interface UserBalanceLogMapper extends BaseMapper<UserBalanceLog> {
/**
* 多表查询,从“用户余额明细表”中查询“用户记录表”中的微信头像,微信昵称
* @param page
* @param userBalanceLog
* @return
*/
List<WxUserBalanceLogVO> selectUserBalanceLogAvatarUrlNickName(IPage<WxUserBalanceLogVO> page, WxUserBalanceLogVO userBalanceLog);
}
4.去service.java文件里写方法
/**
* 用户余额变动明细表 服务类
*
* @author BladeX
* @since 2019-09-04
*/
public interface IUserBalanceLogService extends BaseService<UserBalanceLog> {
/**
* 多表查询,从“用户余额明细表”中查询“用户记录表”中的微信头像,微信昵称
* @param page
* @param userBalanceLog
* @return
*/
IPage<WxUserBalanceLogVO> selectUserBalanceLogAvatarUrlNickName(IPage<WxUserBalanceLogVO> page, WxUserBalanceLogVO userBalanceLog);
}
5.在实现类serviceImpl.java中实现service.java中的方法
/**
* 用户余额变动明细表 服务实现类
*
* @author BladeX
* @since 2019-09-04
*/
@Service
public class UserBalanceLogServiceImpl extends BaseServiceImpl<UserBalanceLogMapper, UserBalanceLog> implements IUserBalanceLogService {
@Override
public IPage<WxUserBalanceLogVO> selectUserBalanceLogAvatarUrlNickName(IPage<WxUserBalanceLogVO> page, WxUserBalanceLogVO userBalanceLog) {
return page.setRecords(baseMapper.selectUserBalanceLogAvatarUrlNickName(page, userBalanceLog));
}
}
6.在controller.java文件中写接口实现
@GetMapping("/pcpage")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入userBalanceLog")
public R<IPage<WxUserBalanceLogVO>> page(WxUserBalanceLogVO userBalanceLog, Query query) {
IPage<WxUserBalanceLogVO> pages = userBalanceLogService.selectUserBalanceLogAvatarUrlNickName(Condition.getPage(query), userBalanceLog);
return R.data(pages);
}
7.测试