From ff1efd035e98b5a315e011eebe546ca54b473058 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 14 Jan 2025 09:26:09 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sqx/modules/pay/service/impl/CashOutServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java index 0ceb3f94..3907a849 100644 --- a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java +++ b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java @@ -661,7 +661,7 @@ public class CashOutServiceImpl extends ServiceImpl impleme // 禁止该姓名的用户提现 Integer count = tbWithdrawBlacklistMapper.selectCount(Wrappers.lambdaQuery().in(TbWithdrawBlacklist::getRealName, withdrawCheckNameSet)); if (count > 0) { - userMoneyDetails.setContent("提现-" + money); + userMoneyDetails.setContent("提现=" + money); cashOut.setState(3); cashOut.setRelationId("提现黑名单用户,请谨慎审核!"); } else { From 6feb5fffce64db94e53c823c87a2473cfbd7e92e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 14 Jan 2025 09:50:43 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=AF=E6=8F=90?= =?UTF-8?q?=E7=8E=B0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sqx/modules/pay/dao/CashOutDao.java | 2 +- src/main/resources/mapper/pay/CashDao.xml | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sqx/modules/pay/dao/CashOutDao.java b/src/main/java/com/sqx/modules/pay/dao/CashOutDao.java index aa2deb07..7fd5f0b6 100644 --- a/src/main/java/com/sqx/modules/pay/dao/CashOutDao.java +++ b/src/main/java/com/sqx/modules/pay/dao/CashOutDao.java @@ -27,7 +27,7 @@ public interface CashOutDao extends BaseMapper { Double selectCashOutSum(@Param("userId") Long userId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); - Integer selectTodayCashCount(@Param("userId") Long userId, @Param("state") Integer state,@Param("time") String time); + Integer selectTodayCashCount(@Param("userId") Long userId, @Param("stateList") List stateList,@Param("time") String time); Double selectSysUserCashOutSum(@Param("sysUserId") Long sysUserId, @Param("time") String time); diff --git a/src/main/resources/mapper/pay/CashDao.xml b/src/main/resources/mapper/pay/CashDao.xml index 76407f7c..759129da 100644 --- a/src/main/resources/mapper/pay/CashDao.xml +++ b/src/main/resources/mapper/pay/CashDao.xml @@ -188,7 +188,13 @@ From b0feb6f8f65dc03ce57eb29e5a521a196cc9e895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 14 Jan 2025 09:51:09 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=AF=E6=8F=90?= =?UTF-8?q?=E7=8E=B0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java index cd35f41e..f55bb09e 100644 --- a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java +++ b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java @@ -1,7 +1,9 @@ package com.sqx.modules.pay.wuyou; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.exceptions.ValidateException; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONObject; @@ -100,7 +102,7 @@ public class WuyouPay { public void checkCanCash(long userId, WithdrawTypeEnum type, BigDecimal money) { if (WithdrawTypeEnum.MANUAL.equals(type)) { // 查询当日体现次数 - Integer successCashCount = cashOutDao.selectTodayCashCount(userId, 1, DateUtil.today() + " 00:00:00"); + Integer successCashCount = cashOutDao.selectTodayCashCount(userId, CollectionUtil.newArrayList(1, 3), DateUtil.today() + " 00:00:00"); CommonInfo cashLimit = commonInfoService.findOne(922); if (cashLimit == null || StrUtil.isBlank(cashLimit.getValue())) { logger.warn("提现必要参数未配置,请联系管理员"); From 14a5c6a7ffb93a9b8132be4c6097bd0b6b644b2b Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 14 Jan 2025 09:54:06 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/course/service/impl/CourseCollectServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java index 742c40d4..19162c12 100644 --- a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java +++ b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java @@ -67,6 +67,7 @@ public class CourseCollectServiceImpl extends ServiceImpl() .eq(CourseCollect::getCourseCollectId, collect.getCourseCollectId()) + .eq(CourseCollect::getCourseId, collect.getCourseId()) .set(CourseCollect::getUpdateTime, DateUtil.now()) .set(CourseCollect::getCourseDetailsId, collect.getCourseDetailsId())); return Result.success("操作成功!"); From 80af929b6760c8916a2b5f1d78e38a6e7e45b3c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 14 Jan 2025 10:18:19 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8C=89=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E8=AE=A2=E5=8D=95=E5=8F=B7=E7=BB=9F=E8=AE=A1=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orders/controller/OrdersController.java | 8 ++ .../sqx/modules/orders/dto/SummaryDTO.java | 24 ++++++ .../modules/orders/service/OrdersService.java | 3 + .../service/impl/OrdersServiceImpl.java | 84 +++++++++++++++++++ .../com/sqx/modules/pay/entity/CashOut.java | 11 +++ 5 files changed, 130 insertions(+) create mode 100644 src/main/java/com/sqx/modules/orders/dto/SummaryDTO.java diff --git a/src/main/java/com/sqx/modules/orders/controller/OrdersController.java b/src/main/java/com/sqx/modules/orders/controller/OrdersController.java index c64f9eab..5a09c684 100644 --- a/src/main/java/com/sqx/modules/orders/controller/OrdersController.java +++ b/src/main/java/com/sqx/modules/orders/controller/OrdersController.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.Result; +import com.sqx.modules.orders.dto.SummaryDTO; import com.sqx.modules.orders.service.OrdersService; import com.sqx.modules.pay.dao.CashOutDao; import com.sqx.modules.pay.entity.CashOut; @@ -207,4 +208,11 @@ public class OrdersController extends AbstractController { result.put("year", year); return Result.success().put("data", result); } + + @GetMapping("/queryByTradeNo") + @ApiOperation("按交易订单号统计相关数据") + public Result queryByTradeNo(String outTradeNo) { + SummaryDTO data = ordersService.queryByTradeNo(outTradeNo); + return Result.success().put("data", data); + } } diff --git a/src/main/java/com/sqx/modules/orders/dto/SummaryDTO.java b/src/main/java/com/sqx/modules/orders/dto/SummaryDTO.java new file mode 100644 index 00000000..5962899b --- /dev/null +++ b/src/main/java/com/sqx/modules/orders/dto/SummaryDTO.java @@ -0,0 +1,24 @@ +package com.sqx.modules.orders.dto; + +import com.sqx.modules.app.entity.UserEntity; +import com.sqx.modules.app.entity.UserInfo; +import lombok.Data; + +import java.io.Serializable; +import java.util.Map; + +/** + * @author tankaikai + * @since 2025-01-13 19:13 + */ +@Data +public class SummaryDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private UserEntity userInfo; + private UserInfo authInfo; + + private Map withdrawTotal; + private Map payTotal; + +} diff --git a/src/main/java/com/sqx/modules/orders/service/OrdersService.java b/src/main/java/com/sqx/modules/orders/service/OrdersService.java index 28544e80..90063555 100644 --- a/src/main/java/com/sqx/modules/orders/service/OrdersService.java +++ b/src/main/java/com/sqx/modules/orders/service/OrdersService.java @@ -2,6 +2,7 @@ package com.sqx.modules.orders.service; import com.baomidou.mybatisplus.extension.service.IService; import com.sqx.common.utils.Result; +import com.sqx.modules.orders.dto.SummaryDTO; import com.sqx.modules.orders.entity.Orders; public interface OrdersService extends IService { @@ -70,4 +71,6 @@ public interface OrdersService extends IService { * @param orders */ void fillSysUserId(Orders orders); + + SummaryDTO queryByTradeNo(String outTradeNo); } diff --git a/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java index 706b147a..95a742ec 100644 --- a/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java @@ -1,6 +1,9 @@ package com.sqx.modules.orders.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; @@ -12,6 +15,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.sqx.common.exception.SqxException; import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.PageUtils; import com.sqx.common.utils.Result; @@ -29,9 +33,14 @@ import com.sqx.modules.course.service.CourseUserService; import com.sqx.modules.invite.service.InviteMoneyService; import com.sqx.modules.invite.service.InviteService; import com.sqx.modules.orders.dao.OrdersDao; +import com.sqx.modules.orders.dto.SummaryDTO; import com.sqx.modules.orders.entity.Orders; import com.sqx.modules.orders.service.OrdersService; import com.sqx.modules.pay.controller.app.AliPayController; +import com.sqx.modules.pay.dao.CashOutDao; +import com.sqx.modules.pay.dao.PayDetailsDao; +import com.sqx.modules.pay.entity.CashOut; +import com.sqx.modules.pay.entity.PayDetails; import com.sqx.modules.pay.service.DyService; import com.sqx.modules.pay.service.WxService; import com.sqx.modules.sys.dao.SysUserDao; @@ -89,6 +98,13 @@ public class OrdersServiceImpl extends ServiceImpl implements @Autowired private SysUserDao sysUserDao; + @Autowired + private UserInfoService userInfoService; + @Autowired + private CashOutDao cashOutDao; + + @Autowired + private PayDetailsDao payDetailsDao; private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true); @@ -805,4 +821,72 @@ public class OrdersServiceImpl extends ServiceImpl implements } orders.setSysUserId(sysUserEntity.getUserId()); } + + @Override + public SummaryDTO queryByTradeNo(String outTradeNo) { + String tradeNo = null; + Long userId = null; + try { + // 提现回调单号 + if (outTradeNo.contains("-") && outTradeNo.contains(":")){ + tradeNo = outTradeNo.split("-")[0]; + userId = Convert.toLong(outTradeNo.split("-")[1].split(":")[0]); + } + // 支付回调单号 + else if(outTradeNo.contains("-")){ + tradeNo = outTradeNo.split("-")[0]; + userId = Convert.toLong(outTradeNo.split("-")[1]); + } + }catch (Exception e){ + throw new SqxException("交易订单号不合法"); + } + if(StrUtil.isEmpty(tradeNo) || userId == null){ + throw new SqxException("交易订单号不合法"); + } + SummaryDTO data = new SummaryDTO(); + UserEntity user = userService.selectUserById(userId); + data.setUserInfo(user); + UserInfo realNameAuth = userInfoService.getByUserId(userId); + data.setAuthInfo(realNameAuth); + + Map withdrawTotal = new HashMap<>(); + withdrawTotal.put("success", MapUtil.builder().put("total", BigDecimal.ZERO).put("count", 0).build()); + withdrawTotal.put("fail", MapUtil.builder().put("total", BigDecimal.ZERO).put("count", 0).build()); + withdrawTotal.put("auditing", MapUtil.builder().put("total", BigDecimal.ZERO).put("count", 0).build()); + withdrawTotal.put("other", MapUtil.builder().put("total", BigDecimal.ZERO).put("count", 0).build()); + data.setWithdrawTotal(withdrawTotal); + Map payTotal = new HashMap<>(); + payTotal.put("success", MapUtil.builder().put("total", BigDecimal.ZERO).put("count", 0).build()); + payTotal.put("fail", MapUtil.builder().put("total", BigDecimal.ZERO).put("count", 0).build()); + payTotal.put("unpaid", MapUtil.builder().put("total", BigDecimal.ZERO).put("count", 0).build()); + data.setPayTotal(payTotal); + List cashOutList = cashOutDao.selectList(Wrappers.lambdaQuery().eq(CashOut::getUserId, userId)); + if (CollUtil.isNotEmpty(cashOutList)) { + Map cashOut = cashOutList.stream().collect(Collectors.groupingBy(CashOut::getState, Collectors.reducing(BigDecimal.ZERO, CashOut::getConvertMoney, BigDecimal::add))); + Map cashOutCount = cashOutList.stream().collect(Collectors.groupingBy(CashOut::getState, Collectors.counting())); + withdrawTotal.put("success", MapUtil.builder().put("total", cashOut.containsKey(1) ? cashOut.get(1) : BigDecimal.ZERO).put("count", cashOutCount.containsKey(1) ? cashOutCount.get(1) : 0).build()); + withdrawTotal.put("fail", MapUtil.builder().put("total", cashOut.containsKey(2) ? cashOut.get(2) : BigDecimal.ZERO).put("count", cashOutCount.containsKey(2) ? cashOutCount.get(2) : 0).build()); + withdrawTotal.put("auditing", MapUtil.builder().put("total", cashOut.containsKey(3) ? cashOut.get(3) : BigDecimal.ZERO).put("count", cashOutCount.containsKey(3) ? cashOutCount.get(3) : 0).build()); + Integer[] states = {1, 2, 3}; + BigDecimal otherMoney = cashOutList.stream().filter(obj -> !ArrayUtil.contains(states, obj.getState())).collect(Collectors.reducing(BigDecimal.ZERO, CashOut::getConvertMoney, BigDecimal::add)); + Long otherCount = cashOutList.stream().filter(obj -> !ArrayUtil.contains(states, obj.getState())).collect(Collectors.counting()); + withdrawTotal.put("other", MapUtil.builder().put("total", NumberUtil.null2Zero(otherMoney)).put("count", otherCount == null ? 0 : otherCount.longValue()).build()); + data.setWithdrawTotal(withdrawTotal); + } + + + List payDetailsList = payDetailsDao.selectList(Wrappers.lambdaQuery().eq(PayDetails::getUserId, userId)); + if (CollUtil.isNotEmpty(payDetailsList)) { + Map payDetail = payDetailsList.stream().collect(Collectors.groupingBy(PayDetails::getState, Collectors.summingDouble(PayDetails::getMoney))); + Map payDetailCount = payDetailsList.stream().collect(Collectors.groupingBy(PayDetails::getState, Collectors.counting())); + + payTotal.put("success", MapUtil.builder().put("total", payDetail.containsKey(1) ? payDetail.get(1) : 0d).put("count", payDetailCount.containsKey(1) ? payDetailCount.get(1) : 0).build()); + payTotal.put("fail", MapUtil.builder().put("total", payDetail.containsKey(2) ? payDetail.get(2) : 0d).put("count", payDetailCount.containsKey(2) ? payDetailCount.get(2) : 0).build()); + payTotal.put("unpaid", MapUtil.builder().put("total", payDetail.containsKey(0) ? payDetail.get(0) : 0d).put("count", payDetailCount.containsKey(0) ? payDetailCount.get(0) : 0).build()); + data.setPayTotal(payTotal); + } + + return data; + } + } diff --git a/src/main/java/com/sqx/modules/pay/entity/CashOut.java b/src/main/java/com/sqx/modules/pay/entity/CashOut.java index 789ba7cc..28da45a0 100644 --- a/src/main/java/com/sqx/modules/pay/entity/CashOut.java +++ b/src/main/java/com/sqx/modules/pay/entity/CashOut.java @@ -1,5 +1,6 @@ package com.sqx.modules.pay.entity; +import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -151,6 +152,16 @@ public class CashOut implements Serializable { private Integer withdrawType; + /** + * 提现金币 + */ + @TableField(exist = false) + private BigDecimal convertMoney; + + public BigDecimal getConvertMoney() { + return Convert.toBigDecimal(money,BigDecimal.ZERO); + } + public void setZhifubao(String zhifubao) { this.zhifubao = zhifubao; } From cb1e4eed1f29aa4c508c8060a86446c6ebb134ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 14 Jan 2025 11:07:48 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/app/AppLoginController.java | 19 ++- .../com/sqx/modules/app/dto/LoginDTO.java | 13 ++ .../com/sqx/modules/app/dto/RegisterDTO.java | 20 +++ .../sqx/modules/app/service/UserService.java | 11 +- .../app/service/impl/UserServiceImpl.java | 121 ++++++++++++++---- 5 files changed, 152 insertions(+), 32 deletions(-) create mode 100644 src/main/java/com/sqx/modules/app/dto/LoginDTO.java create mode 100644 src/main/java/com/sqx/modules/app/dto/RegisterDTO.java diff --git a/src/main/java/com/sqx/modules/app/controller/app/AppLoginController.java b/src/main/java/com/sqx/modules/app/controller/app/AppLoginController.java index 19ff76ea..e2cd9c1d 100644 --- a/src/main/java/com/sqx/modules/app/controller/app/AppLoginController.java +++ b/src/main/java/com/sqx/modules/app/controller/app/AppLoginController.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.sqx.common.annotation.Debounce; import com.sqx.common.utils.Result; +import com.sqx.modules.app.dto.LoginDTO; +import com.sqx.modules.app.dto.RegisterDTO; import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.app.service.IAppleService; import com.sqx.modules.app.service.UserService; @@ -19,6 +21,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import weixin.popular.api.SnsAPI; import weixin.popular.bean.sns.SnsToken; @@ -142,7 +145,6 @@ public class AppLoginController { @RequestMapping(value = "/registerCode", method = RequestMethod.POST) - @ApiOperation("app或h5注册或登录") @ResponseBody @Debounce(interval = 2500, value = "#phone") public Result registerCode(@RequestParam String phone,String msg,String platform,Integer sysPhone, @@ -150,6 +152,21 @@ public class AppLoginController { return userService.registerCode(phone,msg,platform,sysPhone,password,inviterCode,wxId,qdCode); } + @PostMapping + @ResponseBody + @Debounce(interval = 2500, value = "#phone") + public Result login(@RequestBody @Validated LoginDTO loginDTO) { + return userService.login(loginDTO); + } + + @PostMapping(value = "/register") + @ApiOperation("app或h5注册或登录") + @ResponseBody + @Debounce(interval = 2500, value = "#phone") + public Result register(@RequestBody RegisterDTO registerDTO) { + return userService.register(registerDTO); + } + @PostMapping("/bindWxOpenPhone") @ApiOperation("微信公众号绑定手机号") public Result bindWxOpenPhone(Long userId,String phone,String msg){ diff --git a/src/main/java/com/sqx/modules/app/dto/LoginDTO.java b/src/main/java/com/sqx/modules/app/dto/LoginDTO.java new file mode 100644 index 00000000..efeb651d --- /dev/null +++ b/src/main/java/com/sqx/modules/app/dto/LoginDTO.java @@ -0,0 +1,13 @@ +package com.sqx.modules.app.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Data +public class LoginDTO { + @NotEmpty + private String phone; + @NotEmpty + private String password; +} diff --git a/src/main/java/com/sqx/modules/app/dto/RegisterDTO.java b/src/main/java/com/sqx/modules/app/dto/RegisterDTO.java new file mode 100644 index 00000000..55bc8157 --- /dev/null +++ b/src/main/java/com/sqx/modules/app/dto/RegisterDTO.java @@ -0,0 +1,20 @@ +package com.sqx.modules.app.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Data +public class RegisterDTO { + @NotEmpty + private String phone; + @NotEmpty + private String password; + @NotEmpty + private String msg; + @NotEmpty + private String platform; + private String inviterCode; + private String qdCode; + private Integer sysPhone; +} diff --git a/src/main/java/com/sqx/modules/app/service/UserService.java b/src/main/java/com/sqx/modules/app/service/UserService.java index dd509f23..88f6b9fe 100644 --- a/src/main/java/com/sqx/modules/app/service/UserService.java +++ b/src/main/java/com/sqx/modules/app/service/UserService.java @@ -7,6 +7,8 @@ import com.sqx.common.utils.PageUtils; import com.sqx.common.utils.Result; import com.sqx.modules.app.dto.AuthCertNoDTO; import com.sqx.modules.app.dto.AuthDTO; +import com.sqx.modules.app.dto.LoginDTO; +import com.sqx.modules.app.dto.RegisterDTO; import com.sqx.modules.app.entity.UserEntity; import javax.servlet.http.HttpServletRequest; @@ -158,8 +160,6 @@ public interface UserService extends IService { * * @param phone 手机号 * @param msg 验证按 - * @param pwd 密码 - * @param platform 来源 app h5 * @return */ Result registerCode(String phone, String msg, String platform, Integer sysPhone,String password, @@ -174,11 +174,8 @@ public interface UserService extends IService { /** * app或h5登录 * - * @param phone 手机号 - * @param pwd 密码 - * @return */ - Result login(String phone, String pwd); + Result login(LoginDTO loginDTO); /** @@ -235,4 +232,6 @@ public interface UserService extends IService { void addBlackUser(Long userId,String behavior); UserEntity queryByInvitationCodeOrUserId(Long inviterUserId, String invitationCode); + + Result register(RegisterDTO registerDTO); } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java index b907b8f6..1e55a3a1 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java @@ -42,9 +42,7 @@ import com.sqx.common.utils.Result; import com.sqx.modules.app.dao.MsgDao; import com.sqx.modules.app.dao.UserDao; import com.sqx.modules.app.dao.UserVipDao; -import com.sqx.modules.app.dto.AuthCertNoDTO; -import com.sqx.modules.app.dto.AuthDTO; -import com.sqx.modules.app.dto.AuthRespDTO; +import com.sqx.modules.app.dto.*; import com.sqx.modules.app.entity.*; import com.sqx.modules.app.mapper.TbUserBlacklistMapper; import com.sqx.modules.app.response.CourseOrderResponse; @@ -885,6 +883,98 @@ public class UserServiceImpl extends ServiceImpl implements return getResult(user); } + @Override + public Result login(LoginDTO loginDTO) { + //校验手机号是否存在 + UserEntity userInfo = queryByPhone(loginDTO.getPhone()); + if (userInfo == null) { + return Result.error("未注册, 请先注册"); + } + + //密码登录 + if (StringUtils.isEmpty(userInfo.getPassword())) { + return Result.error("当前账号未绑定密码,请前往忘记密码中进行重置!"); + } + + if (!userInfo.getPassword().equals(DigestUtils.sha256Hex(loginDTO.getPassword()))) { + return Result.error("账号或密码不正确!"); + } + + if (userInfo.getStatus().equals(2)) { + return Result.error("账号已被禁用,请联系客服处理!"); + } + + // 实名认证信息 + UserInfo idCardAuth = userInfoService.getByUserId(userInfo.getUserId()); + if (idCardAuth != null && StrUtil.isNotBlank(idCardAuth.getCertNo())) { + TbUserBlacklist blacklist = tbUserBlacklistMapper.selectOne(Wrappers.lambdaQuery().eq(TbUserBlacklist::getIdCardNo, idCardAuth.getCertNo())); + // 如果被拉黑了,不要提示的那么直白,需要换个说法 + if (blacklist != null) { + return Result.error("系统正在维护中,请稍后再试!"); + } + } + userInfo.setUpdateTime(DateUtil.date().toString()); + baseMapper.updateById(userInfo); + return getResult(userInfo); + } + + @Override + public Result register(RegisterDTO registerDTO) { + //校验手机号是否存在 + UserEntity userInfo = queryByPhone(registerDTO.getPhone()); + if (userInfo != null) { + return Result.error("此号码已注册"); + } + + Msg msg1 = msgDao.findByPhoneAndCode(registerDTO.getPhone(), registerDTO.getMsg()); + if (msg1 == null) { + return Result.error("验证码不正确!"); + } + + userInfo = new UserEntity(); + UserEntity userEntity; + if (StringUtils.isNotEmpty(registerDTO.getInviterCode())) { + userEntity = queryByInvitationCode(registerDTO.getInviterCode()); + if (userEntity == null) { + return Result.error("邀请码不正确!"); + } + } else { + userInfo.setInviterCode(commonInfoService.findOne(88).getValue()); + userEntity = queryByInvitationCodeOrUserId(userInfo.getInviterUserId(), userInfo.getInviterCode()); + } + + if (StringUtils.isEmpty(registerDTO.getQdCode())) { + registerDTO.setQdCode(userEntity.getQdCode()); + } else { + SysUserEntity sysUserEntity = sysUserService.selectSysUserByQdCode(registerDTO.getQdCode()); + if (sysUserEntity == null) { + return Result.error("请使用正确的渠道码!"); + } + } + userInfo.setQdCode(registerDTO.getQdCode()); + userInfo.setPhone(registerDTO.getPhone()); + userInfo.setUserName(registerDTO.getPhone().replaceAll("(\\d{3})\\d*([0-9a-zA-Z]{4})", "$1****$2")); + userInfo.setPlatform(registerDTO.getPlatform()); + userInfo.setCreateTime(DateUtil.date().toString()); + userInfo.setSysPhone(registerDTO.getSysPhone()); + userInfo.setPassword(DigestUtils.sha256Hex(registerDTO.getPassword())); + userInfo.setStatus(1); + userInfo.setUpdateTime(DateUtil.date().toString()); + userInfo.setRate(new BigDecimal(commonInfoService.findOne(420).getValue())); + userInfo.setTwoRate(new BigDecimal(commonInfoService.findOne(421).getValue())); + Long snowFlakeId = InvitationCodeUtil.getSnowFlakeId(); + userInfo.setUserId(snowFlakeId); + baseMapper.insert(userInfo); + userInfo.setInvitationCode(InvitationCodeUtil.toSerialCode(userInfo.getUserId())); + baseMapper.updateById(userInfo); + + msgDao.deleteById(msg1.getId()); + if (userEntity != null) { + inviteService.saveBody(userInfo.getUserId(), userEntity); + } + return getResult(userInfo); + } + @Override public Result registerCode(String phone, String msg, String platform, Integer sysPhone, String password, String inviterCode, String wxId, String qdCode) { @@ -1045,25 +1135,6 @@ public class UserServiceImpl extends ServiceImpl implements } - @Override - public Result login(String phone, String pwd) { - UserEntity userEntity = queryByPhone(phone); - if (userEntity == null) { - return Result.error("手机号未注册!"); - } - if (!userEntity.getPassword().equals(DigestUtils.sha256Hex(pwd))) { - return Result.error("密码不正确!"); - } - if (userEntity.getStatus().equals(2)) { - return Result.error("账号已被禁用,请联系客服处理!"); - } - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - userEntity.setUpdateTime(sdf.format(new Date())); - baseMapper.updateById(userEntity); - return getResult(userEntity); - } - - @Override public Result getResult(UserEntity user) { //生成token @@ -1662,8 +1733,8 @@ public class UserServiceImpl extends ServiceImpl implements @Override - public void addBlackUser(Long userId,String behavior) { - log.info("异常用户id, 异常操作: {},{}", userId,behavior); + public void addBlackUser(Long userId, String behavior) { + log.info("异常用户id, 异常操作: {},{}", userId, behavior); UserInfo userInfo = userInfoService.getOne(new LambdaQueryWrapper().eq(UserInfo::getUserId, userId)); if (userInfo != null && StrUtil.isNotBlank(userInfo.getCertNo())) { TbUserBlacklist userBlacklist = new TbUserBlacklist(); @@ -1675,7 +1746,7 @@ public class UserServiceImpl extends ServiceImpl implements update(null, new LambdaUpdateWrapper().eq(UserEntity::getUserId, userId) .set(UserEntity::getStatus, 0) .set(UserEntity::getPlatform, behavior) - .set(UserEntity::getUpdateTime,DateUtil.now())); + .set(UserEntity::getUpdateTime, DateUtil.now())); } @Override From d5023aa9b33ac600aa0b7202221cf53f1bf10369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 14 Jan 2025 11:10:46 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sqx/modules/app/entity/UserEntity.java | 5 +++++ .../com/sqx/modules/app/service/impl/UserServiceImpl.java | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sqx/modules/app/entity/UserEntity.java b/src/main/java/com/sqx/modules/app/entity/UserEntity.java index 72cfdbc4..daf6e39f 100644 --- a/src/main/java/com/sqx/modules/app/entity/UserEntity.java +++ b/src/main/java/com/sqx/modules/app/entity/UserEntity.java @@ -207,4 +207,9 @@ public class UserEntity implements Serializable { @TableField(exist = false) private Integer vipType; + + public UserEntity getDesensitizationInfo() { + this.setPassword(null); + return this; + } } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java index 1e55a3a1..a2382026 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java @@ -915,7 +915,7 @@ public class UserServiceImpl extends ServiceImpl implements } userInfo.setUpdateTime(DateUtil.date().toString()); baseMapper.updateById(userInfo); - return getResult(userInfo); + return getResult(userInfo.getDesensitizationInfo()); } @Override @@ -972,7 +972,7 @@ public class UserServiceImpl extends ServiceImpl implements if (userEntity != null) { inviteService.saveBody(userInfo.getUserId(), userEntity); } - return getResult(userInfo); + return getResult(userInfo.getDesensitizationInfo()); } @Override From 1109f2ad59afa324e1355c8cea584a5afe77b708 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 14 Jan 2025 11:11:10 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E8=A7=82=E7=9C=8B=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../course/service/impl/CourseCollectServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java index 19162c12..0bb9fa58 100644 --- a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java +++ b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java @@ -56,7 +56,7 @@ public class CourseCollectServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id", courseCollect.getUserId()) @@ -67,9 +67,9 @@ public class CourseCollectServiceImpl extends ServiceImpl() .eq(CourseCollect::getCourseCollectId, collect.getCourseCollectId()) - .eq(CourseCollect::getCourseId, collect.getCourseId()) + .eq(CourseCollect::getUserId, collect.getUserId()) .set(CourseCollect::getUpdateTime, DateUtil.now()) - .set(CourseCollect::getCourseDetailsId, collect.getCourseDetailsId())); + .set(CourseCollect::getCourseDetailsId, courseCollect.getCourseDetailsId())); return Result.success("操作成功!"); } collect = new CourseCollect() From e3270caabdcb32422828d95ed49629790d91f997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 14 Jan 2025 11:18:56 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E5=88=86=E5=BA=93=E5=90=8E=E9=81=97?= =?UTF-8?q?=E7=95=99=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrdersServiceImpl.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java index 95a742ec..7f008505 100644 --- a/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java @@ -264,14 +264,17 @@ public class OrdersServiceImpl extends ServiceImpl implements log.info("生成商品订单信息接口入参为:{},{}", courseId, userId); // reentrantReadWriteLock.writeLock().lock(); try { - CourseDetails courseDetail = courseDetailsService.getOne(new LambdaQueryWrapper() - .eq(CourseDetails::getCourseDetailsId, courseDetailsId) - .eq(CourseDetails::getCourseId, courseId)); - if (courseDetail == null) { - return Result.error("未知短剧"); - } - if (courseDetail != null && courseDetail.getIsPrice().equals(2)) { - return Result.success().put("status", 1); + CourseDetails courseDetail = null; + if(courseDetailsId != null){ + courseDetail = courseDetailsService.getOne(new LambdaQueryWrapper() + .eq(CourseDetails::getCourseDetailsId, courseDetailsId) + .eq(CourseDetails::getCourseId, courseId)); + if (courseDetail == null) { + return Result.error("未知短剧"); + } + if (courseDetail != null && courseDetail.getIsPrice().equals(2)) { + return Result.success().put("status", 1); + } } CourseUser courseUser1 = courseUserDao.selectCourseUser(courseId, userId); if (courseUser1 != null) { From 36d651da85ba929be257fac15a59e53f28f9dc8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 14 Jan 2025 11:24:39 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sqx/modules/app/entity/UserEntity.java | 5 +---- .../com/sqx/modules/app/service/impl/UserServiceImpl.java | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/sqx/modules/app/entity/UserEntity.java b/src/main/java/com/sqx/modules/app/entity/UserEntity.java index daf6e39f..08b6ba8c 100644 --- a/src/main/java/com/sqx/modules/app/entity/UserEntity.java +++ b/src/main/java/com/sqx/modules/app/entity/UserEntity.java @@ -208,8 +208,5 @@ public class UserEntity implements Serializable { private Integer vipType; - public UserEntity getDesensitizationInfo() { - this.setPassword(null); - return this; - } + } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java index a2382026..1e55a3a1 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java @@ -915,7 +915,7 @@ public class UserServiceImpl extends ServiceImpl implements } userInfo.setUpdateTime(DateUtil.date().toString()); baseMapper.updateById(userInfo); - return getResult(userInfo.getDesensitizationInfo()); + return getResult(userInfo); } @Override @@ -972,7 +972,7 @@ public class UserServiceImpl extends ServiceImpl implements if (userEntity != null) { inviteService.saveBody(userInfo.getUserId(), userEntity); } - return getResult(userInfo.getDesensitizationInfo()); + return getResult(userInfo); } @Override From d12cba6b8ac17a906e4df0bccdd616cfb203676c Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 14 Jan 2025 11:27:18 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E8=A7=82=E7=9C=8B=E8=AE=B0=E5=BD=95=20?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/course/dao/CourseCollectDao.java | 4 ++-- .../impl/CourseCollectServiceImpl.java | 24 ++++++++++--------- .../mapper/course/CourseCollectDao.xml | 8 +++---- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/sqx/modules/course/dao/CourseCollectDao.java b/src/main/java/com/sqx/modules/course/dao/CourseCollectDao.java index 208a1769..2fd9fac3 100644 --- a/src/main/java/com/sqx/modules/course/dao/CourseCollectDao.java +++ b/src/main/java/com/sqx/modules/course/dao/CourseCollectDao.java @@ -20,6 +20,6 @@ public interface CourseCollectDao extends BaseMapper { List selectClassify1In3(@Param("userId") Long userId); - List selectClassify1In2(@Param("userId") Long userId); - List selectClassify1ByUserId(@Param("userId") Long userId); + List selectClassify2(@Param("userId") Long userId); + List selectClassify3ByUserId(@Param("userId") Long userId); } diff --git a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java index 0bb9fa58..1f09cfae 100644 --- a/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java +++ b/src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java @@ -140,28 +140,30 @@ public class CourseCollectServiceImpl extends ServiceImpl courses = new ArrayList<>(); - //收藏 if (classify.equals(1)) { - //查 收藏记录 + //收藏记录 courses = baseMapper.selectClassify1In3(userId); }else if (classify.equals(2)){ - courses = baseMapper.selectClassify1In2(userId); + //点赞 + courses = baseMapper.selectClassify2(userId); } else { - courses = baseMapper.selectClassify1ByUserId(userId); - } - if (CollectionUtil.isEmpty(courses)) { - return Result.success().put("data", PageUtils.page(new PageInfo<>(courses), true)); + //观看历史 + courses = baseMapper.selectClassify3ByUserId(userId); } + //剧id Set courseIdList = new HashSet<>(); //详情id Set courseDetailIds = new HashSet<>(); + //剧集-观看记录时间 + Map upTime = new HashMap<>(); courses.forEach(s -> { if (s == null) { return; } courseIdList.add(s.getCourseId()); courseDetailIds.add(s.getCourseDetailsId()); + upTime.put(s.getCourseId(),s.getUpdateTime()); }); List courseList = courseIdList.isEmpty() ? new ArrayList<>() : courseDao.selectList(new LambdaQueryWrapper().in(Course::getCourseId, courseIdList)); @@ -170,20 +172,20 @@ public class CourseCollectServiceImpl extends ServiceImpl().in(CourseDetails::getCourseDetailsId, courseDetailIds)); Map courseDetailsMap = courseDetails1.stream() .collect(Collectors.toMap(CourseDetails::getCourseId, item -> item, (key1, key2) -> key1)); -// List courseDetails2 = courseIdList.isEmpty() ? new ArrayList<>() : courseDetailsDao.countByCourseId(courseIdList); -// Map countMap = courseDetails2.stream() -// .collect(Collectors.toMap(CourseDetails::getCourseId, CourseDetails::getCourseDetailsCount)); if (CollectionUtil.isNotEmpty(courseList)) { for (Course course : courseList) { -// course.setCourseClassification(courseClassificationDao.selectById(course.getClassifyId())); CourseDetails courseDetails = courseDetailsMap.getOrDefault(course.getCourseId(), null); course.setCourseDetailsCount(courseDetailsDao.countCourseByCourseId(course.getCourseId())); if (courseDetails != null) { course.setCourseDetailsName(courseDetails.getCourseDetailsName()); course.setCourseDetailsId(courseDetails.getCourseDetailsId()); } + if (upTime.containsKey(course.getCourseId())) { + course.setUpdateTime(upTime.get(course.getCourseId())); + } } + courseList.sort(Comparator.comparing(Course::getUpdateTime).reversed()); } PageInfo pageInfo = new PageInfo<>(courseList); return Result.success().put("data", PageUtils.page(pageInfo, true)); diff --git a/src/main/resources/mapper/course/CourseCollectDao.xml b/src/main/resources/mapper/course/CourseCollectDao.xml index 40cad417..314782d4 100644 --- a/src/main/resources/mapper/course/CourseCollectDao.xml +++ b/src/main/resources/mapper/course/CourseCollectDao.xml @@ -43,7 +43,7 @@ order by c1.update_time desc - SELECT c1.course_id as courseId, c1.course_details_id as courseDetailsId @@ -55,12 +55,12 @@ order by c1.update_time desc - SELECT c1.course_id as courseId, - c1.course_details_id as courseDetailsId + c1.course_details_id as courseDetailsId, + c1.update_time as updateTime FROM `course_collect` c1 WHERE c1.classify = 3 AND c1.user_id = #{userId} - order by c1.update_time desc From 73949506418de5d17db57bb2ac25d3975940ec57 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 14 Jan 2025 11:28:50 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E6=94=B6=E8=97=8F=20=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=20=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mapper/course/CourseCollectDao.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mapper/course/CourseCollectDao.xml b/src/main/resources/mapper/course/CourseCollectDao.xml index 314782d4..18b942f7 100644 --- a/src/main/resources/mapper/course/CourseCollectDao.xml +++ b/src/main/resources/mapper/course/CourseCollectDao.xml @@ -33,7 +33,8 @@ SELECT c1.course_id as courseId, - c1.course_details_id as courseDetailsId + c1.course_details_id as courseDetailsId, + c1.update_time as updateTime FROM `course_collect` c1 WHERE From 279eba7e420300ca790b4a9e255da4515635a34e Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 14 Jan 2025 11:29:07 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E6=94=B6=E8=97=8F=20=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=20=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mapper/course/CourseCollectDao.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/resources/mapper/course/CourseCollectDao.xml b/src/main/resources/mapper/course/CourseCollectDao.xml index 18b942f7..202f95c0 100644 --- a/src/main/resources/mapper/course/CourseCollectDao.xml +++ b/src/main/resources/mapper/course/CourseCollectDao.xml @@ -41,7 +41,6 @@ WHERE c1.classify = 3 AND c1.user_id = #{userId} - order by c1.update_time desc