1修改注销用户接口

This commit is contained in:
fengjundan 2021-08-03 16:25:22 +08:00
parent 9bfb559a80
commit 0b3e5733e7
13 changed files with 129 additions and 80 deletions

View File

@ -1,44 +1,55 @@
package com.xhpc; package com.xhpc;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.boot.jackson.JsonComponent; import org.springframework.boot.jackson.JsonComponent;
import org.springframework.context.annotation.Bean;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.TimeZone;
@JsonComponent @JsonComponent
public class DateFormatConfig { public class DateFormatConfig {
//
// @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}") @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
// private String pattern; private String pattern;
//
// /** /**
// * @author xiaofu * @author xiaofu
// * @description date 类型全局时间格式化 * @description date 类型全局时间格式化
// * @date 2020/8/31 18:22 * @date 2020/8/31 18:22
// */ */
// @Bean @Bean
// public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilder() { public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilder() {
//
// return builder -> { return builder -> {
// TimeZone tz = TimeZone.getTimeZone("UTC"); TimeZone tz = TimeZone.getTimeZone("UTC");
// DateFormat df = new SimpleDateFormat(pattern); DateFormat df = new SimpleDateFormat(pattern);
// df.setTimeZone(tz); df.setTimeZone(tz);
// builder.failOnEmptyBeans(false) builder.failOnEmptyBeans(false)
// .failOnUnknownProperties(false) .failOnUnknownProperties(false)
// .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
// .dateFormat(df); .dateFormat(df);
// }; };
// } }
//
// /** /**
// * @author xiaofu * @author xiaofu
// * @description LocalDate 类型全局时间格式化 * @description LocalDate 类型全局时间格式化
// * @date 2020/8/31 18:22 * @date 2020/8/31 18:22
// */ */
// @Bean @Bean
// public LocalDateTimeSerializer localDateTimeDeserializer() { public LocalDateTimeSerializer localDateTimeDeserializer() {
// return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern)); return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
// } }
//
// @Bean @Bean
// public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer(LocalDateTimeSerializer localDateTimeDeserializer) { public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer(LocalDateTimeSerializer localDateTimeDeserializer) {
// return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer); return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer);
// } }
} }

View File

@ -29,11 +29,7 @@ public class AlipayPaymentController {
@Autowired @Autowired
private Environment environment; private Environment environment;
/**
* 新版本的支付方式
*
* @return
*/
@GetMapping("/payment") @GetMapping("/payment")
@ApiOperation(value = "微信支付") @ApiOperation(value = "微信支付")
private String newPay() throws Exception { private String newPay() throws Exception {

View File

@ -10,6 +10,7 @@ import com.xhpc.payment.domain.XhpcRechargeOrder;
import com.xhpc.payment.domain.XhpcUserAccountStatement; import com.xhpc.payment.domain.XhpcUserAccountStatement;
import com.xhpc.payment.mapper.XhpcUserAccountStatementMapper; import com.xhpc.payment.mapper.XhpcUserAccountStatementMapper;
import com.xhpc.payment.service.IXhpcRechargeOrderService; import com.xhpc.payment.service.IXhpcRechargeOrderService;
import com.xhpc.payment.service.IXhpcRefundOrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -51,6 +52,9 @@ public class WxPaymentController {
@Autowired @Autowired
private XhpcUserAccountStatementMapper xhpcUserAccountStatementMapper; private XhpcUserAccountStatementMapper xhpcUserAccountStatementMapper;
@Autowired
private IXhpcRefundOrderService iXhpcRefundOrderService;
@Autowired @Autowired
private Environment environment; private Environment environment;
@ -71,6 +75,10 @@ public class WxPaymentController {
if (StringUtils.isEmpty(userId)) { if (StringUtils.isEmpty(userId)) {
return AjaxResult.error(HttpStatus.NOT_NULL, "用户信息不能为空"); return AjaxResult.error(HttpStatus.NOT_NULL, "用户信息不能为空");
} }
Map<String, Object> refundOrder = iXhpcRefundOrderService.getNotRefundOrder(Long.parseLong(userId));
if (StringUtils.isNotNull(refundOrder)) {
return AjaxResult.error(HttpStatus.ALREADY_EXISTING, "用户存正在退款");
}
Double amount1 = Double.parseDouble(amount) * 100; Double amount1 = Double.parseDouble(amount) * 100;
String orderNumber = StringUtils.numFormat(Long.parseLong(userId), 1, StatusConstants.FLOWING_WATER_RECHARGE_TYPE); String orderNumber = StringUtils.numFormat(Long.parseLong(userId), 1, StatusConstants.FLOWING_WATER_RECHARGE_TYPE);
if (0.0 == amount1) { if (0.0 == amount1) {

View File

@ -34,6 +34,7 @@ import org.apache.http.ssl.SSLContexts;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -74,16 +75,25 @@ public class XhpcRefundAuditController extends BaseController {
*/ */
@PostMapping("/examine") @PostMapping("/examine")
@ApiOperation(value = "退款审核") @ApiOperation(value = "退款审核")
@Transactional
public AjaxResult info(@RequestBody XhpcRefundAudit xhpcRefundAudit) { public AjaxResult info(@RequestBody XhpcRefundAudit xhpcRefundAudit) {
Map<String, Object> map = iXhpcRefundOrderService.info(xhpcRefundAudit.getRefundOrderId());
if (null == map) {
AjaxResult.error(HttpStatus.DATA_ERROR, "退款订单不存在");
}
String status = StringUtils.valueOf(map.get("status"));
if (StatusConstants.REFUND_ORDER_STATUS_WAIT != Integer.parseInt(status)) {
AjaxResult.error(HttpStatus.DATA_ERROR, "退款订单状态不能审核");
}
String examineStatus = StringUtils.valueOf(map.get("examineStatus"));
if (StatusConstants.REFUND_ORDER_STATUS_WAIT != Integer.parseInt(examineStatus)) {
AjaxResult.error(HttpStatus.DATA_ERROR, "退款订单状态不能审核");
}
AjaxResult ajaxResult = iXhpcRefundAuditService.insert(xhpcRefundAudit); AjaxResult ajaxResult = iXhpcRefundAuditService.insert(xhpcRefundAudit);
if (StringUtils.isNotNull(ajaxResult)) { if (StringUtils.isNotNull(ajaxResult)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ajaxResult; return ajaxResult;
} }
Map<String, Object> map = iXhpcRefundOrderService.info(xhpcRefundAudit.getRefundOrderId());
if (null == map) {
AjaxResult.error(HttpStatus.DATA_ERROR, "退款订单不存在");
}
String userId = StringUtils.valueOf(map.get("userId")); String userId = StringUtils.valueOf(map.get("userId"));
XhpcAppUser xhpcAppUser = new XhpcAppUser(); XhpcAppUser xhpcAppUser = new XhpcAppUser();
xhpcAppUser.setAppUserId(Long.parseLong(userId)); xhpcAppUser.setAppUserId(Long.parseLong(userId));
@ -105,19 +115,20 @@ public class XhpcRefundAuditController extends BaseController {
} }
/** /**
* 退款审核 * 取消申请
* *
* @param map * @param map
* @return * @return
*/ */
@PostMapping("/cancelExamine") @PostMapping("/cancelExamine")
@ApiOperation(value = "退款审核") @ApiOperation(value = "取消申请")
@Transactional
public AjaxResult cancelExamine(@RequestBody Map<String, Object> map) { public AjaxResult cancelExamine(@RequestBody Map<String, Object> map) {
String userId = StringUtils.valueOf(map); String userId = StringUtils.valueOf(map.get("userId"));
if (StringUtils.isEmpty(userId)) { if (StringUtils.isEmpty(userId)) {
return AjaxResult.error(HttpStatus.NOT_NULL, "用户id不能为空"); return AjaxResult.error(HttpStatus.NOT_NULL, "用户id不能为空");
} }
Map<String, Object> refundOrder = iXhpcRefundOrderService.addRefundOrder(Long.parseLong(userId)); Map<String, Object> refundOrder = iXhpcRefundOrderService.getNotRefundOrder(Long.parseLong(userId));
if (StringUtils.isNull(refundOrder)) { if (StringUtils.isNull(refundOrder)) {
return AjaxResult.error(HttpStatus.DATA_ERROR, "退款订单不存在"); return AjaxResult.error(HttpStatus.DATA_ERROR, "退款订单不存在");
} }

View File

@ -52,13 +52,8 @@ public class XhpcRefundOrderController extends BaseController {
} }
//生成退款订单 //生成退款订单
String orderOutNumber = StringUtils.numFormat(Long.parseLong(userId), Integer.parseInt(type), StatusConstants.FLOWING_WATER_REFUND_TYPE); String orderOutNumber = StringUtils.numFormat(Long.parseLong(userId), Integer.parseInt(type), StatusConstants.FLOWING_WATER_REFUND_TYPE);
String remark = StringUtils.valueOf(map.get("remark"));
return iXhpcRefundOrderService.addRefundOrder(userId, BigDecimal.valueOf(Double.parseDouble(amount)), type, orderOutNumber, openid); return iXhpcRefundOrderService.addRefundOrder(userId, BigDecimal.valueOf(Double.parseDouble(amount)), type, orderOutNumber, openid, remark);
}
public static void main(String[] args) {
System.out.println(StringUtils.numFormat(Long.parseLong("11"), Integer.parseInt("1"), StatusConstants.FLOWING_WATER_REFUND_TYPE));//打印结果"000006"
} }
/** /**
@ -73,6 +68,18 @@ public class XhpcRefundOrderController extends BaseController {
return AjaxResult.success(iXhpcRefundOrderService.info(refundOrderId)); return AjaxResult.success(iXhpcRefundOrderService.info(refundOrderId));
} }
/**
* 通过用户id查询未完成退款订单
*
* @param userId
* @return
*/
@GetMapping("/getNotRefundOrder")
@ApiOperation(value = "用户id查询未完成退款订单")
public AjaxResult getNotRefundOrder(@RequestParam Long userId) {
return AjaxResult.success(iXhpcRefundOrderService.getNotRefundOrder(userId));
}
/** /**
* 退款订单页列表 * 退款订单页列表
*/ */

View File

@ -37,6 +37,14 @@ public interface XhpcRefundOrderMapper {
*/ */
public int updateStatus(XhpcRefundOrder xhpcRefundOrder); public int updateStatus(XhpcRefundOrder xhpcRefundOrder);
/**
* 修改退款订单审核状态信息
*
* @param xhpcRefundOrder 退款订单信息
* @return 结果
*/
public int updateExamineStatus(XhpcRefundOrder xhpcRefundOrder);
/** /**
* 查询退款订单详情 * 查询退款订单详情
* *

View File

@ -47,9 +47,10 @@ public interface IXhpcRefundOrderService {
* @param appUserId C端用户id * @param appUserId C端用户id
* @param amount 充值金额 * @param amount 充值金额
* @param type 退款渠道1微信 2支付宝 * @param type 退款渠道1微信 2支付宝
* @param remark 备注
* @return * @return
*/ */
public AjaxResult addRefundOrder(String appUserId, BigDecimal amount, String type, String refundOrderNumber, String openid); public AjaxResult addRefundOrder(String appUserId, BigDecimal amount, String type, String refundOrderNumber, String openid, String remark);
/** /**
* 通过用户id查询未完成退款订单 * 通过用户id查询未完成退款订单
@ -57,7 +58,7 @@ public interface IXhpcRefundOrderService {
* @param userId 用户id * @param userId 用户id
* @return 结果 * @return 结果
*/ */
public Map<String, Object> addRefundOrder(Long userId); public Map<String, Object> getNotRefundOrder(Long userId);
/** /**
* 修改退款订单信息 * 修改退款订单信息

View File

@ -1,5 +1,6 @@
package com.xhpc.payment.service.impl; package com.xhpc.payment.service.impl;
import com.xhpc.common.core.constant.StatusConstants;
import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.payment.domain.XhpcRefundAudit; import com.xhpc.payment.domain.XhpcRefundAudit;
import com.xhpc.payment.domain.XhpcRefundOrder; import com.xhpc.payment.domain.XhpcRefundOrder;
@ -41,7 +42,8 @@ public class XhpcRefundAuditServiceImpl implements IXhpcRefundAuditService {
XhpcRefundOrder xhpcRefundOrder = new XhpcRefundOrder(); XhpcRefundOrder xhpcRefundOrder = new XhpcRefundOrder();
xhpcRefundOrder.setRefundOrderId(xhpcRefundAudit.getRefundOrderId()); xhpcRefundOrder.setRefundOrderId(xhpcRefundAudit.getRefundOrderId());
xhpcRefundOrder.setExamineStatus(xhpcRefundAudit.getStatus()); xhpcRefundOrder.setExamineStatus(xhpcRefundAudit.getStatus());
int updateStatus = xhpcRefundOrderMapper.updateStatus(xhpcRefundOrder); xhpcRefundOrder.setStatus(StatusConstants.REFUND_ORDER_STATUS_WAIT);
int updateStatus = xhpcRefundOrderMapper.updateExamineStatus(xhpcRefundOrder);
if (updateStatus == 0) { if (updateStatus == 0) {
return AjaxResult.error(); return AjaxResult.error();
} }

View File

@ -78,7 +78,7 @@ public class XhpcRefundOrderServiceImpl implements IXhpcRefundOrderService {
*/ */
@Override @Override
@Transactional @Transactional
public AjaxResult addRefundOrder(String appUserId, BigDecimal amount, String type, String refundOrderNumber, String openid) { public AjaxResult addRefundOrder(String appUserId, BigDecimal amount, String type, String refundOrderNumber, String openid, String remark) {
List<Map<String, Object>> list = xhpcRefundOrderMapper.getNotChargeOrder(Long.parseLong(appUserId)); List<Map<String, Object>> list = xhpcRefundOrderMapper.getNotChargeOrder(Long.parseLong(appUserId));
if (null != list && list.size() > 0) { if (null != list && list.size() > 0) {
@ -97,6 +97,7 @@ public class XhpcRefundOrderServiceImpl implements IXhpcRefundOrderService {
xhpcRefundOrder.setAmount(amount); xhpcRefundOrder.setAmount(amount);
xhpcRefundOrder.setRefundOrderNumber(refundOrderNumber); xhpcRefundOrder.setRefundOrderNumber(refundOrderNumber);
xhpcRefundOrder.setType(Integer.parseInt(type)); xhpcRefundOrder.setType(Integer.parseInt(type));
xhpcRefundOrder.setRemark(remark);
if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { if (StatusConstants.OPERATION_WX_TYPE.equals(type)) {
xhpcRefundOrder.setOpenId(openid); xhpcRefundOrder.setOpenId(openid);
} else { } else {
@ -117,7 +118,7 @@ public class XhpcRefundOrderServiceImpl implements IXhpcRefundOrderService {
* @return 结果 * @return 结果
*/ */
@Override @Override
public Map<String, Object> addRefundOrder(Long userId) { public Map<String, Object> getNotRefundOrder(Long userId) {
return xhpcRefundOrderMapper.getNotRefundOrder(userId); return xhpcRefundOrderMapper.getNotRefundOrder(userId);
} }

View File

@ -69,7 +69,8 @@ public class XhpcUserAccountStatementServiceImpl implements IXhpcUserAccountStat
Map<String, Object> appUserInfo = xhpcUserAccountStatementMapper.appUserInfo(Long.parseLong(userId)); Map<String, Object> appUserInfo = xhpcUserAccountStatementMapper.appUserInfo(Long.parseLong(userId));
if (StringUtils.isNotNull(appUserInfo)) { if (StringUtils.isNotNull(appUserInfo)) {
String balance = StringUtils.valueOf(appUserInfo.get("balance")); String balance = StringUtils.valueOf(appUserInfo.get("balance"));
xhpcUserAccountStatement.setRemainingSum(BigDecimal.valueOf(Double.valueOf(balance))); BigDecimal surplus = BigDecimal.valueOf(Double.valueOf(balance)).subtract(BigDecimal.valueOf(Double.valueOf(balance)));
xhpcUserAccountStatement.setRemainingSum(surplus);
} }
xhpcUserAccountStatementMapper.insert(xhpcUserAccountStatement); xhpcUserAccountStatementMapper.insert(xhpcUserAccountStatement);
} }

View File

@ -143,6 +143,14 @@
<set> <set>
<if test="null != status">status = #{status},</if> <if test="null != status">status = #{status},</if>
</set> </set>
WHERE refund_order_id = #{refundOrderId} and examine_status = 0
</update>
<update id="updateExamineStatus" parameterType="com.xhpc.payment.domain.XhpcRefundOrder">
UPDATE xhpc_refund_order
<set>
<if test="null != status">examine_status = #{examineStatus},</if>
</set>
WHERE refund_order_id = #{refundOrderId} and status = #{status} WHERE refund_order_id = #{refundOrderId} and status = #{status}
</update> </update>
@ -197,7 +205,7 @@
ORDER BY xco.create_time DESC ORDER BY xco.create_time DESC
</select> </select>
<select id="getNotRefundOrder" parameterType="java.lang.String" resultType="java.util.Map"> <select id="getNotRefundOrder" parameterType="java.lang.Long" resultType="java.util.Map">
select xro.refund_order_id refundOrderId ,xro.refund_order_number refundOrderNumber, select xro.refund_order_id refundOrderId ,xro.refund_order_number refundOrderNumber,
xro.alipay_id alipayId ,xro.open_id openId,xro.user_id userId,xro.amount, xro.alipay_id alipayId ,xro.open_id openId,xro.user_id userId,xro.amount,
xro.type,xro.examine_status examineStatus,xro.`status`,xro.create_time createTime, xro.type,xro.examine_status examineStatus,xro.`status`,xro.create_time createTime,
@ -207,9 +215,9 @@
LEFT JOIN sys_dict_data sdd on sdd.`dict_type` = 'refund_order_status' and sdd.dict_value = xro.`status` LEFT JOIN sys_dict_data sdd on sdd.`dict_type` = 'refund_order_status' and sdd.dict_value = xro.`status`
LEFT JOIN sys_dict_data sdds on sdds.`dict_type` = 'refund_examine_status' and sdds.dict_value = LEFT JOIN sys_dict_data sdds on sdds.`dict_type` = 'refund_examine_status' and sdds.dict_value =
xro.examine_status xro.examine_status
where xro.del_flag = 0 where xro.del_flag = 0 and xro.examine_status = 0 and xro.status = 0
<if test="userId != null and userId != ''"> <if test="userId != null and userId != ''">
and xau.app_user_id = {userId} and xau.app_user_id = #{userId}
</if> </if>
ORDER BY xro.create_time DESC LIMIT 1 ORDER BY xro.create_time DESC LIMIT 1
</select> </select>

View File

@ -25,7 +25,7 @@ import java.util.Date;
@Aspect @Aspect
@Component @Component
@Configuration @Configuration
public class DaoAspect { public class UserDaoAspect {
private static final String CREATE_BY = "createBy"; private static final String CREATE_BY = "createBy";
private static final String CREATE_TIME = "createTime"; private static final String CREATE_TIME = "createTime";
private static final String UPDATE_BY = "updateBy"; private static final String UPDATE_BY = "updateBy";

View File

@ -113,11 +113,8 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
if (StringUtils.isEmpty(code)) { if (StringUtils.isEmpty(code)) {
return R.fail(HttpStatus.NOT_NULL, "验证码不能为空"); return R.fail(HttpStatus.NOT_NULL, "验证码不能为空");
} }
String captcha = redisService.getCacheObject(phone); String captcha = redisService.getCacheObject("pvToken:" + phone);
redisService.deleteObject(phone); if (!code.equalsIgnoreCase(captcha)) {
if (!code.equalsIgnoreCase(captcha))
{
R.fail(HttpStatus.ERROR_STATUS, "验证码错误"); R.fail(HttpStatus.ERROR_STATUS, "验证码错误");
} }
XhpcAppUser info = xhpcAppUserMapper.getAppUserByPhone(phone); XhpcAppUser info = xhpcAppUserMapper.getAppUserByPhone(phone);
@ -150,13 +147,10 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
if (StringUtils.isEmpty(openid)) { if (StringUtils.isEmpty(openid)) {
return R.fail(HttpStatus.NOT_NULL, "openid不能为空"); return R.fail(HttpStatus.NOT_NULL, "openid不能为空");
} }
String captcha = redisService.getCacheObject(phone); String captcha = redisService.getCacheObject("pvToken:" + phone);
redisService.deleteObject(phone); if (!code.equalsIgnoreCase(captcha)) {
if (!code.equalsIgnoreCase(captcha))
{
R.fail(HttpStatus.ERROR_STATUS, "验证码错误"); R.fail(HttpStatus.ERROR_STATUS, "验证码错误");
} }
return appLogin(phone, type, openid); return appLogin(phone, type, openid);
} }
@ -202,6 +196,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
user.setAlipayLogin(UserConstants.LOGIN); user.setAlipayLogin(UserConstants.LOGIN);
} }
xhpcAppUserMapper.update(user); xhpcAppUserMapper.update(user);
redisService.deleteObject("pvToken:" + user.getPhone());
// 获取登录token // 获取登录token
return R.ok(tokenService.createToken(userInfo)); return R.ok(tokenService.createToken(userInfo));
} }
@ -288,8 +283,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
if (StringUtils.isEmpty(phone)) { if (StringUtils.isEmpty(phone)) {
return R.fail(HttpStatus.NOT_NULL, "手机号不能为空"); return R.fail(HttpStatus.NOT_NULL, "手机号不能为空");
} }
redisService.deleteObject(phone); String captcha = redisService.getCacheObject("pvToken:" + phone);
String captcha = redisService.getCacheObject(phone);
if (!code.equalsIgnoreCase(captcha)) { if (!code.equalsIgnoreCase(captcha)) {
return R.fail(HttpStatus.ERROR_STATUS, "验证码错误"); return R.fail(HttpStatus.ERROR_STATUS, "验证码错误");
} }
@ -298,6 +292,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
return R.fail(HttpStatus.ERROR_STATUS, "用户不存在"); return R.fail(HttpStatus.ERROR_STATUS, "用户不存在");
} }
xhpcAppUserMapper.deleteById(xhpcAppUser.getAppUserId()); xhpcAppUserMapper.deleteById(xhpcAppUser.getAppUserId());
return R.fail(); redisService.deleteObject("pvToken:" + phone);
return R.ok();
} }
} }