Althars123 3 年之前
父节点
当前提交
6f4cf8e6c9

+ 72 - 0
jkt-admin/src/main/java/com/miaxis/app/controller/vip/AppVipCodeController.java

@@ -0,0 +1,72 @@
+package com.miaxis.app.controller.vip;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.miaxis.common.annotation.Log;
+import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.domain.entity.UserInfo;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.common.enums.BusinessTypeEnum;
+import com.miaxis.common.exception.CustomException;
+import com.miaxis.common.utils.SecurityUtils;
+import com.miaxis.common.utils.poi.ExcelUtil;
+import com.miaxis.vip.domain.VipCode;
+import com.miaxis.vip.service.IVipCodeService;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * 【激活码】Controller
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+@RestController
+@RequestMapping(Constants.STUDENT_PREFIX+"/vip/code")
+@Api(tags={"【小程序-激活码】"})
+public class AppVipCodeController extends BaseController{
+    @Autowired
+    private IVipCodeService vipCodeService;
+
+//    @Autowired
+//    private IUser vipCodeService;
+
+    @PreAuthorize("@ss.hasPermi('vip:code:edit')")
+    @Log(title = "激活码", businessType = BusinessTypeEnum.UPDATE)
+    @PutMapping
+    @ApiOperation("用户激活码激活")
+    public Response<Integer> edit(@ApiParam(name = "id", value = "激活码", required = true)
+                                  String vipCode){
+        QueryWrapper<VipCode> queryWrapper = new QueryWrapper<VipCode>();
+        queryWrapper.eq("vip_code", vipCode);
+        VipCode vipCodeEntity = vipCodeService.getOne(queryWrapper);
+        if (vipCodeEntity == null){
+            throw new CustomException("该激活码不存在");
+        }
+        if (vipCodeEntity.getStatus() == 1){
+            throw new CustomException("该激活码已被激活");
+        }
+        if (vipCodeEntity.getStatus() == 2){
+            throw new CustomException("该激活码已作废");
+        }
+
+        UserInfo student = SecurityUtils.getLoginUser().getStudent();
+
+        vipCodeEntity.setStatus(1);
+        vipCodeEntity.setActivationUserId(student.getId());
+        vipCodeEntity.setActivationTime(new Date());
+        vipCodeService.updateById(vipCodeEntity);
+        return Response.success();
+    }
+
+
+
+}

+ 148 - 0
jkt-admin/src/main/java/com/miaxis/pc/controller/vip/VipCodeController.java

@@ -0,0 +1,148 @@
+package com.miaxis.pc.controller.vip;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.miaxis.common.constant.Constants;
+import java.util.List;
+import java.util.Arrays;
+import java.util.Random;
+
+import io.swagger.annotations.*;
+import com.miaxis.common.core.domain.Response;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import com.miaxis.common.annotation.Log;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.enums.BusinessTypeEnum;
+import com.miaxis.vip.domain.VipCode;
+import com.miaxis.vip.service.IVipCodeService;
+import com.miaxis.common.utils.poi.ExcelUtil;
+import com.miaxis.common.core.page.ResponsePageInfo;
+
+/**
+ * 【激活码】Controller
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+@RestController
+@RequestMapping("/vip/code")
+@Api(tags={"【小程序-激活码】"})
+public class VipCodeController extends BaseController{
+    @Autowired
+    private IVipCodeService vipCodeService;
+
+    /**
+     * 查询激活码列表
+     */
+    @PreAuthorize("@ss.hasPermi('vip:code:list')")
+    @GetMapping("/list")
+    @ApiOperation("查询激活码列表")
+        @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<VipCode> list(@ModelAttribute VipCode vipCode){
+        startPage();
+        List<VipCode> list = vipCodeService.selectVipCodeList(vipCode);
+        return toResponsePageInfo(list);
+    }
+
+    /**
+     * 导出激活码列表
+     */
+    @PreAuthorize("@ss.hasPermi('vip:code:export')")
+    @Log(title = "激活码", businessType = BusinessTypeEnum.EXPORT)
+    @GetMapping("/export")
+    @ApiOperation("导出激活码列表Excel")
+    public Response<String> export(@ModelAttribute VipCode vipCode){
+        List<VipCode> list = vipCodeService.selectVipCodeList(vipCode);
+        ExcelUtil<VipCode> util = new ExcelUtil<VipCode>(VipCode.class);
+        return util.exportExcel(list, "code");
+    }
+
+    /**
+     * 获取激活码详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('vip:code:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation("获取激活码详细信息")
+    public Response<VipCode> getInfo(
+            @ApiParam(name = "id", value = "激活码参数", required = true)
+            @PathVariable("id") Long id
+    ){
+        return Response.success(vipCodeService.getById(id));
+    }
+
+    /**
+     * 新增激活码
+     */
+    @PreAuthorize("@ss.hasPermi('vip:code:add')")
+    @Log(title = "激活码", businessType = BusinessTypeEnum.INSERT)
+    @PostMapping
+    @ApiOperation("新增激活码")
+    public Response<String> add(){
+        VipCode vipCode = new VipCode();
+        String rVipCode = null ;
+        do {
+            rVipCode  = randomVipcode();
+        }while (isRepeat(rVipCode));
+        vipCode.setVipCode(rVipCode);
+        vipCodeService.save(vipCode);
+        return Response.success(rVipCode);
+    }
+
+    private boolean isRepeat(String rVipCode) {
+        QueryWrapper<VipCode> wrapper = new QueryWrapper<VipCode>();
+        wrapper.eq("vip_code",rVipCode);
+        VipCode one = vipCodeService.getOne(wrapper);
+        return one!= null;
+
+    }
+
+    private String randomVipcode() {
+        String result = "";
+        Random random = new Random();
+        for(int i =0 ;i <11 ;i ++){
+            result+=random.nextInt(10);
+        }
+        return  result;
+
+
+    }
+
+    /**
+     * 修改激活码
+     */
+    @PreAuthorize("@ss.hasPermi('vip:code:edit')")
+    @Log(title = "激活码", businessType = BusinessTypeEnum.UPDATE)
+    @PutMapping
+    @ApiOperation("修改激活码")
+    public Response<Integer> edit(@RequestBody VipCode vipCode){
+        return toResponse(vipCodeService.updateById(vipCode) ? 1 : 0);
+    }
+
+    /**
+     * 删除激活码
+     */
+    @PreAuthorize("@ss.hasPermi('vip:code:remove')")
+    @Log(title = "激活码", businessType = BusinessTypeEnum.DELETE)
+	@DeleteMapping("/{ids}")
+    @ApiOperation("删除激活码")
+    public  Response<Integer> remove(
+            @ApiParam(name = "ids", value = "激活码ids参数", required = true)
+            @PathVariable Long[] ids
+    ){
+        return toResponse(vipCodeService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    }
+
+
+}

+ 107 - 0
jkt-service/src/main/java/com/miaxis/vip/domain/VipCode.java

@@ -0,0 +1,107 @@
+package com.miaxis.vip.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.miaxis.common.annotation.Excel;
+import com.miaxis.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import lombok.Data;
+/**
+ * 激活码对象 vip_code
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+@Data
+@TableName("vip_code")
+@ApiModel(value = "VipCode", description = "激活码对象 vip_code")
+public class VipCode extends BaseBusinessEntity{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    /** 激活码 */
+    @Excel(name = "激活码")
+    @TableField("vip_code")
+    @ApiModelProperty(value = "激活码")
+    private String vipCode;
+
+    /** 激活状态 0-未激活 1-已激活 2-已作废 */
+    @Excel(name = "激活状态 0-未激活 1-已激活 2-已作废")
+    @TableField("status")
+    @ApiModelProperty(value = "激活状态 0-未激活 1-已激活 2-已作废")
+    private Integer status;
+
+    /** 激活时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("activation_time")
+    @ApiModelProperty(value = "激活时间")
+    private Date activationTime;
+
+    /** 激活用户id */
+    @Excel(name = "激活用户id")
+    @TableField("activation_user_id")
+    @ApiModelProperty(value = "激活用户id")
+    private Long activationUserId;
+
+    public void setId(Long id){
+        this.id = id;
+    }
+
+    public Long getId(){
+        return id;
+    }
+    public void setVipCode(String vipCode){
+        this.vipCode = vipCode;
+    }
+
+    public String getVipCode(){
+        return vipCode;
+    }
+    public void setStatus(Integer status){
+        this.status = status;
+    }
+
+    public Integer getStatus(){
+        return status;
+    }
+    public void setActivationTime(Date activationTime){
+        this.activationTime = activationTime;
+    }
+
+    public Date getActivationTime(){
+        return activationTime;
+    }
+    public void setActivationUserId(Long activationUserId){
+        this.activationUserId = activationUserId;
+    }
+
+    public Long getActivationUserId(){
+        return activationUserId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("vipCode", getVipCode())
+            .append("createTime", getCreateTime())
+            .append("updateTime", getUpdateTime())
+            .append("status", getStatus())
+            .append("activationTime", getActivationTime())
+            .append("activationUserId", getActivationUserId())
+            .toString();
+    }
+}

+ 22 - 0
jkt-service/src/main/java/com/miaxis/vip/mapper/VipCodeMapper.java

@@ -0,0 +1,22 @@
+package com.miaxis.vip.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.vip.domain.VipCode;
+
+/**
+ * 激活码Mapper接口
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+public interface VipCodeMapper extends BaseMapper<VipCode> {
+    /**
+     * 查询激活码列表
+     *
+     * @param vipCode 激活码
+     * @return 激活码集合
+     */
+    public List<VipCode> selectVipCodeList(VipCode vipCode);
+
+}

+ 21 - 0
jkt-service/src/main/java/com/miaxis/vip/service/IVipCodeService.java

@@ -0,0 +1,21 @@
+package com.miaxis.vip.service;
+
+import java.util.List;
+import com.miaxis.vip.domain.VipCode;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 激活码Service接口
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+public interface IVipCodeService extends IService<VipCode>{
+    /**
+     * 查询激活码列表
+     *
+     * @param vipCode 激活码
+     * @return 激活码集合
+     */
+    public List<VipCode> selectVipCodeList(VipCode vipCode);
+}

+ 36 - 0
jkt-service/src/main/java/com/miaxis/vip/service/impl/VipCodeServiceImpl.java

@@ -0,0 +1,36 @@
+package com.miaxis.vip.service.impl;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.miaxis.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang3.StringUtils;
+import com.miaxis.vip.mapper.VipCodeMapper;
+import com.miaxis.vip.domain.VipCode;
+import com.miaxis.vip.service.IVipCodeService;
+
+/**
+ * 激活码Service业务层处理
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+@Service
+public class VipCodeServiceImpl extends ServiceImpl<VipCodeMapper, VipCode> implements IVipCodeService {
+    @Autowired
+    private VipCodeMapper vipCodeMapper;
+
+    /**
+     * 查询激活码列表
+     *
+     * @param vipCode 激活码
+     * @return 激活码
+     */
+    @Override
+    public List<VipCode> selectVipCodeList(VipCode vipCode){
+        return vipCodeMapper.selectVipCodeList(vipCode);
+    }
+}

+ 31 - 0
jkt-service/src/main/resources/mapper/vip/VipCodeMapper.xml

@@ -0,0 +1,31 @@
+<?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.miaxis.vip.mapper.VipCodeMapper">
+
+    <resultMap type="VipCode" id="VipCodeResult">
+        <result property="id"    column="id"    />
+        <result property="vipCode"    column="vip_code"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="status"    column="status"    />
+        <result property="activationTime"    column="activation_time"    />
+        <result property="activationUserId"    column="activation_user_id"    />
+    </resultMap>
+
+    <sql id="selectVipCodeVo">
+        select * from vip_code
+    </sql>
+
+    <select id="selectVipCodeList" parameterType="VipCode" resultMap="VipCodeResult">
+        <include refid="selectVipCodeVo"/>
+        <where>
+            <if test="vipCode != null  and vipCode != ''"> and vip_code = #{vipCode}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="activationTime != null "> and activation_time = #{activationTime}</if>
+            <if test="activationUserId != null "> and activation_user_id = #{activationUserId}</if>
+        </where>
+    </select>
+
+</mapper>