init
This commit is contained in:
@@ -6,4 +6,5 @@ public class RedisConstant {
|
||||
public static final String CITY_CACHE_REDIS = REDIS_P + "city";
|
||||
public static final String DYNAMIC_TOTAL_CACHE_REDIS = REDIS_P + "synamicTotal:%s:%s";
|
||||
public static final String CODE_REDIS = REDIS_P + "code:%s:%s";
|
||||
public static final String USER_GREET_TOTAL_REDIS = REDIS_P + "userGreetTotal:%s:%s";
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.Dynamic;
|
||||
import com.ruoyi.cai.dto.admin.query.BatchAuditReq;
|
||||
import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo;
|
||||
import com.ruoyi.cai.service.DynamicService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
@@ -34,15 +36,15 @@ import java.util.Arrays;
|
||||
@RequestMapping("/cai/dynamic")
|
||||
public class DynamicController extends BaseController {
|
||||
|
||||
private final DynamicService caiDynamicService;
|
||||
private final DynamicService dynamicService;
|
||||
|
||||
/**
|
||||
* 查询主播动态列表
|
||||
*/
|
||||
@SaCheckPermission("cai:dynamic:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<Dynamic> list(Dynamic bo, PageQuery pageQuery) {
|
||||
Page<Dynamic> page = caiDynamicService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
public TableDataInfo<DynamicAdminVo> list(DynamicAdminVo bo, PageQuery pageQuery) {
|
||||
Page<DynamicAdminVo> page = dynamicService.pageAdmin(pageQuery, bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@@ -55,7 +57,7 @@ public class DynamicController extends BaseController {
|
||||
@GetMapping("/{id}")
|
||||
public R<Dynamic> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(caiDynamicService.getById(id));
|
||||
return R.ok(dynamicService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -66,7 +68,7 @@ public class DynamicController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody Dynamic bo) {
|
||||
return toAjax(caiDynamicService.save(bo));
|
||||
return toAjax(dynamicService.save(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -77,7 +79,18 @@ public class DynamicController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Dynamic bo) {
|
||||
return toAjax(caiDynamicService.updateById(bo));
|
||||
return toAjax(dynamicService.updateById(bo));
|
||||
}
|
||||
|
||||
@SaCheckPermission("cai:dynamic:edit")
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/batch/audit")
|
||||
public R<Void> edit(@RequestBody BatchAuditReq bo) {
|
||||
dynamicService.update(Wrappers.lambdaUpdate(Dynamic.class)
|
||||
.in(Dynamic::getId,bo.getIds())
|
||||
.set(Dynamic::getAuditStatus,bo.getAuditStatus())
|
||||
.eq(Dynamic::getAuditStatus,1));
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,6 +103,6 @@ public class DynamicController extends BaseController {
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(caiDynamicService.removeBatchByIds(Arrays.asList(ids), true));
|
||||
return toAjax(dynamicService.removeBatchByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,10 @@ package com.ruoyi.cai.controller.admin;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.Dynamic;
|
||||
import com.ruoyi.cai.domain.UserCameraAudit;
|
||||
import com.ruoyi.cai.dto.admin.query.BatchAuditReq;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo;
|
||||
import com.ruoyi.cai.service.UserCameraAuditService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
@@ -41,8 +44,8 @@ public class UserCameraAuditController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("cai:userCameraAudit:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<UserCameraAudit> list(UserCameraAudit bo, PageQuery pageQuery) {
|
||||
Page<UserCameraAudit> page = userCameraAuditService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
public TableDataInfo<UserCameraAuditAdminVo> list(UserCameraAuditAdminVo bo, PageQuery pageQuery) {
|
||||
Page<UserCameraAuditAdminVo> page = userCameraAuditService.pageAdmin(pageQuery, bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@@ -80,6 +83,17 @@ public class UserCameraAuditController extends BaseController {
|
||||
return toAjax(userCameraAuditService.updateById(bo));
|
||||
}
|
||||
|
||||
@SaCheckPermission("cai:userCameraAudit:edit")
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/batch/audit")
|
||||
public R<Void> edit(@RequestBody BatchAuditReq bo) {
|
||||
userCameraAuditService.update(Wrappers.lambdaUpdate(UserCameraAudit.class)
|
||||
.in(UserCameraAudit::getId,bo.getIds())
|
||||
.set(UserCameraAudit::getAuditStatus,bo.getAuditStatus())
|
||||
.eq(UserCameraAudit::getAuditStatus,1));
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除自拍认证
|
||||
*
|
||||
|
||||
@@ -4,6 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.UserGreet;
|
||||
import com.ruoyi.cai.dto.admin.query.BatchAuditReq;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo;
|
||||
import com.ruoyi.cai.service.UserGreetService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
@@ -41,8 +43,8 @@ public class UserGreetController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("cai:userGreet:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<UserGreet> list(UserGreet bo, PageQuery pageQuery) {
|
||||
Page<UserGreet> page = userGreetService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
public TableDataInfo<UserGreetAdminVo> list(UserGreetAdminVo bo, PageQuery pageQuery) {
|
||||
Page<UserGreetAdminVo> page = userGreetService.pageAdmin(pageQuery, bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@@ -59,17 +61,18 @@ public class UserGreetController extends BaseController {
|
||||
return R.ok(userGreetService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增群发审核
|
||||
*/
|
||||
@SaCheckPermission("cai:userGreet:add")
|
||||
@Log(title = "群发审核", businessType = BusinessType.INSERT)
|
||||
@SaCheckPermission("cai:userGreet:edit")
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserGreet bo) {
|
||||
return toAjax(userGreetService.save(bo));
|
||||
@PostMapping("/batch/audit")
|
||||
public R<Void> edit(@RequestBody BatchAuditReq bo) {
|
||||
userGreetService.update(Wrappers.lambdaUpdate(UserGreet.class)
|
||||
.in(UserGreet::getId,bo.getIds())
|
||||
.set(UserGreet::getAuditStatus,bo.getAuditStatus())
|
||||
.eq(UserGreet::getAuditStatus,1));
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改群发审核
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.ruoyi.cai.controller.app;
|
||||
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserGreet;
|
||||
import com.ruoyi.cai.dto.app.query.IdRes;
|
||||
import com.ruoyi.cai.dto.app.query.user.UserGreetAddReq;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserGreetVo;
|
||||
import com.ruoyi.cai.service.UserGreetService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/user/greet")
|
||||
@Tag(name = "群打招呼相关接口")
|
||||
public class UserGreetAppController {
|
||||
|
||||
@Autowired
|
||||
private UserGreetService userGreetService;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获取当前用户打招呼列表")
|
||||
public R<List<UserGreetVo>> list(){
|
||||
Long userId = LoginHelper.getUserId();
|
||||
User user = userService.getById(userId);
|
||||
if(user == null || user.getIsAnchor() == 0){
|
||||
return R.fail(600, "您不是女神,无法群打招呼,快去申请吧!");
|
||||
}
|
||||
List<UserGreet> userGreet = userGreetService.listByUserId(userId);
|
||||
return R.ok(BeanConvertUtil.convertListTo(userGreet,UserGreetVo::new));
|
||||
}
|
||||
|
||||
@GetMapping("/add")
|
||||
@Operation(summary = "新增群打招呼")
|
||||
public R<Void> add(@RequestBody UserGreetAddReq req){
|
||||
userGreetService.addUserGreet(req);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/delete")
|
||||
@Operation(summary = "删除群打招呼")
|
||||
public R<Void> add(@RequestBody IdRes req){
|
||||
userGreetService.removeById(req.getId());
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@PostMapping("/send")
|
||||
@Operation(summary = "群打招呼")
|
||||
public R<Void> send(@RequestBody IdRes req){
|
||||
userGreetService.batchSend(req.getId(),LoginHelper.getUserId());
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -41,9 +41,9 @@ public class Dynamic implements Serializable {
|
||||
*/
|
||||
private Integer isAttach;
|
||||
/**
|
||||
* 状态 0 审核中 1可用 2 不可用
|
||||
* 状态 1 审核中 2 审核通过 3-审核不通过
|
||||
*/
|
||||
private Integer status;
|
||||
private Integer auditStatus;
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
|
||||
@@ -23,23 +23,19 @@ public class UserGreet implements Serializable {
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Integer id;
|
||||
private Long id;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Integer userId;
|
||||
/**
|
||||
* 招呼类型: 0文本 1 语音 2 图片
|
||||
*/
|
||||
private Integer type;
|
||||
private Long userId;
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
/**
|
||||
* 审核状态 0 审核中, 1 审核通过, 2 审核不通过
|
||||
* 审核状态 1 审核中, 2 审核通过, 3 审核不通过
|
||||
*/
|
||||
private Integer status;
|
||||
private Integer auditStatus;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cai.dto.admin.query;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class BatchAuditReq {
|
||||
private List<Long> ids;
|
||||
private Integer auditStatus;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.ruoyi.cai.dto.admin.vo;
|
||||
|
||||
import com.ruoyi.cai.domain.Dynamic;
|
||||
import com.ruoyi.cai.domain.DynamicImages;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DynamicAdminVo extends Dynamic {
|
||||
/**
|
||||
* 用户号/ID号
|
||||
*/
|
||||
private String usercode;
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String mobile;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private Integer gender;
|
||||
private Integer age;
|
||||
private Integer status;
|
||||
|
||||
private List<DynamicImages> dynamicImageList;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.ruoyi.cai.dto.admin.vo;
|
||||
|
||||
import com.ruoyi.cai.domain.UserCameraAudit;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserCameraAuditAdminVo extends UserCameraAudit {
|
||||
/**
|
||||
* 用户号/ID号
|
||||
*/
|
||||
private String usercode;
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String mobile;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private Integer gender;
|
||||
private Integer age;
|
||||
private Integer status;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.ruoyi.cai.dto.admin.vo;
|
||||
|
||||
import com.ruoyi.cai.domain.UserGreet;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserGreetAdminVo extends UserGreet {
|
||||
/**
|
||||
* 用户号/ID号
|
||||
*/
|
||||
private String usercode;
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String mobile;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private Integer gender;
|
||||
private Integer age;
|
||||
private Integer status;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.cai.dto.app.query.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "新增群达招呼")
|
||||
public class UserGreetAddReq {
|
||||
@Schema(accessMode = Schema.AccessMode.READ_ONLY)
|
||||
private Long userId;
|
||||
@Schema(description = "内容")
|
||||
private String title;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.ruoyi.cai.dto.app.vo.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "群打招呼")
|
||||
public class UserGreetVo {
|
||||
|
||||
@Schema(description = "ID")
|
||||
private Long id;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Schema(description = "用户ID")
|
||||
private Long userId;
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@Schema(description = "标题")
|
||||
private String title;
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@Schema(description = "审核状态 1 审核中, 2 审核通过, 3 审核不通过")
|
||||
private Integer status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.cai.enums;
|
||||
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum AuditStatusEnum {
|
||||
NONE(0,"待申请"),
|
||||
AUDITING(1,"审核中"),
|
||||
SUCCESS(2,"审核通过"),
|
||||
FAIL(3,"审核失败"),
|
||||
;
|
||||
private final Integer code;
|
||||
private final String name;
|
||||
|
||||
AuditStatusEnum(Integer code, String name) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,8 @@ public enum SystemConfigEnum {
|
||||
DEFAULT_UNION_GIFT_INCOME_RATE("0.01", "默认工会礼物提成"),
|
||||
DEFAULT_UNION_VIDEO_INCOME_RATE("0.01", "默认工会视频提成"),
|
||||
DEFAULT_UNION_ONE_INCOME_RATE("0.07", "默认工会一级提成"),
|
||||
TODAY_GREET_MAX("100", "每日主播群打招呼次数"),
|
||||
GREET_INTERVAL_MIN("30", "群打招呼的间隔时间(分钟)"),
|
||||
|
||||
;
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ public class LockManager {
|
||||
|
||||
public static final String LOCK_REGISTER_REDIS = RedisConstant.REDIS_P + "lock:register:%s";
|
||||
public static final String LOCK_DEAL_INVITE_REDIS = RedisConstant.REDIS_P + "lock:dealInvite:%s";
|
||||
public static final String LOCK_ADD_USER_GREET_REDIS = RedisConstant.REDIS_P + "lock:addUserGreet:%s";
|
||||
public static final String LOCK_SEND_GREET_REDIS = RedisConstant.REDIS_P + "lock:sendGreet:%s";
|
||||
|
||||
public static String getRegisterLockKey(String mobile){
|
||||
return String.format(LOCK_REGISTER_REDIS,mobile);
|
||||
@@ -14,4 +16,12 @@ public class LockManager {
|
||||
public static String getDealInviteLockKey(Long userId){
|
||||
return String.format(LOCK_DEAL_INVITE_REDIS,userId);
|
||||
}
|
||||
|
||||
public static String getAddUserGreetLock(Long userId){
|
||||
return String.format(LOCK_ADD_USER_GREET_REDIS,userId);
|
||||
}
|
||||
|
||||
public static String getSendGreetLock(Long userId){
|
||||
return String.format(LOCK_SEND_GREET_REDIS,userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.ruoyi.cai.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.Dynamic;
|
||||
import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo;
|
||||
import com.ruoyi.cai.dto.app.query.DynamicQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -20,4 +21,6 @@ public interface DynamicMapper extends BaseMapper<Dynamic> {
|
||||
Page<DynamicListVo> pageApp(@Param("build") Page<Object> build, @Param("query") DynamicQuery query);
|
||||
|
||||
List<String> selectDynamicImageList(@Param("userId") Long userId, @Param("limit") Integer limit);
|
||||
|
||||
Page<DynamicAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") DynamicAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.cai.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.UserCameraAudit;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 自拍认证Mapper接口
|
||||
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.UserCameraAudit;
|
||||
*/
|
||||
public interface UserCameraAuditMapper extends BaseMapper<UserCameraAudit> {
|
||||
|
||||
Page<UserCameraAuditAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserCameraAuditAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.cai.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.UserGreet;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 群发审核Mapper接口
|
||||
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.UserGreet;
|
||||
*/
|
||||
public interface UserGreetMapper extends BaseMapper<UserGreet> {
|
||||
|
||||
Page<UserGreetAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserGreetAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.ruoyi.cai.dto.app.query.index.UserQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户Mapper接口
|
||||
*
|
||||
@@ -20,4 +22,6 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
Page<UserAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("query") User query);
|
||||
Page<UserListVo> pageApp(@Param("build") Page<Object> build, @Param("query") UserQuery query);
|
||||
Page<UserListVo> greetPageApp(@Param("build") Page<Object> build, @Param("query") GreetQuery query);
|
||||
|
||||
List<Long> getGreetNumId(@Param("userId") Long userId);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.ruoyi.cai.service;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.Dynamic;
|
||||
import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo;
|
||||
import com.ruoyi.cai.dto.app.query.DynamicAddReq;
|
||||
import com.ruoyi.cai.dto.app.query.DynamicQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
|
||||
@@ -23,4 +24,6 @@ public interface DynamicService extends IService<Dynamic> {
|
||||
Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query);
|
||||
|
||||
void saveDynamic(DynamicAddReq res);
|
||||
|
||||
Page<DynamicAdminVo> pageAdmin(PageQuery pageQuery, DynamicAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.UserCameraAudit;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo;
|
||||
import com.ruoyi.cai.dto.app.vo.CameraAuditVo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
/**
|
||||
* 自拍认证Service接口
|
||||
@@ -17,4 +20,6 @@ public interface UserCameraAuditService extends IService<UserCameraAudit> {
|
||||
CameraAuditVo cameraAudit(Long userId);
|
||||
|
||||
Boolean uploadCameraAudit(CameraAuditVo vo);
|
||||
|
||||
Page<UserCameraAuditAdminVo> pageAdmin(PageQuery pageQuery, UserCameraAuditAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.UserGreet;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo;
|
||||
import com.ruoyi.cai.dto.app.query.user.UserGreetAddReq;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 群发审核Service接口
|
||||
@@ -11,4 +17,11 @@ import com.ruoyi.cai.domain.UserGreet;
|
||||
*/
|
||||
public interface UserGreetService extends IService<UserGreet> {
|
||||
|
||||
List<UserGreet> listByUserId(Long userId);
|
||||
|
||||
void addUserGreet(UserGreetAddReq req);
|
||||
|
||||
void batchSend(Long id, Long userId);
|
||||
|
||||
Page<UserGreetAdminVo> pageAdmin(PageQuery pageQuery, UserGreetAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ import com.ruoyi.cai.dto.app.vo.user.UserInfoVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户Service接口
|
||||
*
|
||||
@@ -37,5 +39,4 @@ public interface UserService extends IService<User> {
|
||||
|
||||
void resetPassword(String mobile, String password);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.ruoyi.cai.cache.DynamicTotalCache;
|
||||
import com.ruoyi.cai.domain.Dynamic;
|
||||
import com.ruoyi.cai.domain.DynamicImages;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo;
|
||||
import com.ruoyi.cai.dto.app.query.DynamicAddReq;
|
||||
import com.ruoyi.cai.dto.app.query.DynamicQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.DynamicImageVo;
|
||||
@@ -107,4 +108,22 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<DynamicAdminVo> pageAdmin(PageQuery pageQuery, DynamicAdminVo bo) {
|
||||
Page<DynamicAdminVo> page = baseMapper.pageAdmin(pageQuery.build(), bo);
|
||||
List<DynamicAdminVo> records = page.getRecords();
|
||||
List<Long> dynamicIds = records.stream().filter(i -> i.getIsAttach() == 1).map(DynamicAdminVo::getId).collect(Collectors.toList());
|
||||
if(CollectionUtil.isNotEmpty(dynamicIds)){
|
||||
List<DynamicImages> dynamicImages = dynamicImagesService.list(Wrappers.lambdaQuery(DynamicImages.class)
|
||||
.in(DynamicImages::getDynamicId, dynamicIds));
|
||||
Map<Long, List<DynamicImages>> map =
|
||||
dynamicImages.stream().collect(Collectors.groupingBy(DynamicImages::getDynamicId));
|
||||
for (DynamicAdminVo re : records) {
|
||||
List<DynamicImages> images = map.get(re.getId());
|
||||
re.setDynamicImageList(images);
|
||||
}
|
||||
}
|
||||
return page;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,13 +2,17 @@ package com.ruoyi.cai.service.impl;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
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.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserCameraAudit;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo;
|
||||
import com.ruoyi.cai.dto.app.vo.CameraAuditVo;
|
||||
import com.ruoyi.cai.enums.AuditStatusEnum;
|
||||
import com.ruoyi.cai.mapper.UserCameraAuditMapper;
|
||||
import com.ruoyi.cai.service.UserCameraAuditService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -29,10 +33,10 @@ public class UserCameraAuditServiceImpl extends ServiceImpl<UserCameraAuditMappe
|
||||
public static final Map<Integer,String> ACTION_TYPES = new HashMap<>();
|
||||
|
||||
static {
|
||||
ACTION_TYPES.put(1,"123");
|
||||
ACTION_TYPES.put(2,"123");
|
||||
ACTION_TYPES.put(3,"123");
|
||||
ACTION_TYPES.put(4,"123");
|
||||
ACTION_TYPES.put(1,"images/audit/ic_1.jpg");
|
||||
ACTION_TYPES.put(2,"images/audit/ic_2.jpg");
|
||||
ACTION_TYPES.put(3,"images/audit/ic_3.jpg");
|
||||
ACTION_TYPES.put(4,"images/audit/ic_4.jpg");
|
||||
}
|
||||
|
||||
@Autowired
|
||||
@@ -55,11 +59,11 @@ public class UserCameraAuditServiceImpl extends ServiceImpl<UserCameraAuditMappe
|
||||
vo.setUserId(userId);
|
||||
vo.setActionType(actionType);
|
||||
vo.setActionImage(ACTION_TYPES.get(actionType));
|
||||
vo.setAuditStatus(0);
|
||||
vo.setAuditStatus(AuditStatusEnum.NONE.getCode());
|
||||
}
|
||||
User user = userService.getById(userId);
|
||||
if(user.getCameraStatus() == 1){
|
||||
vo.setAuditStatus(2);
|
||||
vo.setAuditStatus(AuditStatusEnum.SUCCESS.getCode());
|
||||
vo.setAuditRemark(null);
|
||||
}
|
||||
return vo;
|
||||
@@ -81,7 +85,7 @@ public class UserCameraAuditServiceImpl extends ServiceImpl<UserCameraAuditMappe
|
||||
|
||||
UserCameraAudit update = new UserCameraAudit();
|
||||
update.setUserId(vo.getUserId());
|
||||
update.setAuditStatus(1);
|
||||
update.setAuditStatus(AuditStatusEnum.AUDITING.getCode());
|
||||
update.setActionType(vo.getActionType());
|
||||
update.setActionImage(vo.getActionImage());
|
||||
if(userCameraAudit != null){
|
||||
@@ -90,4 +94,9 @@ public class UserCameraAuditServiceImpl extends ServiceImpl<UserCameraAuditMappe
|
||||
}
|
||||
return this.saveOrUpdate(update);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<UserCameraAuditAdminVo> pageAdmin(PageQuery pageQuery, UserCameraAuditAdminVo bo) {
|
||||
return baseMapper.pageAdmin(pageQuery.build(),bo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,40 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
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.cai.constant.RedisConstant;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserGreet;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo;
|
||||
import com.ruoyi.cai.dto.app.query.user.UserGreetAddReq;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.manager.LockManager;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.mapper.UserGreetMapper;
|
||||
import com.ruoyi.cai.mapper.UserMapper;
|
||||
import com.ruoyi.cai.service.UserGreetService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.yunxin.Yunxin;
|
||||
import com.ruoyi.yunxin.resp.YxCommonR;
|
||||
import com.ruoyi.yunxin.resp.YxDataR;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 群发审核Service业务层处理
|
||||
*
|
||||
@@ -15,4 +44,116 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class UserGreetServiceImpl extends ServiceImpl<UserGreetMapper,UserGreet> implements UserGreetService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Autowired
|
||||
private Yunxin yunxin;
|
||||
@Resource
|
||||
private UserMapper userMapper;
|
||||
|
||||
@Override
|
||||
public List<UserGreet> listByUserId(Long userId) {
|
||||
return this.list(Wrappers.lambdaQuery(UserGreet.class)
|
||||
.eq(UserGreet::getUserId,userId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addUserGreet(UserGreetAddReq req) {
|
||||
User user = userService.getById(req.getUserId());
|
||||
if(user == null || user.getIsAnchor() == 0){
|
||||
throw new ServiceException("您不是女神,无法群发消息");
|
||||
}
|
||||
// 加锁 1秒
|
||||
String lockKey = LockManager.getAddUserGreetLock(req.getUserId());
|
||||
RLock lock = redissonClient.getLock(lockKey);
|
||||
if(lock.isLocked()){
|
||||
throw new ServiceException("请求太频繁");
|
||||
}
|
||||
try {
|
||||
lock.lock(1, TimeUnit.SECONDS);
|
||||
List<UserGreet> greets = this.listByUserId(req.getUserId());
|
||||
if(greets.size() > 10){
|
||||
throw new ServiceException("每人最多10条");
|
||||
}
|
||||
Set<String> set = greets.stream().map(UserGreet::getTitle).collect(Collectors.toSet());
|
||||
if(set.contains(req.getTitle())){
|
||||
throw new ServiceException("招呼内容已存在");
|
||||
}
|
||||
UserGreet userGreet = new UserGreet();
|
||||
userGreet.setUserId(req.getUserId());
|
||||
userGreet.setTitle(req.getTitle());
|
||||
this.save(userGreet);
|
||||
}finally {
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchSend(Long id, Long userId) {
|
||||
UserGreet userGreet = this.getById(id);
|
||||
if(userGreet == null || !userGreet.getUserId().equals(userId)){
|
||||
throw new ServiceException("请选择打招呼内容");
|
||||
}
|
||||
if(userGreet.getAuditStatus() != 1){
|
||||
throw new ServiceException("内容未通过审核");
|
||||
}
|
||||
String lockKey = LockManager.getSendGreetLock(userId);
|
||||
RLock lock = redissonClient.getLock(lockKey);
|
||||
if(!lock.isLocked()){
|
||||
throw new ServiceException("操作太频繁");
|
||||
}
|
||||
try {
|
||||
lock.lock(3,TimeUnit.SECONDS);
|
||||
String numKey = String.format(RedisConstant.USER_GREET_TOTAL_REDIS, DateUtil.today(), userId);
|
||||
String val = stringRedisTemplate.opsForValue().get(numKey);
|
||||
Long max = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.TODAY_GREET_MAX);
|
||||
if(val != null && Long.parseLong(val) > max){
|
||||
throw new ServiceException("您今天打招呼的次数已经用完了");
|
||||
}
|
||||
String sendGreetLock = LockManager.getSendGreetLock(userId);
|
||||
String lastTime = stringRedisTemplate.opsForValue().getAndExpire(sendGreetLock, 1, TimeUnit.DAYS);
|
||||
if(StringUtils.isNotBlank(lastTime)){
|
||||
Integer inter = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.GREET_INTERVAL_MIN);
|
||||
long jiange = Long.parseLong(lastTime) - DateUtil.currentSeconds();
|
||||
long diff = inter - jiange;
|
||||
if(diff > 0){
|
||||
if(diff > 60){
|
||||
throw new ServiceException("请在"+diff/60+"分钟后再打招呼吧!");
|
||||
}else{
|
||||
throw new ServiceException("请在"+diff+"秒后再打招呼吧!");
|
||||
}
|
||||
}
|
||||
}
|
||||
List<Long> toUserIds = userMapper.getGreetNumId(userId);
|
||||
if(CollectionUtil.isEmpty(toUserIds)){
|
||||
return;
|
||||
}
|
||||
YxDataR<YxCommonR> r = yunxin.batchSendToTextMessage(userId, toUserIds, userGreet.getTitle());
|
||||
if(!r.isSuccess()){
|
||||
throw new ServiceException("发送失败");
|
||||
}
|
||||
stringRedisTemplate.opsForValue().set(sendGreetLock,DateUtil.currentSeconds()+"",1,TimeUnit.DAYS);
|
||||
stringRedisTemplate.opsForValue().increment(numKey);
|
||||
stringRedisTemplate.expire(numKey,1,TimeUnit.DAYS);
|
||||
}finally {
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<UserGreetAdminVo> pageAdmin(PageQuery pageQuery, UserGreetAdminVo bo) {
|
||||
return baseMapper.pageAdmin(pageQuery.build(),bo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -10,18 +10,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="content" column="content"/>
|
||||
<result property="cityId" column="city_id"/>
|
||||
<result property="isAttach" column="is_attach"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="sort" column="sort"/>
|
||||
</resultMap>
|
||||
<select id="pageApp" resultType="com.ruoyi.cai.dto.app.vo.DynamicListVo">
|
||||
select
|
||||
t2.age,t2.gender,t2.avatar,t2.nickname,if(t3.id is null,0,1) as star,
|
||||
t1.id,t1.user_id,t1.city_id,t1.is_attach,t1.status,t1.create_time,t1.content
|
||||
t1.id,t1.user_id,t1.city_id,t1.is_attach,t1.audit_status,t1.create_time,t1.content
|
||||
from cai_dynamic t1
|
||||
left join cai_user t2 on t1.user_id = t2.id
|
||||
left join cai_user_follow_dynamic t3 on t1.id = t3.dynamic_id and t3.user_id = #{query.currentUserId}
|
||||
where t1.status = 1 and t2.status = 0
|
||||
where t1.audit_status = 2 and t2.status = 0
|
||||
<if test="query.userId != null">
|
||||
and t1.user_id = #{query.userId}
|
||||
</if>
|
||||
@@ -37,9 +36,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
select t2.url
|
||||
from cai_dynamic t1
|
||||
join cai_dynamic_images t2 on t1.id = t2.user_id
|
||||
where t1.status = 1 and t1.user_id = #{userId}
|
||||
where t1.audit_status = 2 and t1.user_id = #{userId}
|
||||
limit #{limit}
|
||||
</select>
|
||||
<select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.DynamicAdminVo">
|
||||
select t1.*, t2.usercode,t2.nickname,t2.mobile,t2.avatar,t2.gender,t2.is_anchor,t2.age,t2.status
|
||||
from cai_dynamic t1
|
||||
left join cai_user t2 on t1.user_id = t2.id
|
||||
<where>
|
||||
<if test="bo.mobile != null and bo.mobile != ''">
|
||||
and t2.mobile = #{bo.mobile}
|
||||
</if>
|
||||
<if test="bo.usercode != null and bo.usercode != ''">
|
||||
and t2.usercode = #{bo.usercode}
|
||||
</if>
|
||||
<if test="bo.auditStatus != null">
|
||||
and t1.audit_status = #{bo.auditStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -3,20 +3,23 @@
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.cai.mapper.UserCameraAuditMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.cai.domain.UserCameraAudit" id="CaiUserCameraAuditResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="actionType" column="action_type"/>
|
||||
<result property="actionImage" column="action_image"/>
|
||||
<result property="photo" column="photo"/>
|
||||
<result property="auditStatus" column="audit_status"/>
|
||||
<result property="auditTime" column="audit_time"/>
|
||||
<result property="auditCount" column="audit_count"/>
|
||||
<result property="auditRemark" column="audit_remark"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="operateIp" column="operate_ip"/>
|
||||
</resultMap>
|
||||
<select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo">
|
||||
select t1.*, t2.usercode,t2.nickname,t2.mobile,t2.avatar,t2.gender,t2.is_anchor,t2.age,t2.status
|
||||
from cai_user_camera_audit t1
|
||||
left join cai_user t2 on t1.user_id = t2.id
|
||||
<where>
|
||||
<if test="bo.mobile != null and bo.mobile != ''">
|
||||
and t2.mobile = #{bo.mobile}
|
||||
</if>
|
||||
<if test="bo.usercode != null and bo.usercode != ''">
|
||||
and t2.usercode = #{bo.usercode}
|
||||
</if>
|
||||
<if test="bo.auditStatus != null">
|
||||
and t1.audit_status = #{bo.auditStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -4,14 +4,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.cai.mapper.UserGreetMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.cai.domain.UserGreet" id="UserGreetResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="type" column="type"/>
|
||||
<result property="title" column="title"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
</resultMap>
|
||||
<select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo">
|
||||
select t1.*, t2.usercode,t2.nickname,t2.mobile,t2.avatar,t2.gender,t2.is_anchor,t2.age,t2.status
|
||||
from cai_user_greet t1
|
||||
left join cai_user t2 on t1.user_id = t2.id
|
||||
<where>
|
||||
<if test="bo.mobile != null and bo.mobile != ''">
|
||||
and t2.mobile = #{bo.mobile}
|
||||
</if>
|
||||
<if test="bo.usercode != null and bo.usercode != ''">
|
||||
and t2.usercode = #{bo.usercode}
|
||||
</if>
|
||||
<if test="bo.auditStatus != null">
|
||||
and t1.audit_status = #{bo.auditStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -52,6 +52,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</if>
|
||||
order by t2.last_live_time desc
|
||||
</select>
|
||||
<select id="getGreetNumId" resultType="java.lang.Long">
|
||||
select t1.id
|
||||
from cai_user t1
|
||||
where t1.status = 0 and t1.gender = 2 and t1.no_greet = 0
|
||||
and not exists(select 1 from cai_user_blacklist p1 where t1.id = p1.user_id)
|
||||
and not exists(select 1 from cai_user_blacklist p2 where t1.id = p2.black_uid)
|
||||
order by t1.update_time desc
|
||||
limit 20
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user