lisy
2023-07-07 39c50b28a9a9783ec3e25ee773b9112c94ede442
course:使用福利-账号退出和注销
4个文件已修改
8个文件已添加
295 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SysLogClient.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/SysLoginLog.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/SysLogClient.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/SysLoginLogMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/SysLoginLogService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SysLoginLogServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/SysLoginLogMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -2,6 +2,7 @@
import com.dsh.account.entity.TAppUser;
import com.dsh.account.feignclient.other.SysLogClient;
import com.dsh.account.model.vo.userBenefitDetail.AppUserDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo;
@@ -16,6 +17,10 @@
import java.text.SimpleDateFormat;
/**
 * 使用福利 控制器
 */
@RestController
@RequestMapping("")
public class UseBenefitsController {
@@ -26,6 +31,9 @@
    @Autowired
    private TokenUtil tokenUtil;
    @Autowired
    private SysLogClient slClient;
    private final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
@@ -78,6 +86,58 @@
        }
    }
    @ResponseBody
    @PostMapping("/api/useBenefit/cancellation")
    @ApiOperation(value = "个人信息-注销账号", tags = {"APP-使用福利"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil cancellationAccount(){
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
                return ResultUtil.tokenErr();
            }
//            变更账号的状态为删除
            tauService.cancellation(appUserId);
//            增加一条注销账号的日志
            slClient.cancellation(appUserId);
//            删除redis中用户key
            tokenUtil.logout();
            return ResultUtil.success();
        }catch (Exception e){
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/api/useBenefit/logOut")
    @ApiOperation(value = "个人信息-退出登录", tags = {"APP-使用福利"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil logOutAccount(){
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
                return ResultUtil.tokenErr();
            }
            //            增加一条退出账号的日志
            slClient.logOut(appUserId);
            //            删除redis中用户key
            tokenUtil.logout();
            return ResultUtil.success();
        }catch (Exception e){
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/api/useBenefit/userBilling")
    @ApiOperation(value = "账单", tags = {"APP-使用福利"})
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SysLogClient.java
New file
@@ -0,0 +1,16 @@
package com.dsh.account.feignclient.other;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = "mb-cloud-other")
public interface SysLogClient {
    @PostMapping("/appUser/logOut")
    void logOut(@RequestBody Integer appUserId);
    @PostMapping("/appUser/cancellation")
    void cancellation(@RequestBody Integer appUserId);
}
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -109,4 +109,10 @@
     */
    BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId);
    /**
     * 注销账号
     * @param appUserId
     */
    void cancellation(Integer appUserId);
}
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -8,7 +8,6 @@
import com.dsh.account.feignclient.activity.MerChandiseClient;
import com.dsh.account.feignclient.course.CoursePaymentClient;
import com.dsh.account.feignclient.course.model.CourseOfStoreVo;
import com.dsh.account.feignclient.course.model.PurchaseVo;
import com.dsh.account.feignclient.course.model.QueryStoreList;
import com.dsh.account.feignclient.course.model.StuCourseResp;
import com.dsh.account.feignclient.other.ImgConfigClient;
@@ -26,7 +25,6 @@
import com.dsh.account.model.vo.classDetails.RegisteredCourse;
import com.dsh.account.model.vo.classDetails.WeekedCourse;
import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo;
import com.dsh.account.model.vo.classDetails.classInsVo.RegisterCourseVo;
import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo;
import com.dsh.account.service.TAppUserService;
@@ -483,4 +481,13 @@
        return null;
    }
    @Override
    public void cancellation(Integer appUserId) {
        TAppUser tAppUser = this.baseMapper.selectById(appUserId);
        if (null != tAppUser){
            tAppUser.setState(3);
            this.baseMapper.updateById(tAppUser);
        }
    }
}
cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java
@@ -33,4 +33,22 @@
            return null;
        }
    }
    public void logout() {
        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = servletRequestAttributes.getRequest();
        String requestHeader = request.getHeader("Authorization");
        if (requestHeader != null && requestHeader.startsWith("Bearer ")) {
            requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1);
            String key = null;
            int length = requestHeader.length();
            if (length > 32) {
                key = requestHeader.substring(length - 32);
            } else {
                key = requestHeader;
            }
            redisUtil.remove(key); // 删除存储在Redis中的对应用户信息
        }
    }
}
cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java
New file
@@ -0,0 +1,44 @@
package com.dsh.other.controller;
import com.dsh.other.entity.SysLoginLog;
import com.dsh.other.service.SysLoginLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
@RestController
@RequestMapping("")
public class UserLoginLogController {
    @Autowired
    private SysLoginLogService ssllService;
    @PostMapping("/appUser/logOut")
    public void logOut(@RequestBody Integer appUserId){
        SysLoginLog sysLoginLog = new SysLoginLog();
        sysLoginLog.setCreatetime(new Date());
        sysLoginLog.setUserid(appUserId);
        sysLoginLog.setSucceed("执行成功");
        sysLoginLog.setMessage("退出成功");
        sysLoginLog.setLogname("APP用户退出账号");
        ssllService.save(sysLoginLog);
    }
    @PostMapping("/appUser/cancellation")
    public void cancellation(@RequestBody Integer appUserId){
        SysLoginLog sysLoginLog = new SysLoginLog();
        sysLoginLog.setCreatetime(new Date());
        sysLoginLog.setUserid(appUserId);
        sysLoginLog.setSucceed("执行成功");
        sysLoginLog.setMessage("注销成功");
        sysLoginLog.setLogname("APP用户注销账号");
        ssllService.save(sysLoginLog);
    }
}
cloud-server-other/src/main/java/com/dsh/other/entity/SysLoginLog.java
New file
@@ -0,0 +1,66 @@
package com.dsh.other.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 * 登录记录
 * </p>
 *
 * @author jqs
 * @since 2023-07-07
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_login_log")
public class SysLoginLog extends Model<SysLoginLog> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 日志名称
     */
    private String logname;
    /**
     * 管理员id
     */
    private Integer userid;
    /**
     * 创建时间
     */
    private Date createtime;
    /**
     * 是否执行成功
     */
    private String succeed;
    /**
     * 具体消息
     */
    private String message;
    /**
     * 登录ip
     */
    private String ip;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
cloud-server-other/src/main/java/com/dsh/other/feignclient/SysLogClient.java
New file
@@ -0,0 +1,16 @@
package com.dsh.other.feignclient;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = "mb-cloud-other")
public interface SysLogClient {
    @PostMapping("/appUser/logOut")
    void logOut(@RequestBody Integer appUserId);
    @PostMapping("/appUser/cancellation")
    void cancellation(@RequestBody Integer appUserId);
}
cloud-server-other/src/main/java/com/dsh/other/mapper/SysLoginLogMapper.java
New file
@@ -0,0 +1,16 @@
package com.dsh.other.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.other.entity.SysLoginLog;
/**
 * <p>
 * 登录记录 Mapper 接口
 * </p>
 *
 * @author jqs
 * @since 2023-07-07
 */
public interface SysLoginLogMapper extends BaseMapper<SysLoginLog> {
}
cloud-server-other/src/main/java/com/dsh/other/service/SysLoginLogService.java
New file
@@ -0,0 +1,16 @@
package com.dsh.other.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.other.entity.SysLoginLog;
/**
 * <p>
 * 登录记录 服务类
 * </p>
 *
 * @author jqs
 * @since 2023-07-07
 */
public interface SysLoginLogService extends IService<SysLoginLog> {
}
cloud-server-other/src/main/java/com/dsh/other/service/impl/SysLoginLogServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.dsh.other.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.other.entity.SysLoginLog;
import com.dsh.other.mapper.SysLoginLogMapper;
import com.dsh.other.service.SysLoginLogService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 登录记录 服务实现类
 * </p>
 *
 * @author jqs
 * @since 2023-07-07
 */
@Service
public class SysLoginLogServiceImpl extends ServiceImpl<SysLoginLogMapper, SysLoginLog> implements SysLoginLogService {
}
cloud-server-other/src/main/resources/mapper/SysLoginLogMapper.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsh.other.mapper.SysLoginLogMapper">
</mapper>