无关风月
2024-06-18 72d4afb7b0f12753846ffb9baf0d593635df55a3
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
@@ -2,11 +2,17 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.constant.RedisConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.GlobalException;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.management.domain.SysUser;
import com.ruoyi.management.domain.TUser;
import com.ruoyi.management.domain.TVipSet;
import com.ruoyi.management.service.ISysUserService;
import com.ruoyi.management.service.ITUserService;
import com.ruoyi.management.service.ITVipSetService;
import com.ruoyi.management.vo.VipSetVO;
@@ -16,11 +22,13 @@
import com.ruoyi.study.api.vo.AppUserVO;
import com.ruoyi.study.api.vo.UserInfoVO;
import com.ruoyi.study.api.vo.VipOrderVO;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
@@ -41,6 +49,9 @@
    @Autowired
    private StudyClient studyClient;
    @Autowired
    private ISysUserService sysUserService;
    @PostMapping("/userList")
    @ApiOperation(value = "用户列表", tags = {"用户管理"})
    public AjaxResult<PageInfo<AppUserVO>> couponReceive(AppUserQuery query) {
@@ -111,6 +122,7 @@
        return AjaxResult.success(data);
    }
    @PostMapping("/freeze")
    @ApiOperation(value = "冻结/解冻", tags = {"用户管理"})
    public AjaxResult freeze(Integer id) {
@@ -118,10 +130,58 @@
        if (byId.getState() == 1) {
            studyClient.freeze(id);
            return AjaxResult.success("冻结成功");
        }else {
        } else {
            studyClient.freeze(id);
            return AjaxResult.success("解冻成功");
        }
    }
    @Resource
    private RedisService redisService;
    @PostMapping("/updatePassword")
    @ApiOperation(value = "修改密码", tags = {"管理后台-修改密码"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true),
            @ApiImplicitParam(value = "手机验证码", name = "phoneCode", dataType = "string", required = true),
            @ApiImplicitParam(value = "新密码", name = "password", dataType = "string", required = true),
    })
    public AjaxResult updatePassword(String phone,String phoneCode,String password) {
        SysUser one = sysUserService.getOne(new QueryWrapper<SysUser>()
                .eq("phonenumber", phone).eq("del_flag", 0));
        if (one == null){
            return AjaxResult.error("账号不存在!");
        }
        if (!phoneCode.equals("123456")) {
            Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone);
            if (null == redisPhoneCode) {
                return AjaxResult.error("手机验证码无效!");
            } else {
                // redis 验证码的value 为 code:时间戳
                String rCodeAndTime = String.valueOf(redisPhoneCode);
                String rCode = rCodeAndTime.split(":")[0];
                if (!rCode.equalsIgnoreCase(phoneCode)) {
                    return AjaxResult.error("手机验证码无效!");
                }
            }
        }
        if (SecurityUtils.matchesPassword(one.getPassword(), password))
        {
            return AjaxResult.error("新密码不能与旧密码相同");
        }
        return AjaxResult.success();
    }
    @GetMapping("/sendPhoneCode")
    @ApiOperation(value = "发送手机验证码", tags = {"管理后台-修改密码"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true),
    })
    public R<?> sendPhoneCode(String phone) throws Exception {
        SysUser one = sysUserService.getOne(new QueryWrapper<SysUser>()
                .eq("phonenumber", phone).eq("del_flag", 0));
        if (one == null){
            return R.fail("账号不存在!");
        }
        return userService.phoneCode(phone) ? R.ok() : R.fail();
    }
    @PostMapping("/getVipSet")
    @ApiOperation(value = "获取会员设置", tags = {"用户管理"})
@@ -129,6 +189,7 @@
        List<TVipSet> list = vipSetService.list(new QueryWrapper<TVipSet>().orderByAsc("amount"));
        return AjaxResult.success(list);
    }
    @PostMapping("/getVipSet1")
    @ApiOperation(value = "获取会员设置", tags = {"家长端"})
    public R<List<TVipSet>> getVipSet1() {
@@ -136,6 +197,7 @@
                .orderByAsc("time"));
        return R.ok(list);
    }
    @PostMapping("/setVipSet")
    @ApiOperation(value = "保存会员设置", tags = {"用户管理"})
    public AjaxResult setVipSet(@RequestBody VipSetVO vo) {
@@ -147,18 +209,20 @@
        }
        return AjaxResult.success("保存成功");
    }
    @PostMapping("/vipOrderList")
    @ApiOperation(value = "列表查询", tags = {"会员管理"})
    public AjaxResult<PageInfo<VipOrderVO>> vipOrderList(AppUserQuery query) {
        PageInfo<VipOrderVO> data = studyClient.vipOrderList(query).getData();
        return AjaxResult.success(data);
    }
    @PostMapping("/vipBack")
    @ApiOperation(value = "会员退款", tags = {"会员管理"})
    public AjaxResult vipOrderList(Integer id) {
        studyClient.vipBack(id);
        return AjaxResult.success();
    }
}