Commit 6698bcad authored by licc's avatar licc

用户新增查询和扣减查询

parent 1651b26d
...@@ -16,7 +16,7 @@ import java.io.Serializable; ...@@ -16,7 +16,7 @@ import java.io.Serializable;
@ApiModel(description = "响应信息主体") @ApiModel(description = "响应信息主体")
public class R<T> implements Serializable { public class R<T> implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("返回标记:成功标记=0,失败标记=-1") @ApiModelProperty("返回标记:成功标记=0,失败标记1")
private int code; private int code;
@ApiModelProperty("返回信息") @ApiModelProperty("返回信息")
private String message; private String message;
...@@ -65,7 +65,7 @@ public class R<T> implements Serializable { ...@@ -65,7 +65,7 @@ public class R<T> implements Serializable {
* @return R * @return R
*/ */
public static <T> R<T> ok(String msg, T data) { 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; ...@@ -2,14 +2,27 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.CardInfo; import cn.wisenergy.model.app.CardInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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> { public interface CardMapper extends BaseMapper<CardInfo> {
/** /**
* 添加充值卡子卡 * 添加充值卡子卡
* @param Card *
* @param cardInfos
* @return * @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; ...@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.Price; import cn.wisenergy.model.app.Price;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -14,4 +15,6 @@ public interface PriceMapper extends BaseMapper<Price> { ...@@ -14,4 +15,6 @@ public interface PriceMapper extends BaseMapper<Price> {
List<Price> getList(); List<Price> getList();
int count(); int count();
Price getByMoney(@Param("money") Integer money);
} }
package cn.wisenergy.mapper; package cn.wisenergy.mapper;
import cn.wisenergy.model.app.LoginRecord;
import cn.wisenergy.model.app.UserLimit; import cn.wisenergy.model.app.UserLimit;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/**
* @author 86187
*/
public interface UserLimitMapper extends BaseMapper<UserLimit> { public interface UserLimitMapper extends BaseMapper<UserLimit> {
UserLimit add(UserLimit userLimit); UserLimit add(UserLimit userLimit);
int edit(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 @@ ...@@ -25,21 +25,21 @@
</sql> </sql>
<sql id="cols_exclude_id"> <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>
<sql id="createsVal"> <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() #{i.isDelete},now(),now()
</sql> </sql>
<sql id="vals"> <sql id="vals">
#{banthNumber},#{cardNumber},#{limit},#{secretKey},#{money},#{status}, #{batchNumber},#{cardNumber},#{limit},#{secretKey},#{money},#{status},
#{isDelete},now(),now() #{isDelete},now(),now()
</sql> </sql>
<sql id="updateCondition"> <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="cardNumber != null">card_number =#{cardNumber},</if>
<if test="limit != null">`limit` =#{limit},</if> <if test="limit != null">`limit` =#{limit},</if>
<if test="secretKey != null">secret_key =#{secretKey},</if> <if test="secretKey != null">secret_key =#{secretKey},</if>
...@@ -50,15 +50,16 @@ ...@@ -50,15 +50,16 @@
</sql> </sql>
<sql id="criteria"> <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="cardNumber != null">and card_number =#{cardNumber},</if>
<if test="limit != null">and `limit` =#{limit}</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="money != null">and money =#{money}</if>
<if test="status != null">and `status` =#{status}</if> <if test="status != null">and `status` =#{status}</if>
<if test="isDelete != null">and is_delete = #{isDelete}</if> <if test="isDelete != null">and is_delete = #{isDelete}</if>
<if test="createTime != null">and create_time &gt;= #{createTime}</if> <if test="createTime != null">and create_time >= #{createTime}</if>
<if test="updateTime != null">and #{updateTime} &gt;= update_time</if> <if test="updateTime != null">and #{updateTime} >= update_time</if>
</sql> </sql>
<insert id="add" parameterType="cn.wisenergy.model.app.CardInfo" keyProperty="id" useGeneratedKeys="true"> <insert id="add" parameterType="cn.wisenergy.model.app.CardInfo" keyProperty="id" useGeneratedKeys="true">
...@@ -71,4 +72,16 @@ ...@@ -71,4 +72,16 @@
</foreach> </foreach>
</insert> </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> </mapper>
...@@ -70,4 +70,13 @@ ...@@ -70,4 +70,13 @@
where is_delete=0 where is_delete=0
</select> </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> </mapper>
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
</where> </where>
</update> </update>
<select id="getById" resultMap="userMap"> <select id="getByUserId" resultMap="userMap">
select <include refid="cols_all"/> select <include refid="cols_all"/>
from <include refid="table"/> from <include refid="table"/>
<where> <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; package cn.wisenergy.model.app;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -7,64 +8,71 @@ import lombok.Data; ...@@ -7,64 +8,71 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
/**
* 充值卡实体类
*
* @author 86187
*/
@Data @Data
@ApiModel(value = "CardInfo") @ApiModel(value = "CardInfo")
@TableName("card")
public class CardInfo implements Serializable { public class CardInfo implements Serializable {
private static final long serialVersionUID = 2732927512736158423L;
/** /**
* 子卡id * 子卡id
*/ */
@ApiModelProperty(value = "子卡id",name = "id") @ApiModelProperty(value = "子卡id", name = "id")
private Integer id; private Integer id;
/** /**
* 批次号 * 批次号
*/ */
@ApiModelProperty(value = "批次号",name = "batchNumber") @ApiModelProperty(value = "批次号", name = "batchNumber")
private String banthNumber; private String batchNumber;
/** /**
* 批次号 * 批次号
*/ */
@ApiModelProperty(value = "批次号",name = "batchNumber") @ApiModelProperty(value = "批次号", name = "batchNumber")
private String cardNumber; private String cardNumber;
/** /**
* 次数 * 次数
*/ */
@ApiModelProperty(value = "次数",name = "limit") @ApiModelProperty(value = "次数", name = "limit")
private Integer limit; private Integer limit;
/** /**
* 秘钥 * 秘钥
*/ */
@ApiModelProperty(value = "秘钥",name = "secretKey") @ApiModelProperty(value = "秘钥", name = "secretKey")
private String secretKey ; private String secretKey;
/** /**
* 卡的金额 * 卡的金额
*/ */
@ApiModelProperty(value = "卡的金额",name = "money") @ApiModelProperty(value = "卡的金额", name = "money")
private String money; private Integer money;
/** /**
* 状态 * 状态
*/ */
@ApiModelProperty(value = "状态 0:未使用 1:已使用",name = "status") @ApiModelProperty(value = "状态 0:未使用 1:已使用", name = "status")
private Integer status; private Integer status;
/** /**
* 是否删除 * 是否删除
*/ */
@ApiModelProperty(name = "isDelete",value = "是否删除 0:正常 1:删除") @ApiModelProperty(name = "isDelete", value = "是否删除 0:正常 1:删除")
private Integer isDelete; private Integer isDelete;
/** /**
* 创建时间 * 创建时间
*/ */
@ApiModelProperty(value = "创建时间",name = "creteTime") @ApiModelProperty(value = "创建时间", name = "creteTime")
private Date createTime; private Date createTime;
/** /**
*更改时间 * 更改时间
*/ */
@ApiModelProperty(value = "更改时间",name = "updateTime") @ApiModelProperty(value = "更改时间", name = "updateTime")
private Date updateTime; private Date updateTime;
} }
...@@ -11,7 +11,8 @@ import java.util.Date; ...@@ -11,7 +11,8 @@ import java.util.Date;
*@ Description: 充值记录实体类 *@ Description: 充值记录实体类
*@ Author : 86187 *@ Author : 86187
*@ Date : 2021/1/8 14:48 *@ Date : 2021/1/8 14:48
*/ * @author 86187
*/
@Data @Data
@ApiModel(value = "PayRecord") @ApiModel(value = "PayRecord")
public class PayRecord implements Serializable { public class PayRecord implements Serializable {
...@@ -30,10 +31,10 @@ public class PayRecord implements Serializable { ...@@ -30,10 +31,10 @@ public class PayRecord implements Serializable {
private Integer type; private Integer type;
/** /**
* 充值卡编号 * 充值卡id
*/ */
@ApiModelProperty(value = "充值卡编号",name = "cardId") @ApiModelProperty(value = "充值卡id",name = "cardId")
private String cardId; private Integer cardId;
/** /**
* 充值用户id * 充值用户id
...@@ -45,7 +46,7 @@ public class PayRecord implements Serializable { ...@@ -45,7 +46,7 @@ public class PayRecord implements Serializable {
* 充值所花金额 * 充值所花金额
*/ */
@ApiModelProperty(value = "充值所花金额",name = "money") @ApiModelProperty(value = "充值所花金额",name = "money")
private String money; private Integer money;
/** /**
* 充值结果 0:成功 1:失败 * 充值结果 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; ...@@ -2,19 +2,37 @@ package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R; import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.UserLimit; import cn.wisenergy.model.app.UserLimit;
import cn.wisenergy.model.vo.AddLimitVo;
/** /**
*@ Description: 用户查询次数接口定义
*@ Author : 86187
*@ Date : 2021/1/14 9:33
* @author 86187 * @author 86187
* @ Description: 用户查询次数接口定义
* @ Author : 86187
* @ Date : 2021/1/14 9:33
*/ */
public interface UserLimitService { public interface UserLimitService {
/** /**
* 获取用户查询次数信息 * 获取用户查询次数信息
*
* @param userId 用户id * @param userId 用户id
* @return 用户查询次数信息 * @return 用户查询次数信息
*/ */
R<UserLimit> getByUserId(Integer userId); 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,10 +7,10 @@ import cn.wisenergy.model.vo.UserLoginVo; ...@@ -7,10 +7,10 @@ import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo; import cn.wisenergy.model.vo.UserRegisterVo;
/** /**
* @author 86187
* @ Description: 用户登录 * @ Description: 用户登录
* @ Author : 86187 * @ Author : 86187
* @ Date : 2021/1/7 14:20 * @ Date : 2021/1/7 14:20
* @author 86187
*/ */
public interface UserLoginService { public interface UserLoginService {
/** /**
......
package cn.wisenergy.service.app.impl; package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.utils.R; import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.UserLimitMapper; import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.UserLimit; 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 cn.wisenergy.service.app.UserLimitService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author 86187
*/
@Service @Service
@Slf4j @Slf4j
public class UserLimitServiceImpl extends ServiceImpl<UserLimitMapper, UserLimit> implements UserLimitService { 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 @Override
public R<UserLimit> getByUserId(Integer userId) { public R<UserLimit> getByUserId(Integer userId) {
...@@ -28,4 +51,178 @@ public class UserLimitServiceImpl extends ServiceImpl<UserLimitMapper, UserLimit ...@@ -28,4 +51,178 @@ public class UserLimitServiceImpl extends ServiceImpl<UserLimitMapper, UserLimit
return R.ok(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 ...@@ -59,7 +59,14 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
return R.error("该电话号码" + phone + "已被使用!"); 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); String secret = Md5Util.digestMD5(password + phone);
//3、添加用户信息 //3、添加用户信息
......
...@@ -20,6 +20,7 @@ import java.util.List; ...@@ -20,6 +20,7 @@ import java.util.List;
* @ Description: PC-用户查询次数 * @ Description: PC-用户查询次数
* @ Author : 86187 * @ Author : 86187
* @ Date : 2021/1/14 10:50 * @ Date : 2021/1/14 10:50
* @author 86187
*/ */
@RestController @RestController
@Api(tags = "PC-用户查询次数") @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