Commit 6698bcad authored by licc's avatar licc

用户新增查询和扣减查询

parent 1651b26d
......@@ -16,7 +16,7 @@ import java.io.Serializable;
@ApiModel(description = "响应信息主体")
public class R<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("返回标记:成功标记=0,失败标记=-1")
@ApiModelProperty("返回标记:成功标记=0,失败标记1")
private int code;
@ApiModelProperty("返回信息")
private String message;
......@@ -65,7 +65,7 @@ public class R<T> implements Serializable {
* @return R
*/
public static <T> R<T> ok(String msg, T data) {
return new R<>(data,msg);
return new R<>(data, msg);
}
/**
......
......@@ -2,14 +2,27 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.CardInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
import java.util.List;
/**
* @author 86187
*/
public interface CardMapper extends BaseMapper<CardInfo> {
/**
* 添加充值卡子卡
* @param Card
*
* @param cardInfos
* @return
*/
int add(ArrayList<CardInfo> cardInfos);
int add(List<CardInfo> cardInfos);
/**
* 根据密码获取充值卡信息
*
* @param secretKey 密码
* @return 充值卡信息
*/
CardInfo getBySecretKey(@Param("secretKey") String secretKey);
}
......@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.Price;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -14,4 +15,6 @@ public interface PriceMapper extends BaseMapper<Price> {
List<Price> getList();
int count();
Price getByMoney(@Param("money") Integer money);
}
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.LoginRecord;
import cn.wisenergy.model.app.UserLimit;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author 86187
*/
public interface UserLimitMapper extends BaseMapper<UserLimit> {
UserLimit add(UserLimit userLimit);
int edit(UserLimit userLimit);
UserLimit getById(@Param("userId") Integer userId);
/**
* 获取查询次数信息
*
* @param userId 用户id
* @return 查询次数信息
*/
UserLimit getByUserId(@Param("userId") Integer userId);
}
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.UserLimitRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author 86187
*/
public interface UserLimitRecordMapper extends BaseMapper<UserLimitRecord> {
int add(UserLimitRecord userLimitRecord);
UserLimitRecord edit(UserLimitRecord userLimitRecord);
UserLimitRecord getByUserId(@Param("userId") Integer userId);
}
......@@ -25,21 +25,21 @@
</sql>
<sql id="cols_exclude_id">
banth_number,card_number,`limit`, secret_key,money,`status`,is_delete,create_time,update_time
batch_number,card_number,`limit`, secret_key,money,`status`,is_delete,create_time,update_time
</sql>
<sql id="createsVal">
#{i.banthNumber},#{i.cardNumber},#{i.limit},#{i.secretKey},#{i.money},#{i.status},
#{i.batchNumber},#{i.cardNumber},#{i.limit},#{i.secretKey},#{i.money},#{i.status},
#{i.isDelete},now(),now()
</sql>
<sql id="vals">
#{banthNumber},#{cardNumber},#{limit},#{secretKey},#{money},#{status},
#{batchNumber},#{cardNumber},#{limit},#{secretKey},#{money},#{status},
#{isDelete},now(),now()
</sql>
<sql id="updateCondition">
<if test="banthNumber != null">banth_number =#{banthNumber},</if>
<if test="batchNumber != null">batch_number =#{batchNumber},</if>
<if test="cardNumber != null">card_number =#{cardNumber},</if>
<if test="limit != null">`limit` =#{limit},</if>
<if test="secretKey != null">secret_key =#{secretKey},</if>
......@@ -50,15 +50,16 @@
</sql>
<sql id="criteria">
<if test="batchNumber != null"> and batch_number =#{batchNumber}</if>
<if test="id != null">id = #{id}</if>
<if test="batchNumber != null">and batch_number =#{batchNumber}</if>
<if test="cardNumber != null">and card_number =#{cardNumber},</if>
<if test="limit != null">and `limit` =#{limit}</if>
<if test="secretKey != null"> and secret_key =#{secretKey}</if>
<if test="secretKey != null">and secret_key =#{secretKey}</if>
<if test="money != null">and money =#{money}</if>
<if test="status != null">and `status` =#{status}</if>
<if test="isDelete != null">and is_delete = #{isDelete}</if>
<if test="createTime != null">and create_time &gt;= #{createTime}</if>
<if test="updateTime != null">and #{updateTime} &gt;= update_time</if>
<if test="createTime != null">and create_time >= #{createTime}</if>
<if test="updateTime != null">and #{updateTime} >= update_time</if>
</sql>
<insert id="add" parameterType="cn.wisenergy.model.app.CardInfo" keyProperty="id" useGeneratedKeys="true">
......@@ -67,8 +68,20 @@
(<include refid="cols_exclude_id"/>)
values
<foreach collection="list" item="i" index="index" separator=",">
(<include refid="createsVal"/>)
</foreach>
(<include refid="createsVal"/>)
</foreach>
</insert>
<select id="getBySecretKey" resultType="cn.wisenergy.model.app.CardInfo">
select
<include refid="cols_all"/>
from
<include refid="table"/>
<where>
secret_key=#{secretKey}
and status=0
and is_delete=0
</where>
</select>
</mapper>
......@@ -70,4 +70,13 @@
where is_delete=0
</select>
<select id="getByMoney" resultType="cn.wisenergy.model.app.Price">
select
<include refid="cols_all"/>
from
<include refid="table"/>
where is_delete=0
and money=#{money}
</select>
</mapper>
......@@ -67,7 +67,7 @@
</where>
</update>
<select id="getById" resultMap="userMap">
<select id="getByUserId" resultMap="userMap">
select <include refid="cols_all"/>
from <include refid="table"/>
<where>
......
<?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="cn.wisenergy.mapper.UserLimitRecordMapper">
<resultMap id="userMap" type="cn.wisenergy.model.app.UserLimitRecord">
<id column="id" property="id"/>
<result column="user_id" property="userId"/>
<result column="minus_limit" property="minusLimit"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<sql id="table">
user_limit
</sql>
<sql id="cols_all">
id,
<include refid="cols_exclude_id"/>
</sql>
<sql id="cols_exclude_id">
user_id,minus_limit, create_time,update_time
</sql>
<sql id="vals">
#{userId},#{minusLimit},now(),now()
</sql>
<sql id="updateCondition">
<if test="userId != null">user_id = #{userId},</if>
<if test="minusLimit != null">minus_limit =#{minusLimit},</if>
update_time =now()
</sql>
<sql id="criteria">
<if test="id != null">id = #{id}</if>
<if test="userId != null">and user_id = #{userId}</if>
<if test="minusLimit != null">and total_limit =#{minusLimit}</if>
<if test="createTime != null">and minus_limit &gt;= #{createTime}</if>
<if test="updateTime != null">and #{updateTime} &gt;= update_time</if>
</sql>
<insert id="add" parameterType="cn.wisenergy.model.app.UserLimitRecord" keyProperty="id" useGeneratedKeys="true">
insert into
<include refid="table"/>
(<include refid="cols_exclude_id"/>)
value(
<include refid="vals"/>
)
</insert>
<update id="edit" parameterType="cn.wisenergy.model.app.UserLimitRecord">
UPDATE
<include refid="table"/>
<set>
<include refid="updateCondition"/>
</set>
<where>
id = #{id}
</where>
</update>
<select id="getByUserId" resultMap="userMap">
select <include refid="cols_all"/>
from <include refid="table"/>
<where>
user_id=#{userId}
</where>
</select>
</mapper>
package cn.wisenergy.model.app;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -7,64 +8,71 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 充值卡实体类
*
* @author 86187
*/
@Data
@ApiModel(value = "CardInfo")
@TableName("card")
public class CardInfo implements Serializable {
private static final long serialVersionUID = 2732927512736158423L;
/**
* 子卡id
*/
@ApiModelProperty(value = "子卡id",name = "id")
@ApiModelProperty(value = "子卡id", name = "id")
private Integer id;
/**
* 批次号
*/
@ApiModelProperty(value = "批次号",name = "batchNumber")
private String banthNumber;
@ApiModelProperty(value = "批次号", name = "batchNumber")
private String batchNumber;
/**
* 批次号
*/
@ApiModelProperty(value = "批次号",name = "batchNumber")
@ApiModelProperty(value = "批次号", name = "batchNumber")
private String cardNumber;
/**
* 次数
*/
@ApiModelProperty(value = "次数",name = "limit")
@ApiModelProperty(value = "次数", name = "limit")
private Integer limit;
/**
* 秘钥
*/
@ApiModelProperty(value = "秘钥",name = "secretKey")
private String secretKey ;
@ApiModelProperty(value = "秘钥", name = "secretKey")
private String secretKey;
/**
* 卡的金额
*/
@ApiModelProperty(value = "卡的金额",name = "money")
private String money;
@ApiModelProperty(value = "卡的金额", name = "money")
private Integer money;
/**
* 状态
*/
@ApiModelProperty(value = "状态 0:未使用 1:已使用",name = "status")
@ApiModelProperty(value = "状态 0:未使用 1:已使用", name = "status")
private Integer status;
/**
* 是否删除
*/
@ApiModelProperty(name = "isDelete",value = "是否删除 0:正常 1:删除")
@ApiModelProperty(name = "isDelete", value = "是否删除 0:正常 1:删除")
private Integer isDelete;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间",name = "creteTime")
@ApiModelProperty(value = "创建时间", name = "creteTime")
private Date createTime;
/**
*更改时间
* 更改时间
*/
@ApiModelProperty(value = "更改时间",name = "updateTime")
@ApiModelProperty(value = "更改时间", name = "updateTime")
private Date updateTime;
}
......@@ -11,7 +11,8 @@ import java.util.Date;
*@ Description: 充值记录实体类
*@ Author : 86187
*@ Date : 2021/1/8 14:48
*/
* @author 86187
*/
@Data
@ApiModel(value = "PayRecord")
public class PayRecord implements Serializable {
......@@ -30,10 +31,10 @@ public class PayRecord implements Serializable {
private Integer type;
/**
* 充值卡编号
* 充值卡id
*/
@ApiModelProperty(value = "充值卡编号",name = "cardId")
private String cardId;
@ApiModelProperty(value = "充值卡id",name = "cardId")
private Integer cardId;
/**
* 充值用户id
......@@ -45,7 +46,7 @@ public class PayRecord implements Serializable {
* 充值所花金额
*/
@ApiModelProperty(value = "充值所花金额",name = "money")
private String money;
private Integer money;
/**
* 充值结果 0:成功 1:失败
......
package cn.wisenergy.model.app;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author 86187
* @ Description: 用户扣减查询次数记录实体类
* @ Author : 86187
* @ Date : 2021/1/27 14:49
*/
@Data
@ApiModel("UserLimitRecord")
@TableName("user_limit_record")
public class UserLimitRecord implements Serializable {
private static final long serialVersionUID = 6832626172862202016L;
/**
* 用户扣减查询次数记录id
*/
@ApiModelProperty(value = "用户扣减查询次数记录id",name="id")
private Integer id;
/**
* 用户id
*/
@ApiModelProperty(value = "用户扣减查询次数记录id",name="id")
private Integer userId;
/**
* 扣减次数
*/
@ApiModelProperty(value = "扣减次数",name="minusLimit")
private Integer minusLimit;
/**
* 扣减时间
*/
@ApiModelProperty(value = "扣减时间",name="createTime")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间",name="updateTime")
private Date updateTime;
}
package cn.wisenergy.model.enums;
/**
* 充值卡状态枚举
*
* @author 86187
*/
public enum CardStatus {
//未使用
NO_USE(1, "未使用"),
//已使用
ALREADY_USED(2, "已使用");
private Integer code;
private String desc;
CardStatus(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public String getDescription() {
return desc;
}
public Integer getCode() {
return code;
}
public static String getNameByCode(Integer code) {
if (null == code) {
return null;
}
for (SceneType type : SceneType.values()) {
if (type.getCode().intValue() == code.intValue()) {
return type.name();
}
}
return null;
}
}
package cn.wisenergy.model.enums;
/**
* 支付方式枚举类
*
* @author 86187
*/
public enum PayType {
//支付宝
ALI_PAY(1, "支付宝"),
//微信
WE_CHAT(2, "微信"),
//充值卡
REFILL_CARD(3, "充值卡");
private Integer code;
private String desc;
PayType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public String getDescription() {
return desc;
}
public Integer getCode() {
return code;
}
public static String getNameByCode(Integer code) {
if (null == code) {
return null;
}
for (SceneType type : SceneType.values()) {
if (type.getCode().intValue() == code.intValue()) {
return type.name();
}
}
return null;
}
}
package cn.wisenergy.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.Serializable;
/**
* @author 86187
* @ Description: 添加用户查询次数Vo
* @ Author : 86187
* @ Date : 2021/1/27 10:19
*/
@Data
@ApiModel(value = "AddLimitVo")
public class AddLimitVo implements Serializable {
private static final long serialVersionUID = -1402670785302226482L;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id", name = "userId")
private Integer userId;
/**
* 支付类型 1:支付宝 2:微信 3:充值卡
*/
@ApiModelProperty(value = "支付类型 1:支付宝 2:微信 3:充值卡", name = "payType")
private Integer payType;
/**
* 支付金额
*/
@ApiModelProperty(value = "支付金额", name = "payMoney")
private Integer payMoney;
/**
* 充值卡密码
*/
@ApiModelProperty(value = "充值卡密码", name = "password")
private String password;
}
......@@ -2,19 +2,37 @@ package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.UserLimit;
import cn.wisenergy.model.vo.AddLimitVo;
/**
*@ Description: 用户查询次数接口定义
*@ Author : 86187
*@ Date : 2021/1/14 9:33
* @author 86187
* @ Description: 用户查询次数接口定义
* @ Author : 86187
* @ Date : 2021/1/14 9:33
*/
public interface UserLimitService {
/**
* 获取用户查询次数信息
*
* @param userId 用户id
* @return 用户查询次数信息
*/
R<UserLimit> getByUserId(Integer userId);
/**
* 添加用户查询次数
*
* @param addLimitVo 参数
* @return true or false
*/
R<Boolean> addLimit(AddLimitVo addLimitVo);
/**
* 减少用户查询次数
*
* @param userId 用户id
* @return true or false
*/
R<Boolean> minusLimit(Integer userId);
}
......@@ -7,16 +7,16 @@ import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo;
/**
* @author 86187
* @ Description: 用户登录
* @ Author : 86187
* @ Date : 2021/1/7 14:20
* @author 86187
*/
public interface UserLoginService {
/**
* 用户注册接口
*
* @param userRegisterVo 用户信息
* @param userRegisterVo 用户信息
* @return true 成功 false 失败
*/
R<UserInfoVo> register(UserRegisterVo userRegisterVo);
......
package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.UserLimitMapper;
import cn.wisenergy.model.app.UserLimit;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.enums.CardStatus;
import cn.wisenergy.model.enums.PayType;
import cn.wisenergy.model.vo.AddLimitVo;
import cn.wisenergy.service.app.UserLimitService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author 86187
*/
@Service
@Slf4j
public class UserLimitServiceImpl extends ServiceImpl<UserLimitMapper, UserLimit> implements UserLimitService {
@Autowired
private PriceMapper priceMapper;
@Autowired
private UserLimitMapper userLimitMapper;
@Autowired
private PayRecordMapper payRecordMapper;
@Autowired
private CardMapper cardMapper;
@Autowired
private UserLimitRecordMapper userLimitRecordMapper;
@Override
public R<UserLimit> getByUserId(Integer userId) {
......@@ -28,4 +51,178 @@ public class UserLimitServiceImpl extends ServiceImpl<UserLimitMapper, UserLimit
return R.ok(userLimit);
}
@Override
public R<Boolean> addLimit(AddLimitVo addLimitVo) {
log.info("volunteer-service[]UserLimitServiceImpl[]addLimit[]input.param.addLimitVo:" + addLimitVo);
if (null == addLimitVo || null == addLimitVo.getUserId() || null == addLimitVo.getPayType()) {
return R.error("入参不能为空!");
}
Integer userId = addLimitVo.getUserId();
//1、充值卡
if (PayType.REFILL_CARD.getCode().equals(addLimitVo.getPayType())) {
if (StringUtils.isBlank(addLimitVo.getPassword())) {
return R.error("充值卡密码不能为空!");
}
//根据密码获取充值卡信息
CardInfo cardInfo = cardMapper.getBySecretKey(addLimitVo.getPassword());
if (null == cardInfo) {
return R.error("充值卡信息不存在!");
}
//获取用户查询次数信息
UserLimit userLimit = userLimitMapper.getByUserId(userId);
//增加用户可用查询次数
Integer usableNumber = userLimit.getUsableLimit() + cardInfo.getLimit();
//增加用户总查询次数
Integer total = userLimit.getTotalLimit() + cardInfo.getLimit();
userLimit.setUsableLimit(usableNumber);
userLimit.setTotalLimit(total);
//更新充值卡状态和用户查询次数及增加充值记录
boolean bool = updateLimitAndRecord(new Price(), cardInfo, userLimit, addLimitVo);
return R.ok(bool);
} else {
//2、微信或者支付宝
if (null == addLimitVo.getPayMoney()) {
return R.error("支付金额不能为空!");
}
//根据支付的金额,查询用户新增查询次数
Price price = priceMapper.getByMoney(addLimitVo.getPayMoney());
//获取用户查询次数信息
UserLimit userLimit = userLimitMapper.getByUserId(userId);
//增加用户可用查询次数
Integer usableNumber = userLimit.getUsableLimit() + price.getUseLimit();
//增加用户总查询次数
Integer total = userLimit.getTotalLimit() + price.getUseLimit();
userLimit.setUseLimit(usableNumber);
userLimit.setTotalLimit(total);
//更新充值卡状态和用户查询次数及增加充值记录
boolean bool = updateLimitAndRecord(price, new CardInfo(), userLimit, addLimitVo);
return R.ok(bool);
}
}
@Override
public R<Boolean> minusLimit(Integer userId) {
log.info("volunteer-service[]UserLimitServiceImpl[]minusLimit[]input.param.userId:" + userId);
if (null == userId) {
return R.error("入参不能为空!");
}
//获取用户查询次数信息
UserLimit userLimit = userLimitMapper.getByUserId(userId);
if (null == userLimit) {
return R.error("用户查询信息不存在!");
}
//扣减用户可用查询次数
int usableLimit = userLimit.getUsableLimit() - 1;
//增加用户已使次数
int useLimit = userLimit.getUseLimit() + 1;
userLimit.setUsableLimit(usableLimit);
userLimit.setUseLimit(useLimit);
//更新用户查询信息并保存扣减记录
boolean bool = updateLimitSaveRecord(userLimit);
return R.ok(bool);
}
/**
* 更新充值卡状态和用户查询次数及增加充值记录
*
* @param cardInfo 充值卡信息
* @param userLimit 用户查询次数信息
* @param addLimitVo 接口入参
*/
@Transactional(rollbackFor = Exception.class)
public Boolean updateLimitAndRecord(Price price, CardInfo cardInfo, UserLimit userLimit, AddLimitVo addLimitVo) {
//是充值卡
if (PayType.REFILL_CARD.getCode().equals(addLimitVo.getPayType())) {
//1、更新充值卡状态
cardInfo.setStatus(CardStatus.ALREADY_USED.getCode());
int count = cardMapper.updateById(cardInfo);
if (count == 0) {
return false;
}
//2、更新用户查询次数信息
int limit = userLimitMapper.edit(userLimit);
if (limit == 0) {
return false;
}
//3、保存充值记录
PayRecord payRecord = new PayRecord();
payRecord.setCardId(cardInfo.getId());
payRecord.setMoney(cardInfo.getMoney());
payRecord.setPayLimit(cardInfo.getLimit());
payRecord.setResult(0);
payRecord.setType(addLimitVo.getPayType());
payRecord.setUserId(addLimitVo.getUserId());
int pay = payRecordMapper.add(payRecord);
if (pay == 0) {
return false;
}
} else {
//1、更新用户查询次数信息
int limit = userLimitMapper.edit(userLimit);
if (limit == 0) {
return false;
}
//2、保存充值记录
PayRecord payRecord = new PayRecord();
payRecord.setCardId(null);
payRecord.setMoney(addLimitVo.getPayMoney());
payRecord.setPayLimit(price.getUseLimit());
payRecord.setResult(0);
payRecord.setType(addLimitVo.getPayType());
payRecord.setUserId(addLimitVo.getUserId());
int pay = payRecordMapper.add(payRecord);
if (pay == 0) {
return false;
}
}
return true;
}
/**
* 更新用户查询信息并保存扣减记录
*
* @param userLimit 查询信息
* @return true or false
*/
public boolean updateLimitSaveRecord(UserLimit userLimit) {
//1、更新查询信息
int count = userLimitMapper.edit(userLimit);
if (count == 0) {
return false;
}
//2、保存扣减记录
UserLimitRecord userLimitRecord = new UserLimitRecord();
userLimitRecord.setMinusLimit(1);
userLimitRecord.setUserId(userLimit.getUserId());
int record = userLimitRecordMapper.add(userLimitRecord);
if (record == 0) {
return false;
}
return true;
}
}
......@@ -59,7 +59,14 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
return R.error("该电话号码" + phone + "已被使用!");
}
//2、给密码加密 加密规则,电话号码+明文密码
//2、判断验证码是否正确
R<Boolean> result = sendSmsSerVice.valid(userVo.getPhone(), userVo.getSmCode(),
userVo.getScene(), userVo.getSource());
if (null != result && result.getCode() == ERROR_CODE) {
return R.error(result.getMessage());
}
//3、给密码加密 加密规则,电话号码+明文密码
String secret = Md5Util.digestMD5(password + phone);
//3、添加用户信息
......
......@@ -20,6 +20,7 @@ import java.util.List;
* @ Description: PC-用户查询次数
* @ Author : 86187
* @ Date : 2021/1/14 10:50
* @author 86187
*/
@RestController
@Api(tags = "PC-用户查询次数")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment