ldz 1 сар өмнө
parent
commit
78787cf4a9

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerConsultationOrder.java

@@ -118,5 +118,9 @@ public class LawyerConsultationOrder extends Model<LawyerConsultationOrder> {
     @ApiModelProperty(value = "修改人ID")
     @TableField("updated_user_id")
     private Integer updatedUserId;
+
+    @ApiModelProperty(value = "支付宝订单编号")
+    @TableField("alipay_no")
+    private String alipayNo;
 }
 

+ 100 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerConsultationOrderDto.java

@@ -0,0 +1,100 @@
+package shop.alien.entity.store.dto;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 咨询订单
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_consultation_order")
+@ApiModel(value = "LawyerConsultationOrder对象", description = "咨询订单")
+public class LawyerConsultationOrderDto extends Model<LawyerConsultationOrderDto> {
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "律师用户ID")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "法律问题场景ID")
+    private Integer problemScenarioId;
+
+    @ApiModelProperty(value = "问题描述")
+    private String problemDescription;
+
+    @ApiModelProperty(value = "订单金额,单位分")
+    private BigDecimal orderAmount;
+
+    @ApiModelProperty(value = "咨询费用,单位分")
+    private Integer consultationFee;
+
+    @ApiModelProperty(value = "咨询开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty(value = "咨询结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty(value = "订单状态, 0:待支付, 1:已支付, 2:进行中, 3:已完成, 4:已取消")
+    private Integer orderStatus;
+
+    @ApiModelProperty(value = "支付状态, 0:未支付, 1:已支付")
+    private Integer paymentStatus;
+
+    @ApiModelProperty(value = "下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+
+    @ApiModelProperty(value = "支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date paymentTime;
+
+    @ApiModelProperty(value = "订单有效期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date validityPeriod;
+
+    @ApiModelProperty(value = "用户评分, 1-5星")
+    private Integer rating;
+
+    @ApiModelProperty(value = "用户评价内容")
+    private String comment;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "创建人ID")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    private Integer updatedUserId;
+}
+

+ 65 - 0
alien-entity/src/main/java/shop/alien/mapper/LawyerConsultationOrderMapper.java

@@ -3,12 +3,19 @@ package shop.alien.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import shop.alien.entity.store.LawyerConsultationOrder;
 import shop.alien.entity.store.vo.LawyerConsultationOrderVO;
 
 import java.util.List;
+import shop.alien.entity.store.dto.LawyerConsultationOrderDto;
+import shop.alien.entity.store.vo.LifeUserExpertOrderVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -59,5 +66,63 @@ public interface LawyerConsultationOrderMapper extends BaseMapper<LawyerConsulta
             @Param("lawyerUserIds") List<Integer> lawyerUserIds
     );
 
+
+    //写一个insertOrder的插入方法根据order的入参进行插入
+    @Insert("INSERT INTO `alien`.`lawyer_consultation_order`" +
+            " (`id`, " +
+            "`order_number`," +
+            " `client_user_id`," +
+            " `lawyer_user_id`, " +
+            "`problem_scenario_id`," +
+            " `problem_description`," +
+            " `order_amount`, " +
+            "`consultation_fee`, " +
+            "`start_time`," +
+            " `end_time`," +
+            " `order_status`," +
+            " `payment_status`, " +
+            "`order_time`, " +
+            "`payment_time`," +
+            " `validity_period`," +
+            " `rating`, " +
+            "`comment`, " +
+            "`delete_flag`," +
+            " `created_time`," +
+            " `created_user_id`," +
+            " `updated_time`," +
+            " `updated_user_id`) " +
+            "VALUES" +
+            " (" +
+            " #{id}, " +
+            "#{orderNumber}," +
+            " #{clientUserId}," +
+            " #{lawyerUserId}, " +
+            "#{problemScenarioId}," +
+            " #{problemDescription}," +
+            " #{orderAmount}, " +
+            "#{consultationFee}, " +
+            "#{startTime}," +
+            " #{endTime}," +
+            " #{orderStatus}," +
+            " #{paymentStatus}, " +
+            "#{orderTime}, " +
+            "#{paymentTime}," +
+            " #{validityPeriod}," +
+            " #{rating}, " +
+            "#{comment}, " +
+            "#{deleteFlag}," +
+            " #{createdTime}," +
+            " #{createdUserId}," +
+            " #{updatedTime}," +
+            " #{updatedUserId})")
+            int insertOrder(LawyerConsultationOrderDto order);
+
+
+
+
+
+
+
+
 }
 

+ 2 - 1
alien-entity/src/main/resources/mapper/LawyerConsultationOrderMapper.xml

@@ -26,6 +26,7 @@
         <result column="created_user_id" property="createdUserId" />
         <result column="updated_time" property="updatedTime" />
         <result column="updated_user_id" property="updatedUserId" />
+        <result column="alipay_no" property="alipayNo" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -33,7 +34,7 @@
         id, order_number, client_user_id, lawyer_user_id, problem_scenar_id, problem_description,
         order_amount, consultation_fee, start_time, end_time, order_status, payment_status,
         order_time,payment_time, validity_period, rating, comment, delete_flag, created_time,
-        created_user_id, updated_time, updated_user_id
+        created_user_id, updated_time, updated_user_id, alipay_no
     </sql>
 
     <!-- 訂單VO結果映射,包含律師信息 -->

+ 3 - 2
alien-store/src/main/java/shop/alien/store/controller/LawyerConsultationOrderController.java

@@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LawyerConsultationOrder;
+import shop.alien.entity.store.dto.LawyerConsultationOrderDto;
 import shop.alien.entity.store.vo.LawyerConsultationOrderVO;
 import shop.alien.store.service.LawyerConsultationOrderService;
 import shop.alien.util.myBaticsPlus.QueryBuilder;
@@ -187,7 +188,7 @@ public class LawyerConsultationOrderController {
 //            @ApiImplicitParam(name = "paymentStatus", value = "支付状态, 0:未支付, 1:已支付", dataType = "Integer", paramType = "query"),
     })
     @PostMapping("/consultNow")
-    public R<LawyerConsultationOrder> startConsultation(Integer clientUserId,Integer lawyerUserId,Integer problemScenarioId ,String problemDescription , BigDecimal orderAmount) {
+    public R<LawyerConsultationOrderDto> startConsultation(Integer clientUserId,Integer lawyerUserId,Integer problemScenarioId ,String problemDescription , BigDecimal orderAmount) {
         log.info("LawyerConsultationOrderController.consultNow?clientUserId={},lawyerUserId={},problemScenarioId={},problemScenarioId={},orderAmount{}",
                 clientUserId, lawyerUserId, problemScenarioId, problemDescription, orderAmount);
         return consultationOrderService.consultNow(clientUserId, lawyerUserId, problemScenarioId, problemDescription, orderAmount);
@@ -202,7 +203,7 @@ public class LawyerConsultationOrderController {
             @ApiImplicitParam(name = "orderStatus", value = "订单状态, 0:待支付, 1:已支付, 2:进行中, 3:已完成, 4:已取消", dataType = "Integer", paramType = "query"),
     })
     @PostMapping("/payStatus")
-    public R<LawyerConsultationOrder> payStatus(Integer id,Integer paymentStatus,Integer orderStatus) {
+    public R<LawyerConsultationOrderDto> payStatus(Integer id, Integer paymentStatus, Integer orderStatus) {
         log.info("LawyerConsultationOrderController.consultNow?id{},paymentStatus{},orderStatus{}",
                id, paymentStatus, orderStatus);
         return consultationOrderService.payStatus(id, paymentStatus, orderStatus);

+ 3 - 2
alien-store/src/main/java/shop/alien/store/service/LawyerConsultationOrderService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LawyerConsultationOrder;
+import shop.alien.entity.store.dto.LawyerConsultationOrderDto;
 import shop.alien.entity.store.vo.LawyerConsultationOrderVO;
 
 import java.math.BigDecimal;
@@ -69,9 +70,9 @@ public interface LawyerConsultationOrderService extends IService<LawyerConsultat
     R<Map<String, Object>> startConsultation(Integer lawyerId, String question, String sessionId, Integer clientUserId, Integer problemScenarId);
 
 
-    R<LawyerConsultationOrder> consultNow(Integer clientUserId,Integer lawyerUserId,Integer problemScenarioId ,String problemDescription , BigDecimal orderAmount);
+    R<LawyerConsultationOrderDto> consultNow(Integer clientUserId, Integer lawyerUserId, Integer problemScenarioId , String problemDescription , BigDecimal orderAmount);
 
-    R<LawyerConsultationOrder> payStatus(Integer id,Integer paymentStatus,Integer orderStatus);
+    R<LawyerConsultationOrderDto> payStatus(Integer id,Integer paymentStatus,Integer orderStatus);
 
 
     /**

+ 45 - 19
alien-store/src/main/java/shop/alien/store/service/impl/LawyerConsultationOrderServiceImpl.java

@@ -19,6 +19,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.LawyerConsultationOrder;
 import shop.alien.entity.store.LawyerServiceArea;
 import shop.alien.entity.store.LawyerUser;
+import shop.alien.entity.store.dto.LawyerConsultationOrderDto;
 import shop.alien.entity.store.vo.LawyerConsultationOrderVO;
 import shop.alien.entity.store.vo.LifeCouponVo;
 import shop.alien.mapper.LawyerConsultationOrderMapper;
@@ -29,6 +30,8 @@ import shop.alien.store.service.LawyerUserService;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -51,7 +54,7 @@ public class LawyerConsultationOrderServiceImpl extends ServiceImpl<LawyerConsul
 
     @Override
     public R<IPage<LawyerConsultationOrderVO>> getConsultationOrderList(int pageNum, int pageSize, String orderNumber,
-                                                                 Integer clientUserId, Integer lawyerUserId, String lawyerName, Integer orderStatus) {
+                                                                        Integer clientUserId, Integer lawyerUserId, String lawyerName, Integer orderStatus) {
         log.info("LawyerConsultationOrderServiceImpl.getConsultationOrderList?pageNum={},pageSize={},orderNumber={},clientUserId={},lawyerUserId={},lawyerName={},orderStatus={}",
                 pageNum, pageSize, orderNumber, clientUserId, lawyerUserId, lawyerName, orderStatus);
         
@@ -217,11 +220,11 @@ public class LawyerConsultationOrderServiceImpl extends ServiceImpl<LawyerConsul
 
 
     @Override
-    public R<LawyerConsultationOrder> consultNow(Integer clientUserId, Integer lawyerUserId, Integer problemScenarioId, String problemDescription, BigDecimal orderAmount) {
+    public R<LawyerConsultationOrderDto> consultNow(Integer clientUserId, Integer lawyerUserId, Integer problemScenarioId, String problemDescription, BigDecimal orderAmount) {
         log.info("LawyerConsultationOrderServiceImpl.consultNow?clientUserId={},lawyerUserId={},problemScenarioId={},problemDescription={},orderAmount={}",
                 clientUserId, lawyerUserId, problemScenarioId, problemDescription, orderAmount);
 
-        LawyerConsultationOrder order = new LawyerConsultationOrder();
+        LawyerConsultationOrderDto order = new LawyerConsultationOrderDto();
         order.setClientUserId(clientUserId);
         order.setLawyerUserId(lawyerUserId);
         order.setProblemScenarioId(problemScenarioId);
@@ -230,15 +233,20 @@ public class LawyerConsultationOrderServiceImpl extends ServiceImpl<LawyerConsul
         order.setOrderStatus(0);
         order.setPaymentStatus(0);
         order.setOrderTime(new Date());
-        order.setValidityPeriod(DateUtils.addDays(new Date(), 7));
+//        order.setValidityPeriod(DateUtils.addDays(new Date(), 7));
         order.setCreatedTime(new Date());
         order.setUpdatedTime(new Date());
         order.setDeleteFlag(0);
         //订单编号想要LAW+年月日(8位数字)+随机5位数字这种格式的
         String orderNumber = "LAW" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%05d", RandomUtils.nextInt(100000));
         order.setOrderNumber(orderNumber);
-        boolean result = this.save(order);
-        if (result) {
+        int num = consultationOrderMapper.insertOrder(order);
+//        boolean result = this.save(order);
+//        if (result) {
+//            return R.data(order);
+//        }
+//        return R.fail("新增失败");
+        if (num >0){
             return R.data(order);
         }
         return R.fail("新增失败");
@@ -246,21 +254,39 @@ public class LawyerConsultationOrderServiceImpl extends ServiceImpl<LawyerConsul
 
 
     @Override
-    public R<LawyerConsultationOrder> payStatus(Integer id, Integer paymentStatus, Integer orderStatus) {
+    public R<LawyerConsultationOrderDto> payStatus(Integer id, Integer paymentStatus, Integer orderStatus) {
         log.info("LawyerConsultationOrderServiceImpl.payStatus?id={},paymentStatus={},orderStatus={}",
                 id, paymentStatus, orderStatus);
-                LawyerConsultationOrder order = new LawyerConsultationOrder();
-                order.setId(id);
-                order.setPaymentStatus(paymentStatus);
-                order.setOrderStatus(orderStatus);
-                order.setUpdatedTime(new Date());
-                order.setDeleteFlag(0);
-                order.setPaymentTime(new Date());
-                boolean result = this.updateById(order);
-                if (result) {
-                    return R.data(order);
-                }
-                return R.fail("失败");
+
+        //支付宝单笔转账接口
+
+              
+
+
+
+
+
+
+        LawyerConsultationOrderDto order = new LawyerConsultationOrderDto();
+        order.setId(id);
+        order.setPaymentStatus(paymentStatus);
+        order.setOrderStatus(orderStatus);
+        order.setUpdatedTime(new Date());
+        order.setDeleteFlag(0);
+        order.setPaymentTime(new Date());
+        order.setStartTime(new Date());
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime validityDateTime = now.plusDays(7)
+                .withHour(0)
+                .withMinute(0)
+                .withSecond(0)
+                .withNano(0);
+        order.setValidityPeriod(Date.from(validityDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+//        boolean result = this.updateById(order);
+        if (true) {
+            return R.data(order);
+        }
+        return R.fail("失败");
     }
 
     @Override