ldz пре 1 месец
родитељ
комит
645542b5ab

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

@@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -39,8 +40,8 @@ public class LawyerConsultationOrder extends Model<LawyerConsultationOrder> {
     private Integer lawyerUserId;
 
     @ApiModelProperty(value = "法律问题场景ID")
-    @TableField("problem_scenar_id")
-    private Integer problemScenarId;
+    @TableField("problem_scenario_id")
+    private Integer problemScenarioId;
 
     @ApiModelProperty(value = "问题描述")
     @TableField("problem_description")
@@ -48,7 +49,7 @@ public class LawyerConsultationOrder extends Model<LawyerConsultationOrder> {
 
     @ApiModelProperty(value = "订单金额,单位分")
     @TableField("order_amount")
-    private Integer orderAmount;
+    private BigDecimal orderAmount;
 
     @ApiModelProperty(value = "咨询费用,单位分")
     @TableField("consultation_fee")

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

@@ -8,7 +8,7 @@
         <result column="order_number" property="orderNumber" />
         <result column="client_user_id" property="clientUserId" />
         <result column="lawyer_user_id" property="lawyerUserId" />
-        <result column="problem_scenar_id" property="problemScenarId" />
+        <result column="problem_scenario_id" property="problemScenarioId" />
         <result column="problem_description" property="problemDescription" />
         <result column="order_amount" property="orderAmount" />
         <result column="consultation_fee" property="consultationFee" />

+ 42 - 0
alien-store/src/main/java/shop/alien/store/controller/LawyerConsultationOrderController.java

@@ -11,6 +11,7 @@ import shop.alien.entity.store.vo.LawyerConsultationOrderVO;
 import shop.alien.store.service.LawyerConsultationOrderService;
 import shop.alien.util.myBaticsPlus.QueryBuilder;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -166,5 +167,46 @@ public class LawyerConsultationOrderController {
                 lawyerId, question, sessionId, clientUserId, problemScenarId);
         return consultationOrderService.startConsultation(lawyerId, question, sessionId, clientUserId, problemScenarId);
     }
+
+
+
+    @ApiOperation("立即咨询")
+    @ApiOperationSupport(order = 9)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "clientUserId", value = "客户端用户ID", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "lawyerUserId", value = "律师用户ID", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "problemScenarioId", value = "法律问题场景ID", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "problemDescription", value = "问题描述", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "orderAmount", value = "订单金额,单位分", dataType = "Decimal", paramType = "query"),
+//            @ApiImplicitParam(name = "lawyerName", value = "律师姓名(支持模糊查询,关联查询)", dataType = "String", paramType = "query"),
+//            @ApiImplicitParam(name = "consultationFee", value = "咨询费用,单位分", dataType = "Integer", paramType = "query"),
+//            @ApiImplicitParam(name = "startTime", value = "咨询开始时间", dataType = "Date", paramType = "query"),
+//            @ApiImplicitParam(name = "endTime", value = "咨询结束时间", dataType = "Date", paramType = "query"),
+//            @ApiImplicitParam(name = "validityPeriod", value = "订单有效期", dataType = "Date", paramType = "query"),
+//            @ApiImplicitParam(name = "orderStatus", value = "订单状态, 0:待支付, 1:已支付, 2:进行中, 3:已完成, 4:已取消", dataType = "Integer", paramType = "query"),
+//            @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) {
+        log.info("LawyerConsultationOrderController.consultNow?clientUserId={},lawyerUserId={},problemScenarioId={},problemScenarioId={},orderAmount{}",
+                clientUserId, lawyerUserId, problemScenarioId, problemDescription, orderAmount);
+        return consultationOrderService.consultNow(clientUserId, lawyerUserId, problemScenarioId, problemDescription, orderAmount);
+    }
+
+
+    @ApiOperation("是否支付成功更改订单表状态")
+    @ApiOperationSupport(order = 10)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "律师订单表id", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "paymentStatus", value = "支付状态, 0:未支付, 1:已支付", dataType = "Integer", paramType = "query", required = true),
+            @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) {
+        log.info("LawyerConsultationOrderController.consultNow?id{},paymentStatus{},orderStatus{}",
+               id, paymentStatus, orderStatus);
+        return consultationOrderService.payStatus(id, paymentStatus, orderStatus);
+    }
+
 }
 

+ 6 - 0
alien-store/src/main/java/shop/alien/store/service/LawyerConsultationOrderService.java

@@ -6,6 +6,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.LawyerConsultationOrder;
 import shop.alien.entity.store.vo.LawyerConsultationOrderVO;
 
+import java.math.BigDecimal;
 import java.util.Map;
 
 /**
@@ -66,5 +67,10 @@ public interface LawyerConsultationOrderService extends IService<LawyerConsultat
      * @return R<Map<String, Object>>
      */
     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<LawyerConsultationOrder> payStatus(Integer id,Integer paymentStatus,Integer orderStatus);
 }
 

+ 53 - 1
alien-store/src/main/java/shop/alien/store/service/impl/LawyerConsultationOrderServiceImpl.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.math.RandomUtils;
+import org.apache.commons.lang.time.DateUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.beans.BeanUtils;
@@ -18,6 +20,7 @@ import shop.alien.mapper.LawyerConsultationOrderMapper;
 import shop.alien.store.service.LawyerConsultationOrderService;
 import shop.alien.store.service.LawyerUserService;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -192,7 +195,7 @@ public class LawyerConsultationOrderServiceImpl extends ServiceImpl<LawyerConsul
         LawyerConsultationOrder order = new LawyerConsultationOrder();
         order.setLawyerUserId(lawyerId);
         order.setClientUserId(clientUserId);
-        order.setProblemScenarId(problemScenarId);
+        order.setProblemScenarioId(problemScenarId);
         order.setProblemDescription(question);
         order.setOrderStatus(0);  // 待支付
         order.setPaymentStatus(0);  // 未支付
@@ -211,5 +214,54 @@ public class LawyerConsultationOrderServiceImpl extends ServiceImpl<LawyerConsul
 
         return R.data(result);
     }
+
+
+    @Override
+    public R<LawyerConsultationOrder> 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();
+        order.setClientUserId(clientUserId);
+        order.setLawyerUserId(lawyerUserId);
+        order.setProblemScenarioId(problemScenarioId);
+        order.setProblemDescription(problemDescription);
+        order.setOrderAmount(orderAmount);
+        order.setOrderStatus(0);
+        order.setPaymentStatus(0);
+        order.setOrderTime(new Date());
+        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) {
+            return R.data(order);
+        }
+        return R.fail("新增失败");
+    }
+
+
+    @Override
+    public R<LawyerConsultationOrder> 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("失败");
+    }
+
 }