This commit is contained in:
dute7liang
2024-01-14 16:44:25 +08:00
parent 852b5e08de
commit 986bee0b0f
7 changed files with 100 additions and 29 deletions

View File

@@ -3,8 +3,12 @@ package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCall; import com.ruoyi.cai.domain.UserCall;
import com.ruoyi.cai.domain.UserGift;
import com.ruoyi.cai.dto.admin.vo.UserCallAdminVo;
import com.ruoyi.cai.service.UserCallService; import com.ruoyi.cai.service.UserCallService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
@@ -14,6 +18,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.BeanConvertUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -35,14 +40,15 @@ import java.util.Arrays;
public class UserCallController extends BaseController { public class UserCallController extends BaseController {
private final UserCallService userCallService; private final UserCallService userCallService;
private final UserService userService;
/** /**
* 查询通话记录列表 * 查询通话记录列表
*/ */
@SaCheckPermission("cai:userCall:list") @SaCheckPermission("cai:userCall:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<UserCall> list(UserCall bo, PageQuery pageQuery) { public TableDataInfo<UserCallAdminVo> list(UserCallAdminVo bo, PageQuery pageQuery) {
Page<UserCall> page = userCallService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); Page<UserCallAdminVo> page = userCallService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@@ -53,9 +59,38 @@ public class UserCallController extends BaseController {
*/ */
@SaCheckPermission("cai:userCall:query") @SaCheckPermission("cai:userCall:query")
@GetMapping("/{id}") @GetMapping("/{id}")
public R<UserCall> getInfo(@NotNull(message = "主键不能为空") public R<UserCallAdminVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) { @PathVariable Long id) {
return R.ok(userCallService.getById(id)); UserCall userCall = userCallService.getById(id);
UserCallAdminVo resp = BeanConvertUtil.convertTo(userCall, UserCallAdminVo::new);
User fromUser = userService.getById(userCall.getFromUid());
if(fromUser != null){
resp.setFromMobile(fromUser.getMobile());
resp.setFromAvatar(fromUser.getAvatar());
}
User toUser = userService.getById(userCall.getToUid());
if(toUser != null){
resp.setToMobile(toUser.getMobile());
resp.setToAvatar(toUser.getAvatar());
}
return R.ok(resp);
}
@GetMapping("/trace")
public R<UserCallAdminVo> getInfoTraceId(String traceId) {
UserCall userCall = userCallService.getOne(Wrappers.lambdaQuery(UserCall.class).eq(UserCall::getTraceId,traceId).last("limit 1"));
UserCallAdminVo resp = BeanConvertUtil.convertTo(userCall, UserCallAdminVo::new);
User fromUser = userService.getById(userCall.getFromUid());
if(fromUser != null){
resp.setFromMobile(fromUser.getMobile());
resp.setFromAvatar(fromUser.getAvatar());
}
User toUser = userService.getById(userCall.getToUid());
if(toUser != null){
resp.setToMobile(toUser.getMobile());
resp.setToAvatar(toUser.getAvatar());
}
return R.ok(resp);
} }
/** /**

View File

@@ -59,11 +59,11 @@ public class UserCall implements Serializable {
/** /**
* 通话金额 * 通话金额
*/ */
private BigDecimal callAmount; private Long callAmount;
/** /**
* 通话收入 * 通话收入
*/ */
private BigDecimal callIncome; private Long callIncome;
/** /**
* 客户对女神的评分 * 客户对女神的评分
*/ */

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserCall;
import lombok.Data;
@Data
public class UserCallAdminVo extends UserCall {
private String fromMobile;
private String fromAvatar;
private String toMobile;
private String toAvatar;
}

View File

@@ -1,7 +1,10 @@
package com.ruoyi.cai.mapper; package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserCall; import com.ruoyi.cai.domain.UserCall;
import com.ruoyi.cai.dto.admin.vo.UserCallAdminVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 通话记录Mapper接口 * 通话记录Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.UserCall;
*/ */
public interface UserCallMapper extends BaseMapper<UserCall> { public interface UserCallMapper extends BaseMapper<UserCall> {
Page<UserCallAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserCallAdminVo bo);
} }

View File

@@ -1,9 +1,12 @@
package com.ruoyi.cai.service; package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.Anchor; import com.ruoyi.cai.domain.Anchor;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCall; import com.ruoyi.cai.domain.UserCall;
import com.ruoyi.cai.dto.admin.vo.UserCallAdminVo;
import com.ruoyi.common.core.domain.PageQuery;
/** /**
* 通话记录Service接口 * 通话记录Service接口
@@ -14,4 +17,7 @@ import com.ruoyi.cai.domain.UserCall;
public interface UserCallService extends IService<UserCall> { public interface UserCallService extends IService<UserCall> {
UserCall createCall(User fromUser, User toUser, Anchor anchor); UserCall createCall(User fromUser, User toUser, Anchor anchor);
Page<UserCallAdminVo> pageAdmin(PageQuery pageQuery, UserCallAdminVo bo);
} }

View File

@@ -1,12 +1,15 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.*; import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.admin.vo.UserCallAdminVo;
import com.ruoyi.cai.mapper.UserCallMapper; import com.ruoyi.cai.mapper.UserCallMapper;
import com.ruoyi.cai.service.AccountService; import com.ruoyi.cai.service.AccountService;
import com.ruoyi.cai.service.UnionUserService; import com.ruoyi.cai.service.UnionUserService;
import com.ruoyi.cai.service.UserCallService; import com.ruoyi.cai.service.UserCallService;
import com.ruoyi.cai.service.UserInviteService; import com.ruoyi.cai.service.UserInviteService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -58,4 +61,9 @@ public class UserCallServiceImpl extends ServiceImpl<UserCallMapper, UserCall> i
} }
return userCall; return userCall;
} }
@Override
public Page<UserCallAdminVo> pageAdmin(PageQuery pageQuery, UserCallAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo);
}
} }

View File

@@ -4,29 +4,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.UserCallMapper"> <mapper namespace="com.ruoyi.cai.mapper.UserCallMapper">
<resultMap type="com.ruoyi.cai.domain.UserCall" id="CaiUserCallResult"> <select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.UserCallAdminVo">
<result property="id" column="id"/> select t1.*,
<result property="fromUid" column="from_uid"/> t2.mobile as from_mobile,t2.avatar as from_avatar,
<result property="toUid" column="to_uid"/> t3.mobile as to_mobile, t3.avatar as to_avatar
<result property="status" column="status"/> from cai_user_call t1
<result property="beginTime" column="begin_time"/> left join cai_user t2 on t1.from_uid = t2.id
<result property="endTime" column="end_time"/> left join cai_user t3 on t1.to_uid = t3.id
<result property="callTime" column="call_time"/> <where>
<result property="callPrice" column="call_price"/> <if test="bo.fromUsercode != null and bo.fromUsercode != ''">
<result property="callAmount" column="call_amount"/> and t1.from_usercode = #{bo.fromUsercode}
<result property="callIncome" column="call_income"/> </if>
<result property="callScore" column="call_score"/> <if test="bo.fromMobile != null and bo.fromMobile != ''">
<result property="userScore" column="user_score"/> and t2.mobile = #{bo.fromMobile}
<result property="createTime" column="create_time"/> </if>
<result property="deleteFlag" column="delete_flag"/> <if test="bo.toUsercode != null and bo.toUsercode != ''">
<result property="receiverVideoDivide" column="receiver_video_divide"/> and t1.to_usercode = #{bo.fromUsercode}
<result property="receiverUnionUserId" column="receiver_union_user_id"/> </if>
<result property="receiverUnionVideoDivide" column="receiver_union_video_divide"/> <if test="bo.toMobile != null and bo.toMobile != ''">
<result property="receiverInviteUserId" column="receiver_invite_user_id"/> and t3.mobile = #{bo.fromMobile}
<result property="receiverIncomeDivide" column="receiver_income_divide"/> </if>
<result property="callerPayDivide" column="caller_pay_divide"/> <if test="bo.status != null">
<result property="freeNum" column="free_num"/> and t1.status = #{bo.status}
</resultMap> </if>
<if test="bo.deleteFlag != null">
and t1.delete_flag = #{bo.deleteFlag}
</if>
</where>
order by t1.create_time desc
</select>
</mapper> </mapper>