jinshihui před 1 měsícem
rodič
revize
bdeeffaff4

+ 14 - 1
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/CancelOrderApplicationController.java

@@ -1,6 +1,8 @@
 package com.ylx.web.controller.massage;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ylx.common.core.controller.BaseController;
@@ -21,6 +23,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -111,7 +114,7 @@ public class CancelOrderApplicationController extends BaseController {
             if (StringUtils.isBlank(id)) {
                 return R.fail("ID不能为空");
             }
-            //通过ID查询退单申请
+            //通过主键ID查询退单申请
             CancelOrderApplication application = cancelOrderApplicationService.getById(id);
             String orderId = application.getOrderId();
             TOrder order = orderService.getById(orderId);
@@ -132,6 +135,16 @@ public class CancelOrderApplicationController extends BaseController {
             if (application != null) {
                 // 设置服务时长(分钟)
                 vo.setServiceDuration(Integer.valueOf(application.getServiceDuration()));
+                JSONArray objects = order.getcGoods();
+                // 遍历商品列表,累加项目金额
+                BigDecimal projectPrice = BigDecimal.ZERO;
+                for (int i = 0; i < objects.size(); i++) {
+                    JSONObject object = objects.getJSONObject(i);
+                    BigDecimal price = object.getBigDecimal("dPrice");
+                    projectPrice = projectPrice.add(price);
+                }
+                // 设置项目金额
+                vo.setProjectPrice(projectPrice);
             }
             return R.ok(vo);
         } catch (Exception e) {

+ 4 - 3
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/TOrderController.java

@@ -1,6 +1,7 @@
 package com.ylx.web.controller.massage;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ylx.common.annotation.Log;
@@ -163,11 +164,11 @@ public class TOrderController extends BaseController {
     //@Log(title = "取消订单申请", businessType = BusinessType.UPDATE)
     @ApiOperation("退单申请")
     @RequestMapping(value = "wx/applyCancle", method = RequestMethod.POST)
-    public R applyCancle(@RequestBody TOrder order) {
+    public R applyCancle(@RequestBody JSONObject jsonObject) {
         try {
-            log.info("收到退单申请请求,订单ID:{},退单原因:{}", order.getcId(), order.getcNote());
+            log.info("收到退单申请请求,订单ID:{},退单原因:{}", jsonObject.getString("cId"), jsonObject.getString("cancelReason"));
             // 调用服务层处理退单申请
-            orderService.applyCancle(order);
+            orderService.applyCancle(jsonObject.getString("cId"), jsonObject.getString("cancelReason"));
             // 返回成功提示
             return R.ok("您的申请已提交,客服审核中,请注意接听客服电话:19936963696");
         } catch (ServiceException s) {

+ 1 - 1
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/TechnicianMomentController.java

@@ -90,8 +90,8 @@ public class TechnicianMomentController extends BaseController {
     @GetMapping("/nearby")
     @ApiOperation("获取附近动态列表")
     public R<List<MomentListVO>> getNearbyMoments(
-            @ApiParam("用户纬度") @RequestParam java.math.BigDecimal latitude,
             @ApiParam("用户经度") @RequestParam java.math.BigDecimal longitude,
+            @ApiParam("用户纬度") @RequestParam java.math.BigDecimal latitude,
             @ApiParam("页码") @RequestParam(defaultValue = "1") Integer pageNum,
             @ApiParam("每页数量") @RequestParam(defaultValue = "10") Integer pageSize) {
         try {

+ 1 - 1
nightFragrance-admin/src/main/resources/application-pro.yml

@@ -59,7 +59,7 @@ spring:
     druid:
       # 主库数据源
       master:
-         url: jdbc:mysql://rm-d7q5a6qathaxdzhw.mysql.zhangbei.rds.aliyuncs.com:3366/night_fragrance?serverTimezone=Asia/Shanghai&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true
+        url: jdbc:mysql://rm-d7q5a6qathaxdzhw.mysql.zhangbei.rds.aliyuncs.com:3306/night_fragrance?serverTimezone=Asia/Shanghai&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true
         username: sxzgkj
         password: 'Iy$@$koH@oURxyvw'
       # 从库数据源

+ 4 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/domain/CancelOrderApplication.java

@@ -3,6 +3,7 @@ package com.ylx.massage.domain;
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -64,6 +65,7 @@ public class CancelOrderApplication implements Serializable {
      * 技术姓名
      */
     @TableField(exist = false)
+    @JsonProperty("cName")
     private String cName;
 
     /**
@@ -75,6 +77,7 @@ public class CancelOrderApplication implements Serializable {
      * 技师昵称
      */
     @TableField(exist = false)
+    @JsonProperty("cNickName")
     private String cNickName;
 
      /**
@@ -86,6 +89,7 @@ public class CancelOrderApplication implements Serializable {
      * 技师电话
      */
     @TableField(exist = false)
+    @JsonProperty("cPhone")
     private String cPhone;
 
     /**

+ 10 - 8
nightFragrance-massage/src/main/java/com/ylx/massage/domain/TOrder.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ylx.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -456,14 +457,6 @@ public class TOrder implements Serializable {
     @ApiModelProperty("剩余支付时间(秒)")
     private Long remainingTime;
 
-    /**
-     * 技师昵称
-     * 非数据库字段,用于关联查询技师昵称
-     */
-    @TableField(exist = false)
-    @ApiModelProperty("技师昵称")
-    private String cNickName;
-
     /**
      * 技师姓名
      * 非数据库字段,用于关联查询技师姓名
@@ -473,6 +466,15 @@ public class TOrder implements Serializable {
     @ApiModelProperty("技师姓名")
     private String jsName;
 
+    /**
+     * 技师昵称
+     * 非数据库字段,用于关联查询技师昵称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("技师昵称")
+    @JsonProperty("cNickName")
+    private String cNickName;
+
     /**
      * 技师电话
      * 非数据库字段,用于关联查询技师电话

+ 7 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/domain/vo/CancelOrderApplicationDetailVo.java

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ylx.massage.domain.TOrder;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 /**
  * 退单申请详情VO
  */
@@ -25,4 +27,9 @@ public class CancelOrderApplicationDetailVo extends TOrder {
      * 服务时长(分钟)
      */
      private Integer serviceDuration;
+
+    /**
+     * 项目金额
+     */
+     private BigDecimal projectPrice;
 }

+ 1 - 1
nightFragrance-massage/src/main/java/com/ylx/massage/mapper/TechnicianMomentMapper.java

@@ -27,7 +27,7 @@ public interface TechnicianMomentMapper extends BaseMapper<TechnicianMoment> {
     /**
      * 查询附近动态(10km内,按日期倒序,同一天按距离排序)
      */
-    List<TechnicianMoment> selectNearbyMoments(@Param("latitude") BigDecimal latitude, @Param("longitude") BigDecimal longitude, @Param("limit") Integer limit, @Param("offset") Integer offset);
+    List<TechnicianMoment> selectNearbyMoments(Page<TechnicianMoment> page, @Param("longitude") BigDecimal longitude,@Param("latitude") BigDecimal latitude);
 
     /**
      * 增加浏览量

+ 3 - 2
nightFragrance-massage/src/main/java/com/ylx/massage/service/ITechnicianMomentService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ylx.massage.domain.vo.MomentDetailVO;
 import com.ylx.massage.domain.vo.MomentListVO;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -33,13 +34,13 @@ public interface ITechnicianMomentService extends IService<com.ylx.massage.domai
     /**
      * 查询附近动态列表(10km内,按日期倒序,同一天按距离排序)
      *
-     * @param latitude  用户纬度
      * @param longitude 用户经度
+     * @param latitude  用户纬度
      * @param pageNum   页码
      * @param pageSize  每页数量
      * @return 动态列表
      */
-    List<MomentListVO> getNearbyMoments(java.math.BigDecimal latitude, java.math.BigDecimal longitude, Integer pageNum, Integer pageSize);
+    List<MomentListVO> getNearbyMoments(BigDecimal longitude, BigDecimal latitude, Integer pageNum, Integer pageSize);
 
     /**
      * 查询动态详情(浏览量+1)

+ 3 - 2
nightFragrance-massage/src/main/java/com/ylx/massage/service/TOrderService.java

@@ -89,10 +89,11 @@ public interface TOrderService extends IService<TOrder> {
 
     /**
      * 申请取消订单(退单申请)
-     * @param order 订单对象,需要包含cId(订单ID)和退单原因
+     * @param cId 订单ID
+     * @param cancelReason 退单原因
      * @return 申请结果
      */
-    Boolean applyCancle(TOrder order);
+    Boolean applyCancle(String cId, String cancelReason);
 
     /**
      * 取消退单申请

+ 6 - 6
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TOrderServiceImpl.java

@@ -1275,19 +1275,19 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean applyCancle(TOrder order) {
-        log.info("开始处理退单申请,订单ID:{}", order.getcId());
+    public Boolean applyCancle(String cId, String cancelReason) {
+        log.info("开始处理退单申请,订单ID:{}", cId);
 
         // 1. 参数校验
-        if (StringUtils.isBlank(order.getcId())) {
+        if (StringUtils.isBlank(cId)) {
             throw new ServiceException("订单ID不能为空");
         }
-        if (StringUtils.isBlank(order.getcNote())) {
+        if (StringUtils.isBlank(cancelReason)) {
             throw new ServiceException("退单原因不能为空");
         }
 
         // 2. 查询订单信息
-        TOrder existingOrder = this.getById(order.getcId());
+        TOrder existingOrder = this.getById(cId);
         if (existingOrder == null) {
             throw new ServiceException("订单不存在");
         }
@@ -1295,7 +1295,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         // 3. 创建退单申请记录(内部会校验订单状态和其他业务规则)
         String applicationId;
         try {
-            applicationId = cancelOrderApplicationService.createApplication(existingOrder.getcId(), order.getcNote());
+            applicationId = cancelOrderApplicationService.createApplication(existingOrder.getcId(), cancelReason);
             log.info("退单申请记录创建成功,申请ID:{}", applicationId);
         } catch (ServiceException e) {
             log.error("创建退单申请失败:{}", e.getMessage());

+ 9 - 5
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TechnicianMomentServiceImpl.java

@@ -108,16 +108,20 @@ public class TechnicianMomentServiceImpl extends ServiceImpl<TechnicianMomentMap
 
     /**
      * 查询附近动态列表(10km内,按日期倒序,同一天按距离排序)
+     *
+     * @param longitude 经度
+     * @param latitude  纬度
+     * @param pageNum   页码,默认1
+     * @param pageSize  每页数量,默认10
+     * @return R<List<MomentListVO>> 动态列表
      */
     @Override
-    public List<MomentListVO> getNearbyMoments(BigDecimal latitude, BigDecimal longitude, Integer pageNum, Integer pageSize) {
+    public List<MomentListVO> getNearbyMoments(BigDecimal longitude, BigDecimal latitude, Integer pageNum, Integer pageSize) {
         if (latitude == null || longitude == null) {
             throw new ServiceException("地理位置信息不能为空");
         }
-
-        int offset = (pageNum - 1) * pageSize;
-        List<TechnicianMoment> moments = momentMapper.selectNearbyMoments(latitude, longitude, pageSize, offset);
-
+        Page<TechnicianMoment> page = new Page<>(pageNum, pageSize);
+        List<TechnicianMoment> moments = momentMapper.selectNearbyMoments(page, latitude, longitude);
         if (moments == null || moments.isEmpty()) {
             return new ArrayList<>();
         }

+ 0 - 2
nightFragrance-massage/src/main/resources/mapper/massage/TechnicianMomentMapper.xml

@@ -76,10 +76,8 @@
                 POINT(#{longitude}, #{latitude})
             ) / 1000 &lt;= 10
         ORDER BY
-            DATE(tm.publish_time) DESC,
             distance ASC,
             tm.publish_time DESC
-        LIMIT #{limit} OFFSET #{offset}
     </select>
 
     <!-- 增加浏览量 -->