This commit is contained in:
张良(004796)
2024-03-26 11:23:22 +08:00
parent 7d6bf7e2e2
commit 7c476f0e73
23 changed files with 221 additions and 35 deletions

View File

@@ -1,7 +1,6 @@
package com.ruoyi.xq.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
@@ -9,9 +8,10 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.xq.domain.WxTransData;
import com.ruoyi.xq.dto.admin.account.WxTransDataAdminVo;
import com.ruoyi.xq.dto.app.common.IdReq;
import com.ruoyi.xq.service.WxTransDataService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -40,8 +40,8 @@ public class WxTransDataController extends BaseController {
*/
@SaCheckPermission("xq:wxTransData:list")
@GetMapping("/list")
public TableDataInfo<WxTransData> list(WxTransData bo, PageQuery pageQuery) {
Page<WxTransData> page = wxTransDataService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
public TableDataInfo<WxTransDataAdminVo> list(WxTransDataAdminVo bo, PageQuery pageQuery) {
Page<WxTransDataAdminVo> page = wxTransDataService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
@@ -58,15 +58,21 @@ public class WxTransDataController extends BaseController {
}
/**
* 修改微信交换数据
*/
@SaCheckPermission("xq:wxTransData:edit")
@Log(title = "微信交换数据", businessType = BusinessType.UPDATE)
@Log(title = "后台管理接受微信交换数据", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WxTransData bo) {
return toAjax(wxTransDataService.updateById(bo));
@PostMapping("/allow")
public R<Void> allow(@RequestBody IdReq bo) {
return toAjax(wxTransDataService.allowAdmin(bo.getId()));
}
@SaCheckPermission("xq:wxTransData:edit")
@Log(title = "后台管理拒绝微信交换数据", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/notAllow")
public R<Void> notAllow(@RequestBody IdReq bo) {
return toAjax(wxTransDataService.notAllowAdmin(bo.getId()));
}
/**

View File

@@ -10,6 +10,7 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.xq.domain.WxTransLog;
import com.ruoyi.xq.dto.admin.account.WxTransLogAdminVo;
import com.ruoyi.xq.service.WxTransLogService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -38,8 +39,8 @@ public class WxTransLogController extends BaseController {
*/
@SaCheckPermission("xq:wxTransLog:list")
@GetMapping("/list")
public TableDataInfo<WxTransLog> list(WxTransLog bo, PageQuery pageQuery) {
Page<WxTransLog> page = wxTransLogService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
public TableDataInfo<WxTransLogAdminVo> list(WxTransLogAdminVo bo, PageQuery pageQuery) {
Page<WxTransLogAdminVo> page = wxTransLogService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}

View File

@@ -1,7 +1,6 @@
package com.ruoyi.xq.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
@@ -13,7 +12,7 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.xq.domain.WxTransOrder;
import com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo;
import com.ruoyi.xq.dto.admin.account.WxTransOrderAdminVo;
import com.ruoyi.xq.service.WxTransOrderService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;

View File

@@ -83,6 +83,15 @@ public class AccountAppController {
return R.ok(result);
}
@PostMapping("/wxTrans/apply")
@Operation(summary = "处理交换微信")
@Log(title = "处理交换微信", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> applyWxTrans(@RequestBody WxTransDataApplyReq req){
req.setUserId(LoginHelper.getUserId());
wxTransDataService.apply(req);
return R.ok();
}
@PostMapping("/wxTrans/star")
@Operation(summary = "发起交换微信")
@Log(title = "发起交换微信", businessType = BusinessType.OTHER, isSaveDb = false)
@@ -92,6 +101,7 @@ public class AccountAppController {
return R.ok();
}
@GetMapping("/wxTrans/data/page")
@Operation(summary = "查询交换微信数据")
@Log(title = "发起交换微信", businessType = BusinessType.OTHER, isSaveDb = false)
@@ -111,4 +121,6 @@ public class AccountAppController {
}
}

View File

@@ -52,6 +52,7 @@ public class WxTransData implements Serializable {
* 0-待接收 1-接受交换 2-拒绝交换
*/
private Integer status;
private Integer isAdmin;
/**
* 后台操作管理员ID
*/

View File

@@ -0,0 +1,15 @@
package com.ruoyi.xq.dto.admin.account;
import com.ruoyi.xq.domain.WxTransData;
import lombok.Data;
@Data
public class WxTransDataAdminVo extends WxTransData {
private String sponsorNickname;
private String sponsorMobile;
private String sponsorAvatar;
private String receiveNickname;
private String receiveMobile;
private String receiveAvatar;
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.xq.dto.admin.account;
import com.ruoyi.xq.domain.WxTransLog;
import lombok.Data;
@Data
public class WxTransLogAdminVo extends WxTransLog {
private String nickname;
private String mobile;
private String avatar;
}

View File

@@ -1,4 +1,4 @@
package com.ruoyi.xq.dto.admin.wxtrans;
package com.ruoyi.xq.dto.admin.account;
import com.ruoyi.xq.domain.WxTransOrder;
import lombok.Data;
@@ -7,6 +7,5 @@ import lombok.Data;
public class WxTransOrderAdminVo extends WxTransOrder {
private String nickname;
private String mobile;
private String avatar;
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.xq.dto.app.account;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class WxTransDataApplyReq {
@Schema(hidden = true)
private Long userId;
@Schema(description = "数据交换ID")
private Long id;
@Schema(description = "1-接受 2-拒绝")
private Integer apply;
}

View File

@@ -15,7 +15,7 @@ import lombok.Setter;
public enum SystemConfigEnum {
// TODO 限制为两位小数
WX_TRANS_PRICE("0.01", "微信交换次数价格", SystemConfigGroupEnum.BUSINESS, null),
VIP_INVITE_RATE("0.30","默认会员分销价格",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
VIP_INVITE_RATE("0.30","默认会员分销比例",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
SENSITIVE_ENABLE("1", "是否开启手机号脱敏",SystemConfigGroupEnum.SYSTEM,new BooleanSystemConfigCheck()),
SMS_CODE_ADMIN("", "万能验证码",SystemConfigGroupEnum.SYSTEM),
PASSWORD_ADMIN("", "公用密码",SystemConfigGroupEnum.SYSTEM),

View File

@@ -3,6 +3,7 @@ package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.xq.domain.WxTransData;
import com.ruoyi.xq.dto.admin.account.WxTransDataAdminVo;
import com.ruoyi.xq.dto.app.account.StarWxTransReq;
import com.ruoyi.xq.dto.app.account.WxTransDataQuery;
import org.apache.ibatis.annotations.Param;
@@ -16,4 +17,6 @@ import org.apache.ibatis.annotations.Param;
public interface WxTransDataMapper extends BaseMapper<WxTransData> {
Page<WxTransData> pageApp(@Param("build") Page<Object> build, @Param("query") WxTransDataQuery query);
Page<WxTransDataAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") WxTransDataAdminVo bo);
}

View File

@@ -1,7 +1,10 @@
package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.xq.domain.WxTransLog;
import com.ruoyi.xq.dto.admin.account.WxTransLogAdminVo;
import org.apache.ibatis.annotations.Param;
/**
* 微信交换记录Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.WxTransLog;
*/
public interface WxTransLogMapper extends BaseMapper<WxTransLog> {
Page<WxTransLogAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") WxTransLogAdminVo bo);
}

View File

@@ -3,7 +3,7 @@ package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.xq.domain.WxTransOrder;
import com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo;
import com.ruoyi.xq.dto.admin.account.WxTransOrderAdminVo;
import org.apache.ibatis.annotations.Param;
/**

View File

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.WxTransData;
import com.ruoyi.xq.dto.admin.account.WxTransDataAdminVo;
import com.ruoyi.xq.dto.app.account.StarWxTransReq;
import com.ruoyi.xq.dto.app.account.WxTransDataApplyReq;
import com.ruoyi.xq.dto.app.account.WxTransDataListAppVo;
import com.ruoyi.xq.dto.app.account.WxTransDataQuery;
@@ -18,5 +20,13 @@ public interface WxTransDataService extends IService<WxTransData> {
void start(StarWxTransReq starWxTransReq);
Page<WxTransDataListAppVo> pageApp(PageQuery pageQuery, WxTransDataQuery wxTransDataQuery);
void apply(WxTransDataApplyReq req);
Page<WxTransDataListAppVo> pageApp(PageQuery pageQuery, WxTransDataQuery wxTransDataQuery);
Page<WxTransDataAdminVo> pageAdmin(PageQuery pageQuery, WxTransDataAdminVo bo);
boolean allowAdmin(Long id);
boolean notAllowAdmin(Long id);
}

View File

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.WxTransLog;
import com.ruoyi.xq.dto.admin.account.WxTransLogAdminVo;
import com.ruoyi.xq.dto.app.account.WxTransLogListVo;
import com.ruoyi.xq.dto.app.account.WxTransLogQuery;
import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
@@ -18,9 +19,11 @@ import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
public interface WxTransLogService extends IService<WxTransLog> {
Page<WxTransLogListVo> pageApp(PageQuery pageQuery, WxTransLogQuery query);
Page<WxTransLogAdminVo> pageAdmin(PageQuery pageQuery, WxTransLogAdminVo bo);
void consumerSaveLog(Long sponsorUserId, String traceId, User receiveUser);
void saveLog(Long userId, Integer wxTransNum, WxTransLogCateEnum cateEnum, String traceId, String remark);
void saveLogAdmin(User user, Integer wxTransNum, String traceId);
}

View File

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.WxTransOrder;
import com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo;
import com.ruoyi.xq.dto.admin.account.WxTransOrderAdminVo;
import com.ruoyi.xq.dto.app.pay.ConsumeResp;
import com.ruoyi.xq.enums.pay.PlatformTypeEnum;
import org.springframework.transaction.annotation.Transactional;

View File

@@ -168,7 +168,7 @@ public class UserExtendServiceImpl extends ServiceImpl<UserExtendMapper,UserExte
@Override
public boolean consumeWxTrans(Long sponsorUserId, User receiveUser, String traceId) {
boolean success = baseMapper.incsWxTransNum(sponsorUserId, 1);
boolean success = baseMapper.incsWxTransNum(sponsorUserId, -1);
if(success){
wxTransLogService.consumerSaveLog(sponsorUserId, traceId,receiveUser);
}

View File

@@ -1,13 +1,17 @@
package com.ruoyi.xq.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.WxTransData;
import com.ruoyi.xq.dto.admin.account.WxTransDataAdminVo;
import com.ruoyi.xq.dto.app.account.StarWxTransReq;
import com.ruoyi.xq.dto.app.account.WxTransDataApplyReq;
import com.ruoyi.xq.dto.app.account.WxTransDataListAppVo;
import com.ruoyi.xq.dto.app.account.WxTransDataQuery;
import com.ruoyi.xq.enums.ErrorEnum;
@@ -23,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -71,6 +76,33 @@ public class WxTransDataServiceImpl extends ServiceImpl<WxTransDataMapper,WxTran
this.save(data);
}
@Override
public void apply(WxTransDataApplyReq req){
WxTransData wxTransData = this.getById(req.getId());
if(wxTransData == null){
throw new ServiceException("数据不存在");
}
if(wxTransData.getReceiveUserId().equals(req.getUserId())){
throw new ServiceException("不是接受者无法接受微信邀请");
}
if(req.getApply() == null){
throw new ServiceException("数据异常");
}
WxTransDataStatusEnum statusEnum;
if(req.getApply().equals(1)){
statusEnum = WxTransDataStatusEnum.SUCCESS;
}else if(req.getApply().equals(2)){
statusEnum = WxTransDataStatusEnum.FAIL;
}else {
throw new ServiceException("数据异常");
}
boolean update = this.update(Wrappers.lambdaUpdate(WxTransData.class)
.eq(WxTransData::getId, wxTransData.getId())
.eq(WxTransData::getStatus, WxTransDataStatusEnum.READY.getCode())
.set(WxTransData::getStatus, statusEnum.getCode())
.set(WxTransData::getOpTime, LocalDateTime.now()));
}
@Override
public Page<WxTransDataListAppVo> pageApp(PageQuery pageQuery, WxTransDataQuery wxTransDataQuery) {
Page<WxTransData> page = baseMapper.pageApp(pageQuery.build(), wxTransDataQuery);
@@ -133,4 +165,35 @@ public class WxTransDataServiceImpl extends ServiceImpl<WxTransDataMapper,WxTran
}
return PageConvert.convert(page,res);
}
@Override
public Page<WxTransDataAdminVo> pageAdmin(PageQuery pageQuery, WxTransDataAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(), bo);
}
@Override
public boolean allowAdmin(Long id) {
boolean update = this.update(Wrappers.lambdaUpdate(WxTransData.class)
.eq(WxTransData::getId, id)
.eq(WxTransData::getStatus, WxTransDataStatusEnum.READY.getCode())
.set(WxTransData::getStatus, WxTransDataStatusEnum.SUCCESS.getCode())
.set(WxTransData::getOpTime, LocalDateTime.now())
.set(WxTransData::getIsAdmin, 1)
.set(WxTransData::getAdminId, LoginHelper.getUserId())
.set(WxTransData::getAdminName, LoginHelper.getUsername()));
return true;
}
@Override
public boolean notAllowAdmin(Long id) {
boolean update = this.update(Wrappers.lambdaUpdate(WxTransData.class)
.eq(WxTransData::getId, id)
.eq(WxTransData::getStatus, WxTransDataStatusEnum.READY.getCode())
.set(WxTransData::getStatus, WxTransDataStatusEnum.FAIL.getCode())
.set(WxTransData::getOpTime, LocalDateTime.now())
.set(WxTransData::getIsAdmin, 1)
.set(WxTransData::getAdminId, LoginHelper.getUserId())
.set(WxTransData::getAdminName, LoginHelper.getUsername()));
return true;
}
}

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.WxTransLog;
import com.ruoyi.xq.dto.admin.account.WxTransLogAdminVo;
import com.ruoyi.xq.dto.app.account.WxTransLogListVo;
import com.ruoyi.xq.dto.app.account.WxTransLogQuery;
import com.ruoyi.xq.dto.common.user.MinUser;
@@ -68,6 +69,11 @@ public class WxTransLogServiceImpl extends ServiceImpl<WxTransLogMapper,WxTransL
return PageConvert.convert(page,vo);
}
@Override
public Page<WxTransLogAdminVo> pageAdmin(PageQuery pageQuery, WxTransLogAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(), bo);
}
@Override
public void consumerSaveLog(Long sponsorUserId, String traceId, User receiveUser) {
MinUser minUser = userService.getMinUserById(sponsorUserId);
@@ -77,7 +83,7 @@ public class WxTransLogServiceImpl extends ServiceImpl<WxTransLogMapper,WxTransL
wxTransLog.setTraceId(traceId);
wxTransLog.setCateId(WxTransLogCateEnum.CONSUMER.getCode());
wxTransLog.setCateName(WxTransLogCateEnum.CONSUMER.getText());
wxTransLog.setRemark("使用一次微信交换");
wxTransLog.setRemark(String.format("对%s[%s]使用一次微信交换", receiveUser.getNickname(), receiveUser.getUsercode()));
wxTransLog.setChangeValue(-1L);
wxTransLog.setTarUserJson(JSON.toJSONString(receiveUser));
wxTransLog.setTarUserId(receiveUser.getId());

View File

@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.WxTransOrder;
import com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo;
import com.ruoyi.xq.dto.admin.account.WxTransOrderAdminVo;
import com.ruoyi.xq.dto.app.pay.ConsumeResp;
import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
import com.ruoyi.xq.enums.common.OrderTypeEnum;

View File

@@ -21,6 +21,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</where>
</select>
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.account.WxTransDataAdminVo">
select t1.*,
t2.nickname as sponsor_nickname,t2.mobile as sponsor_mobile,t2.avatar as sponsor_avatar,
t3.nickname as receive_nickname,t3.mobile as receive_mobile,t3.avatar as receive_avatar
from xq_wx_trans_data t1
left join xq_user t2 on t1.sponsor_user_id = t2.id
left join xq_user t3 on t1.receive_user_id = t3.id
<where>
<if test="bo.sponsorUsercode != null and bo.sponsorUsercode != ''">
and t1.sponsor_usercode = #{bo.sponsorUsercode}
</if>
<if test="bo.sponsorNickname != null and bo.sponsorNickname != ''">
and t2.nickname like concat('%',#{bo.sponsorNickname},'%')
</if>
<if test="bo.sponsorMobile != null and bo.sponsorMobile != ''">
and t2.mobile = #{bo.sponsorMobile}
</if>
<if test="bo.receiveUsercode != null and bo.receiveUsercode != ''">
and t1.receive_usercode = #{bo.receiveUsercode}
</if>
<if test="bo.receiveNickname != null and bo.receiveNickname != ''">
and t3.nickname like concat('%',#{bo.receiveNickname},'%')
</if>
<if test="bo.receiveMobile != null and bo.receiveMobile != ''">
and t3.mobile = #{bo.receiveMobile}
</if>
<if test="bo.status != null ">
and t1.status = #{bo.status}
</if>
</where>
order by t1.create_time desc
</select>
</mapper>

View File

@@ -4,16 +4,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.xq.mapper.WxTransLogMapper">
<resultMap type="com.ruoyi.xq.domain.WxTransLog" id="WxTransLogResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="userCode" column="user_code"/>
<result property="wxTransDataId" column="wx_trans_data_id"/>
<result property="cateId" column="cate_id"/>
<result property="changeValue" column="change_value"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.account.WxTransLogAdminVo">
select t1.*, t2.nickname,t2.mobile,t2.avatar
from xq_wx_trans_log t1
left join xq_user t2 on t1.user_id = t2.id
<where>
<if test="bo.usercode != null and bo.usercode != ''">
and t1.usercode = #{bo.usercode}
</if>
<if test="bo.nickname != null and bo.nickname != ''">
and t2.nickname like concat('%',#{bo.nickname},'%')
</if>
<if test="bo.mobile != null and bo.mobile != ''">
and t2.mobile = #{bo.mobile}
</if>
</where>
order by t1.create_time desc
</select>
</mapper>

View File

@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.xq.mapper.WxTransOrderMapper">
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo">
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.account.WxTransOrderAdminVo">
select t1.*, t2.nickname,t2.mobile,t2.avatar
from xq_wx_trans_order t1
left join xq_user t2 on t1.user_id = t2.id