init
This commit is contained in:
@@ -13,6 +13,7 @@ import com.ruoyi.common.core.validate.EditGroup;
|
|||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.xq.domain.UserExtend;
|
import com.ruoyi.xq.domain.UserExtend;
|
||||||
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
||||||
|
import com.ruoyi.xq.dto.admin.user.req.UpdateIncomeCoinReq;
|
||||||
import com.ruoyi.xq.service.UserExtendService;
|
import com.ruoyi.xq.service.UserExtendService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -59,38 +60,13 @@ public class UserExtendController extends BaseController {
|
|||||||
return R.ok(userExtendService.getById(id));
|
return R.ok(userExtendService.getById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增用户邀请
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("xq:userExtend:add")
|
|
||||||
@Log(title = "用户邀请", businessType = BusinessType.INSERT)
|
|
||||||
@RepeatSubmit()
|
|
||||||
@PostMapping()
|
|
||||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserExtend bo) {
|
|
||||||
return toAjax(userExtendService.save(bo));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改用户邀请
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("xq:userExtend:edit")
|
@SaCheckPermission("xq:userExtend:edit")
|
||||||
@Log(title = "用户邀请", businessType = BusinessType.UPDATE)
|
@Log(title = "调整用户收益", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PostMapping("/updateIncomeCoin")
|
||||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserExtend bo) {
|
public R<Void> updateIncomeCoin(@RequestBody UpdateIncomeCoinReq bo) {
|
||||||
return toAjax(userExtendService.updateById(bo));
|
userExtendService.updateIncomeCoin(bo);
|
||||||
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除用户邀请
|
|
||||||
*
|
|
||||||
* @param ids 主键串
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("xq:userExtend:remove")
|
|
||||||
@Log(title = "用户邀请", businessType = BusinessType.DELETE)
|
|
||||||
@DeleteMapping("/{ids}")
|
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
|
||||||
@PathVariable Long[] ids) {
|
|
||||||
return toAjax(userExtendService.removeBatchByIds(Arrays.asList(ids)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ 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.xq.domain.UserInvite;
|
import com.ruoyi.xq.domain.UserInvite;
|
||||||
|
import com.ruoyi.xq.dto.admin.user.UserInviteAdminVo;
|
||||||
import com.ruoyi.xq.service.UserInviteService;
|
import com.ruoyi.xq.service.UserInviteService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -41,8 +42,8 @@ public class UserInviteController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@SaCheckPermission("xq:userInvite:list")
|
@SaCheckPermission("xq:userInvite:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<UserInvite> list(UserInvite bo, PageQuery pageQuery) {
|
public TableDataInfo<UserInviteAdminVo> list(UserInviteAdminVo bo, PageQuery pageQuery) {
|
||||||
Page<UserInvite> page = userInviteService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
Page<UserInviteAdminVo> page = userInviteService.pageAdmin(pageQuery, bo);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.ruoyi.xq.dto.admin.user;
|
||||||
|
|
||||||
|
import com.ruoyi.xq.domain.UserInvite;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserInviteAdminVo extends UserInvite {
|
||||||
|
private String avatar;
|
||||||
|
private String nickname;
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
private String inviteMobile;
|
||||||
|
private String inviteAvatar;
|
||||||
|
private String inviteNickname;
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.ruoyi.xq.dto.admin.user.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UpdateIncomeCoinReq {
|
||||||
|
private String usercode;
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调整的金额
|
||||||
|
*/
|
||||||
|
private BigDecimal rechargeCoin;
|
||||||
|
}
|
||||||
@@ -18,5 +18,7 @@ public interface UserExtendMapper extends BaseMapper<UserExtend> {
|
|||||||
|
|
||||||
boolean decrIncome(@Param("userId") Long userId, @Param("price") BigDecimal price);
|
boolean decrIncome(@Param("userId") Long userId, @Param("price") BigDecimal price);
|
||||||
|
|
||||||
|
boolean incrIncome(@Param("userId") Long userId, @Param("price") BigDecimal price);
|
||||||
|
|
||||||
Page<UserExtendAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserExtendAdminVo bo);
|
Page<UserExtendAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserExtendAdminVo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.ruoyi.xq.mapper;
|
package com.ruoyi.xq.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.xq.domain.UserInvite;
|
import com.ruoyi.xq.domain.UserInvite;
|
||||||
|
import com.ruoyi.xq.dto.admin.user.UserInviteAdminVo;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户邀请Mapper接口
|
* 用户邀请Mapper接口
|
||||||
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.UserInvite;
|
|||||||
*/
|
*/
|
||||||
public interface UserInviteMapper extends BaseMapper<UserInvite> {
|
public interface UserInviteMapper extends BaseMapper<UserInvite> {
|
||||||
|
|
||||||
|
Page<UserInviteAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserInviteAdminVo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
import com.ruoyi.xq.domain.UserExtend;
|
import com.ruoyi.xq.domain.UserExtend;
|
||||||
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
||||||
|
import com.ruoyi.xq.dto.admin.user.req.UpdateIncomeCoinReq;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@@ -19,4 +20,6 @@ public interface UserExtendService extends IService<UserExtend> {
|
|||||||
boolean withdraw(Long userId, BigDecimal withdrawPrice);
|
boolean withdraw(Long userId, BigDecimal withdrawPrice);
|
||||||
|
|
||||||
Page<UserExtendAdminVo> pageAdmin(PageQuery pageQuery, UserExtendAdminVo bo);
|
Page<UserExtendAdminVo> pageAdmin(PageQuery pageQuery, UserExtendAdminVo bo);
|
||||||
|
|
||||||
|
void updateIncomeCoin(UpdateIncomeCoinReq bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.ruoyi.xq.service;
|
package com.ruoyi.xq.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.common.core.domain.PageQuery;
|
||||||
import com.ruoyi.xq.domain.UserInvite;
|
import com.ruoyi.xq.domain.UserInvite;
|
||||||
|
import com.ruoyi.xq.dto.admin.user.UserInviteAdminVo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户邀请Service接口
|
* 用户邀请Service接口
|
||||||
@@ -14,4 +17,6 @@ public interface UserInviteService extends IService<UserInvite> {
|
|||||||
void bindInvite(Long userId, String inviteCode);
|
void bindInvite(Long userId, String inviteCode);
|
||||||
|
|
||||||
void unBindInviteUser(Long userId);
|
void unBindInviteUser(Long userId);
|
||||||
|
|
||||||
|
Page<UserInviteAdminVo> pageAdmin(PageQuery pageQuery, UserInviteAdminVo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,18 @@ package com.ruoyi.xq.service.impl;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
import com.ruoyi.xq.domain.User;
|
||||||
import com.ruoyi.xq.domain.UserExtend;
|
import com.ruoyi.xq.domain.UserExtend;
|
||||||
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
||||||
|
import com.ruoyi.xq.dto.admin.user.req.UpdateIncomeCoinReq;
|
||||||
import com.ruoyi.xq.mapper.UserExtendMapper;
|
import com.ruoyi.xq.mapper.UserExtendMapper;
|
||||||
import com.ruoyi.xq.service.UserExtendService;
|
import com.ruoyi.xq.service.UserExtendService;
|
||||||
|
import com.ruoyi.xq.service.UserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@@ -21,7 +27,8 @@ import java.math.BigDecimal;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Service
|
@Service
|
||||||
public class UserExtendServiceImpl extends ServiceImpl<UserExtendMapper,UserExtend> implements UserExtendService {
|
public class UserExtendServiceImpl extends ServiceImpl<UserExtendMapper,UserExtend> implements UserExtendService {
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean withdraw(Long userId, BigDecimal withdrawPrice){
|
public boolean withdraw(Long userId, BigDecimal withdrawPrice){
|
||||||
@@ -34,4 +41,17 @@ public class UserExtendServiceImpl extends ServiceImpl<UserExtendMapper,UserExte
|
|||||||
return baseMapper.pageAdmin(pageQuery.build(), bo);
|
return baseMapper.pageAdmin(pageQuery.build(), bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void updateIncomeCoin(UpdateIncomeCoinReq bo) {
|
||||||
|
User user = userService.getByUsercode(bo.getUsercode());
|
||||||
|
if(user == null){
|
||||||
|
throw new ServiceException("用户不存在");
|
||||||
|
}
|
||||||
|
boolean income = baseMapper.incrIncome(user.getId(), bo.getRechargeCoin());
|
||||||
|
if(!income){
|
||||||
|
throw new ServiceException("调整失败,请保证调整后金额不为负数");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package com.ruoyi.xq.service.impl;
|
package com.ruoyi.xq.service.impl;
|
||||||
|
|
||||||
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.service.impl.ServiceImpl;
|
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.exception.ServiceException;
|
||||||
import com.ruoyi.xq.domain.User;
|
import com.ruoyi.xq.domain.User;
|
||||||
import com.ruoyi.xq.domain.UserInvite;
|
import com.ruoyi.xq.domain.UserInvite;
|
||||||
|
import com.ruoyi.xq.dto.admin.user.UserInviteAdminVo;
|
||||||
import com.ruoyi.xq.mapper.UserInviteMapper;
|
import com.ruoyi.xq.mapper.UserInviteMapper;
|
||||||
import com.ruoyi.xq.service.UserInviteService;
|
import com.ruoyi.xq.service.UserInviteService;
|
||||||
import com.ruoyi.xq.service.UserService;
|
import com.ruoyi.xq.service.UserService;
|
||||||
@@ -65,4 +68,9 @@ public class UserInviteServiceImpl extends ServiceImpl<UserInviteMapper, UserInv
|
|||||||
.eq(User::getId, userId)
|
.eq(User::getId, userId)
|
||||||
.set(User::getInviteId, null));
|
.set(User::getInviteId, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<UserInviteAdminVo> pageAdmin(PageQuery pageQuery, UserInviteAdminVo bo) {
|
||||||
|
return baseMapper.pageAdmin(pageQuery.build(), bo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
set income_coin = income_coin - #{price}
|
set income_coin = income_coin - #{price}
|
||||||
where income_coin - #{price} > 0 and user_id = #{userId}
|
where income_coin - #{price} > 0 and user_id = #{userId}
|
||||||
</update>
|
</update>
|
||||||
|
<update id="incrIncome">
|
||||||
|
update xq_user_extend
|
||||||
|
set income_coin = income_coin + #{price}
|
||||||
|
where income_coin + #{price} > 0 and user_id = #{userId}
|
||||||
|
</update>
|
||||||
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.user.UserExtendAdminVo">
|
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.user.UserExtendAdminVo">
|
||||||
select t1.*, t2.nickname,t2.mobile,t2.avatar
|
select t1.*, t2.nickname,t2.mobile,t2.avatar
|
||||||
from xq_user_extend t1
|
from xq_user_extend t1
|
||||||
|
|||||||
@@ -4,16 +4,36 @@ 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.xq.mapper.UserInviteMapper">
|
<mapper namespace="com.ruoyi.xq.mapper.UserInviteMapper">
|
||||||
|
|
||||||
<resultMap type="com.ruoyi.xq.domain.UserInvite" id="UserInviteResult">
|
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.user.UserInviteAdminVo">
|
||||||
<result property="id" column="id"/>
|
select
|
||||||
<result property="userId" column="user_id"/>
|
t1.*,
|
||||||
<result property="usercode" column="usercode"/>
|
t2.nickname, t2.mobile, t2.avatar,
|
||||||
<result property="inviteId" column="invite_id"/>
|
t3.nickname as invite_nickname, t3.mobile as invite_mobile, t3.avatar as invite_avatar
|
||||||
<result property="inviteCode" column="invite_code"/>
|
from xq_user_invite t1
|
||||||
<result property="cashbackTotal" column="cashback_total"/>
|
left join xq_user t2 on t1.user_id = t2.id
|
||||||
<result property="createTime" column="create_time"/>
|
left join xq_user t3 on t1.invite_id = t3.id
|
||||||
<result property="updateTime" column="update_time"/>
|
<where>
|
||||||
</resultMap>
|
<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>
|
||||||
|
<if test="bo.inviteCode != null and bo.inviteCode != ''">
|
||||||
|
and t1.usercode = #{bo.inviteCode}
|
||||||
|
</if>
|
||||||
|
<if test="bo.inviteNickname != null and bo.inviteNickname != ''">
|
||||||
|
and t3.nickname like concat('%',#{bo.inviteNickname},'%')
|
||||||
|
</if>
|
||||||
|
<if test="bo.inviteMobile != null and bo.inviteMobile != ''">
|
||||||
|
and t3.mobile = #{bo.inviteMobile}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by t1.create_time
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user