Browse Source

商城接口

liujunchi 2 years ago
parent
commit
760822033e
26 changed files with 756 additions and 39 deletions
  1. 5 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java
  2. 3 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/StudentFeignService.java
  3. 64 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/StudentWrapper.java
  4. 7 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java
  5. 1 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/StudentFeignServiceFallback.java
  6. 2 0
      cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/OmsOrderMapper.java
  7. 8 0
      cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/PmsProductMapper.java
  8. 1 0
      cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/PmsSkuStockMapper.java
  9. 7 0
      cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/OmsOrderMapper.xml
  10. 5 0
      cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/PmsProductMapper.xml
  11. 4 0
      cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/PmsSkuStockMapper.xml
  12. 88 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/open/OpenShareController.java
  13. 6 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dao/PortalOrderDao.java
  14. 2 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dao/PortalProductDao.java
  15. 185 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/OrderCreate.java
  16. 25 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java
  17. 18 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/PmsPortalProductService.java
  18. 4 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/UmsMemberService.java
  19. 168 4
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java
  20. 54 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java
  21. 28 18
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UmsMemberServiceImpl.java
  22. 20 0
      cooleshow-mall/mall-portal/src/main/resources/config/mybatis/PortalOrderDao.xml
  23. 21 0
      cooleshow-mall/mall-portal/src/main/resources/config/mybatis/PortalProductDao.xml
  24. 13 11
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/AdminClient.java
  25. 12 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  26. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/StudentWrapper.java

+ 5 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.api.feign;
 import com.yonge.cooleshow.api.feign.dto.CouponInfoApi;
 import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
 import com.yonge.cooleshow.api.feign.dto.StudentApi;
+import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
 import com.yonge.cooleshow.api.feign.dto.TeacherApi;
 import com.yonge.cooleshow.api.feign.dto.UserFriendInfoVO;
 import com.yonge.cooleshow.api.feign.fallback.AdminFeignServiceFallback;
@@ -149,4 +150,8 @@ public interface AdminFeignService {
      */
     @GetMapping("/task/batchSending")
     HttpResponseResult<Boolean> batchSending();
+
+
+    @PostMapping("/open/adminClient/unionStudent")
+    HttpResponseResult<StudentWrapper.UnionStudentResp> unionStudent(@RequestBody StudentWrapper.UnionStudent info);
 }

+ 3 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/StudentFeignService.java

@@ -1,11 +1,14 @@
 package com.yonge.cooleshow.api.feign;
 
+import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
 import com.yonge.cooleshow.api.feign.fallback.StudentFeignServiceFallback;
 import com.yonge.cooleshow.common.constant.AppConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.feign.config.FeignConfiguration;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 @FeignClient(name = AppConstant.APPLICATION_STUDENT + AppConstant.SERVER, configuration = FeignConfiguration.class, fallback = StudentFeignServiceFallback.class)
 public interface StudentFeignService {

+ 64 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/StudentWrapper.java

@@ -0,0 +1,64 @@
+package com.yonge.cooleshow.api.feign.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 学生封装类
+ * Created by Eric.Shang on 2023/1/6.
+ */
+public class StudentWrapper {
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class UnionStudent implements Serializable {
+
+        private Long unionId;
+
+        private String token;
+
+        private String mobile;
+
+        private String subjectName;
+
+        private String username;
+
+        private Integer gender;
+
+        private Boolean tokenCheck;
+    }
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class UnionStudentResp implements Serializable {
+
+        private Long unionId;
+
+        private String mobile;
+
+        private Long userId;
+
+        private String username;
+
+        private Boolean updateFlag;
+
+        private Object sysUser;
+        public UnionStudentResp userId(Long userId) {
+            this.userId = userId;
+            return this;
+        }
+
+        public UnionStudentResp username(String username) {
+            this.username = username;
+            return this;
+        }
+    }
+}

+ 7 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -4,6 +4,7 @@ import com.yonge.cooleshow.api.feign.AdminFeignService;
 import com.yonge.cooleshow.api.feign.dto.CouponInfoApi;
 import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
 import com.yonge.cooleshow.api.feign.dto.StudentApi;
+import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
 import com.yonge.cooleshow.api.feign.dto.TeacherApi;
 import com.yonge.cooleshow.api.feign.dto.UserFriendInfoVO;
 import com.yonge.cooleshow.common.entity.ContractDto;
@@ -131,4 +132,10 @@ public class AdminFeignServiceFallback implements AdminFeignService {
     public HttpResponseResult<Boolean> batchSending() {
         return null;
     }
+
+
+    @Override
+    public HttpResponseResult<StudentWrapper.UnionStudentResp> unionStudent(StudentWrapper.UnionStudent info) {
+        return null;
+    }
 }

+ 1 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/StudentFeignServiceFallback.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.api.feign.fallback;
 
 import com.yonge.cooleshow.api.feign.StudentFeignService;
+import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import org.springframework.stereotype.Component;
 

+ 2 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/OmsOrderMapper.java

@@ -27,4 +27,6 @@ public interface OmsOrderMapper {
     int updateByPrimaryKeySelective(OmsOrder record);
 
     int updateByPrimaryKey(OmsOrder record);
+
+    OmsOrder getByOrderSn(String orderNo);
 }

+ 8 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/PmsProductMapper.java

@@ -37,4 +37,12 @@ public interface PmsProductMapper {
     int updateByPrimaryKey(PmsProduct record);
 
     int lockStock(@Param("productId") Long productId, @Param("sum") int sum);
+
+    /**
+     * 解锁商品锁定库存
+     *
+     * @param productId  商品id
+     * @param num 解锁数量
+     */
+    int unLockStock(@Param("productId") Long productId, @Param("sum") int sum);
 }

+ 1 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/PmsSkuStockMapper.java

@@ -39,4 +39,5 @@ public interface PmsSkuStockMapper {
      */
     int lockStock(@Param("productSkuId") Long productSkuId, @Param("quantity") Integer quantity);
 
+    int unLockStock(@Param("productSkuId") Long productSkuId, @Param("quantity") Integer quantity);
 }

+ 7 - 0
cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/OmsOrderMapper.xml

@@ -870,4 +870,11 @@
       modify_time = #{modifyTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>
+
+  <select id="getByOrderSn" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from oms_order
+    where order_sn = #{orderSn}
+  </select>
 </mapper>

+ 5 - 0
cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/PmsProductMapper.xml

@@ -923,4 +923,9 @@
   <update id="lockStock">
     update pms_product set lock_stock = lock_stock + #{sum} where  id = #{productId} and stock &gt;= ( lock_stock + #{sum})
   </update>
+
+  <update id="unLockStock">
+
+    update pms_product set lock_stock = lock_stock - #{sum} where  id = #{productId} and lock_stock &gt;= #{sum}
+    </update>
 </mapper>

+ 4 - 0
cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/PmsSkuStockMapper.xml

@@ -307,4 +307,8 @@
   <update id="lockStock">
     update pms_sku_stock set lock_stock = lock_stock + #{quantity} where  id = #{productSkuId} and stock &gt;= ( lock_stock + #{quantity})
     </update>
+
+  <update id="unLockStock">
+    update pms_sku_stock set lock_stock = lock_stock - #{quantity} where  id = #{productSkuId} and  lock_stock &gt;= #{quantity}
+  </update>
 </mapper>

+ 88 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/open/OpenShareController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.portal.controller.open;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.api.R;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -10,8 +11,12 @@ import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mall.common.api.CommonResult;
 import com.yonge.cooleshow.mall.common.courier.domain.CourierInfo;
 import com.yonge.cooleshow.mall.common.courier.service.CourierService;
+import com.yonge.cooleshow.mbg.mapper.PmsSkuStockMapper;
+import com.yonge.cooleshow.mbg.model.OmsOrderCourier;
 import com.yonge.cooleshow.mbg.model.PmsProduct;
+import com.yonge.cooleshow.portal.domain.OmsOrderDetail;
 import com.yonge.cooleshow.portal.domain.PmsPortalProductDetail;
+import com.yonge.cooleshow.portal.dto.OrderCreate;
 import com.yonge.cooleshow.portal.dto.ProductSearch;
 import com.yonge.cooleshow.portal.dto.ShareProductVo;
 import com.yonge.cooleshow.portal.dto.ShareProfitParam;
@@ -27,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -45,9 +49,15 @@ public class OpenShareController extends BaseController {
     private PmsPortalProductService portalProductService;
 
     @Autowired
+    private PmsSkuStockMapper skuStockMapper;
+
+    @Autowired
     private OmsOrderCourierService orderCourierService;
 
     @Autowired
+    private OmsPortalOrderService portalOrderService;
+
+    @Autowired
     private CourierService courierService;
 
     @ApiOperation(value = "老师商品分享分润")
@@ -115,4 +125,81 @@ public class OpenShareController extends BaseController {
         return CommonResult.success(portalProductService.queryNameMap(goodsIds));
 
     }
+
+
+    /**
+     * 商品库存查询
+     * @param goodsSkuId 商品存储Id
+     * @return String
+     */
+    @GetMapping(value = "/product/stocks/{id}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public R<Integer> productStocks(@PathVariable(name = "id") Long goodsSkuId) {
+        log.info("商品库存查询 skuId:{}",goodsSkuId);
+        return R.ok(portalProductService.getProductStockAndSkuStock(goodsSkuId));
+
+    }
+
+    @PostMapping(value = "/product/stocksLock/{id}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public R<Boolean> productStocksLock(@PathVariable(name = "id") Long goodsSkuId, @RequestParam("lockState") Boolean lockState) {
+        log.info("商品库存锁定 goodsSkuId:{},lockState:{}",goodsSkuId,lockState);
+        return R.ok(portalProductService.lockStock(goodsSkuId,lockState));
+
+    }
+
+    /**
+     * 查询商品订单状态
+     * @param orderNo 订单编号
+     * @return String
+     */
+    @GetMapping(value = "/product/orderStatus/{id}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public R<Boolean> productOrderStatus(@PathVariable(name = "id") String orderNo){
+        log.info("查询商品订单状态:{}",orderNo);
+        OmsOrderDetail detail = portalOrderService.detail(orderNo);
+
+        return R.ok(detail.getStatus().equals(1));
+    }
+
+
+    /**
+     * 设置商品退款
+     *
+     * @param orderNo 订单编号
+     * @return String
+     */
+    @GetMapping(value = "/product/orderRefund/{id}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public R<Boolean> productOrderRefund(@PathVariable(name = "id") String orderNo) {
+
+        log.info("设置订单退款:{}",orderNo);
+        return R.ok(portalOrderService.jmeduOrderRefund(orderNo));
+    }
+
+
+    /**
+     * 查询商品订单生成
+     * @param order ProductWrapper.OrderCreate
+     * @return String
+     */
+    @PostMapping(value = "/product/orderCreate", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public R<Boolean> productOrderCreate(@RequestBody OrderCreate order) {
+
+        log.info("创建管乐团订单:{}",JSON.toJSONString(order));
+
+        portalOrderService.jmeduProductOrderCreate(order);
+
+
+        return R.ok(true);
+    }
+
+
+
+    /**
+     * 查询订单快递信息
+     * @return
+     */
+    @GetMapping(value = "/product/orderCourier/{id}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public R<OmsOrderCourier> productOrderCourier(@PathVariable(name = "id") String orderNo) {
+        log.info("查询订单快递信息 : {}",orderNo);
+        return R.ok(portalOrderService.productOrderCourier(orderNo));
+
+    }
 }

+ 6 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dao/PortalOrderDao.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.portal.dao;
 
+import com.yonge.cooleshow.mbg.model.OmsOrder;
 import com.yonge.cooleshow.mbg.model.OmsOrderItem;
 import com.yonge.cooleshow.portal.domain.OmsOrderDetail;
 import com.yonge.cooleshow.portal.domain.ProductStock;
@@ -23,6 +24,10 @@ public interface PortalOrderDao {
     int updateSkuStock(@Param("itemList") List<OmsOrderItem> orderItemList);
 
     /**
+     * 修改 pms_sku_stock表的锁定库存及真实库存
+     */
+    int updateRefundSkuStock(@Param("itemList") List<OmsOrderItem> orderItemList);
+    /**
      * 获取超时订单
      * @param minute 超时时间(分)
      */
@@ -39,4 +44,5 @@ public interface PortalOrderDao {
     int releaseSkuStockLock(@Param("itemList") List<OmsOrderItem> orderItemList);
 
     int releaseProductStockLock(@Param("itemList") List<ProductStock> orderItemList);
+
 }

+ 2 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dao/PortalProductDao.java

@@ -32,4 +32,6 @@ public interface PortalProductDao {
      * 改库存
      */
     void updateProductStock(@Param("itemList") List<ProductStock> productStockList);
+
+    int refundProductStock(@Param("itemList") List<ProductStock> productStockList);
 }

+ 185 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/OrderCreate.java

@@ -0,0 +1,185 @@
+package com.yonge.cooleshow.portal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-01-10
+ */
+public class OrderCreate {
+
+    @ApiModelProperty("下单手机号")
+    private String mobile;
+
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @ApiModelProperty("订单总金额")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("支付类型  1->支付宝;2->微信")
+    private Integer payType;
+
+    @ApiModelProperty(value = "收货人姓名")
+    private String receiverName;
+
+    @ApiModelProperty(value = "收货人电话")
+    private String receiverPhone;
+
+    @ApiModelProperty(value = "收货人邮编")
+    private String receiverPostCode;
+
+    @ApiModelProperty(value = "省份/直辖市")
+    private String receiverProvince;
+
+    @ApiModelProperty(value = "城市")
+    private String receiverCity;
+
+    @ApiModelProperty(value = "区")
+    private String receiverRegion;
+
+    @ApiModelProperty(value = "详细地址")
+    private String receiverDetailAddress;
+
+    @ApiModelProperty("商品详情")
+    private List<OrderItem> orderItemList;
+
+    public static class OrderItem implements Serializable {
+
+
+        @ApiModelProperty(value = "购买数量")
+        private Integer productQuantity;
+
+        @ApiModelProperty(value = "商品sku编号")
+        private Long productSkuId;
+
+        @ApiModelProperty(value = "该商品经过优惠后的分解金额")
+        private BigDecimal realAmount;
+
+        public Integer getProductQuantity() {
+            return productQuantity;
+        }
+
+        public void setProductQuantity(Integer productQuantity) {
+            this.productQuantity = productQuantity;
+        }
+
+        public Long getProductSkuId() {
+            return productSkuId;
+        }
+
+        public void setProductSkuId(Long productSkuId) {
+            this.productSkuId = productSkuId;
+        }
+
+        public BigDecimal getRealAmount() {
+            return realAmount;
+        }
+
+        public void setRealAmount(BigDecimal realAmount) {
+            this.realAmount = realAmount;
+        }
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public BigDecimal getTotalAmount() {
+        return totalAmount;
+    }
+
+    public void setTotalAmount(BigDecimal totalAmount) {
+        this.totalAmount = totalAmount;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public String getReceiverName() {
+        return receiverName;
+    }
+
+    public void setReceiverName(String receiverName) {
+        this.receiverName = receiverName;
+    }
+
+    public String getReceiverPhone() {
+        return receiverPhone;
+    }
+
+    public void setReceiverPhone(String receiverPhone) {
+        this.receiverPhone = receiverPhone;
+    }
+
+    public String getReceiverPostCode() {
+        return receiverPostCode;
+    }
+
+    public void setReceiverPostCode(String receiverPostCode) {
+        this.receiverPostCode = receiverPostCode;
+    }
+
+    public String getReceiverProvince() {
+        return receiverProvince;
+    }
+
+    public void setReceiverProvince(String receiverProvince) {
+        this.receiverProvince = receiverProvince;
+    }
+
+    public String getReceiverCity() {
+        return receiverCity;
+    }
+
+    public void setReceiverCity(String receiverCity) {
+        this.receiverCity = receiverCity;
+    }
+
+    public String getReceiverRegion() {
+        return receiverRegion;
+    }
+
+    public void setReceiverRegion(String receiverRegion) {
+        this.receiverRegion = receiverRegion;
+    }
+
+    public String getReceiverDetailAddress() {
+        return receiverDetailAddress;
+    }
+
+    public void setReceiverDetailAddress(String receiverDetailAddress) {
+        this.receiverDetailAddress = receiverDetailAddress;
+    }
+
+    public List<OrderItem> getOrderItemList() {
+        return orderItemList;
+    }
+
+    public void setOrderItemList(List<OrderItem> orderItemList) {
+        this.orderItemList = orderItemList;
+    }
+}

+ 25 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java

@@ -2,9 +2,11 @@ package com.yonge.cooleshow.portal.service;
 
 import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mbg.model.OmsOrder;
+import com.yonge.cooleshow.mbg.model.OmsOrderCourier;
 import com.yonge.cooleshow.portal.domain.ConfirmOrderResult;
 import com.yonge.cooleshow.portal.domain.OmsOrderDetail;
 import com.yonge.cooleshow.portal.domain.OrderParam;
+import com.yonge.cooleshow.portal.dto.OrderCreate;
 import com.yonge.cooleshow.portal.dto.OrderPayReq;
 import com.yonge.cooleshow.portal.dto.OrderPayRes;
 import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
@@ -126,4 +128,27 @@ public interface OmsPortalOrderService {
      */
     @Transactional
     Integer shareProfit();
+
+    /**
+     * 订单退款
+     *
+     * @param orderNo 订单号
+     * @return
+     */
+    Boolean jmeduOrderRefund(String orderNo);
+
+    /**
+     * 创建管乐团订单
+     *
+     * @param order
+     */
+    void jmeduProductOrderCreate(OrderCreate order);
+
+    /**
+     * 查询
+     *
+     * @param orderNo
+     * @return
+     */
+    OmsOrderCourier productOrderCourier(String orderNo);
 }

+ 18 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/PmsPortalProductService.java

@@ -52,4 +52,22 @@ public interface PmsPortalProductService {
      * @return
      */
     Map<Long,String> queryNameMap(List<Long> goodsIds);
+
+    /**
+     * 查询商品和商品sku库存
+     *
+     * @param goodsSkuId skuId
+     * @return
+     */
+    Integer getProductStockAndSkuStock(Long goodsSkuId);
+
+    /**
+     * 锁定 解锁库存
+     *
+     * @param goodsSkuId
+     * @param lockState
+     * @return
+     */
+    Boolean lockStock(Long goodsSkuId, Boolean lockState);
+
 }

+ 4 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/UmsMemberService.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.portal.service;
 
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.mbg.model.UmsMember;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.transaction.annotation.Transactional;
@@ -25,6 +26,9 @@ public interface UmsMemberService {
      */
     UmsMember getCurrentMember();
 
+    @Transactional
+    UmsMember createUmsMember(SysUser sysUser);
+
     /**
      * 根据会员id修改会员积分
      */

+ 168 - 4
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -5,7 +5,11 @@ import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
 import com.github.pagehelper.PageHelper;
 import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.api.feign.StudentFeignService;
 import com.yonge.cooleshow.api.feign.dto.CouponInfoApi;
+import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.MallOrderItemDto;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
@@ -22,6 +26,7 @@ import com.yonge.cooleshow.portal.dao.PortalOrderDao;
 import com.yonge.cooleshow.portal.dao.PortalOrderItemDao;
 import com.yonge.cooleshow.portal.dao.PortalProductDao;
 import com.yonge.cooleshow.portal.domain.*;
+import com.yonge.cooleshow.portal.dto.OrderCreate;
 import com.yonge.cooleshow.portal.dto.OrderPayReq;
 import com.yonge.cooleshow.portal.dto.OrderPayRes;
 import com.yonge.cooleshow.portal.service.*;
@@ -111,13 +116,17 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
     @Autowired
     private PmsProductMapper pmsProductMapper;
-
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
     @Autowired
     private UserOrderRefundMapper userOrderRefundMapper;
 
     @Autowired
     private RedissonClient redissonClient;
 
+    @Autowired
+    private OmsOrderCourierService orderCourierService;
+
 
     @Autowired
     private PortalProductDao productDao;
@@ -352,7 +361,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         int count = portalOrderDao.updateSkuStock(orderDetail.getOrderItemList());
 
         // 减商品库存
-        updateProductStock(orderDetail);
+        updateProductStock(orderDetail,true);
 
         // 查询订单
         OmsOrderDetail detail = detail(orderId);
@@ -407,7 +416,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     /**
      * 减商品库存
      */
-    private void updateProductStock(OmsOrderDetail orderDetail) {
+    private void updateProductStock(OmsOrderDetail orderDetail,Boolean status) {
         Map<Long, List<OmsOrderItem>> collect = orderDetail.getOrderItemList()
                                                            .stream()
                                                            .collect(Collectors.groupingBy(OmsOrderItem::getProductId));
@@ -424,7 +433,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             stock.setStock(sum);
             productStockList.add(stock);
         }
-        productDao.updateProductStock(productStockList);
+        if (status) {
+            productDao.updateProductStock(productStockList);
+        } else {
+            productDao.refundProductStock(productStockList);
+        }
     }
 
     @Override
@@ -881,6 +894,157 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         return omsOrders.size();
     }
 
+    @Override
+    @Transactional
+    public Boolean jmeduOrderRefund(String orderNo) {
+        OmsOrderDetail detail = detail(orderNo);
+        if (detail == null) {
+            throw new BizException("订单不存在");
+        }
+        if(detail.getStatus() != 1) {
+            throw new BizException("当前订单不能退款");
+        }
+        OmsOrder order = new OmsOrder();
+        order.setStatus(4);
+        order.setId(detail.getId());
+        orderMapper.updateByPrimaryKeySelective(order);
+
+        // 减sku库存
+        portalOrderDao.updateRefundSkuStock(detail.getOrderItemList());
+
+        // 减商品库存
+        updateProductStock(detail,false);
+
+        return true;
+    }
+
+    @Override
+    public void jmeduProductOrderCreate(OrderCreate order) {
+
+
+        // 查询订单是否已存在
+        OmsOrder detail = orderMapper.getByOrderSn(order.getOrderNo());
+        if (detail != null) {
+            throw new BizException("订单已存在");
+        }
+
+
+
+        // 1.查询酷乐秀学生账户
+        HttpResponseResult<StudentWrapper.UnionStudentResp> unionStudent = adminFeignService.unionStudent(
+            StudentWrapper.UnionStudent.builder().tokenCheck(false).mobile(order.getMobile()).build());
+
+        Long userId = unionStudent.getData().getUserId();
+        UmsMember umsMember = memberService.getById(userId);
+        if (umsMember == null) {
+            umsMember = memberService.createUmsMember(
+                JSON.parseObject(JSON.toJSONString(unionStudent.getData().getSysUser()), SysUser.class));
+        }
+
+
+        // 创建订单
+
+        //设置自动收货天数
+        List<OmsOrderSetting> orderSettings = orderSettingMapper.selectByExample(new OmsOrderSettingExample());
+
+
+        detail = new OmsOrder();
+        detail.setMemberId(umsMember.getId());
+        detail.setPlatformType("JMEDU");
+        detail.setOrderSn(order.getOrderNo());
+        detail.setCreateTime(new Date());
+        detail.setMemberUsername(umsMember.getUsername());
+        detail.setTotalAmount(order.getTotalAmount());
+        detail.setPayAmount(order.getTotalAmount());
+        detail.setFreightAmount(BigDecimal.ZERO);
+        detail.setPromotionAmount(BigDecimal.ZERO);
+        detail.setIntegrationAmount(BigDecimal.ZERO);
+        detail.setCouponAmount(BigDecimal.ZERO);
+        detail.setDiscountAmount(BigDecimal.ZERO);
+        detail.setPayType(order.getPayType());
+        detail.setConfirmStatus(0);
+        detail.setSourceType(1);
+        detail.setStatus(1);
+        detail.setOrderType(0);
+        if (CollUtil.isNotEmpty(orderSettings)) {
+            detail.setAutoConfirmDay(orderSettings.get(0).getConfirmOvertime());
+        }
+        detail.setReceiverName(order.getReceiverName());
+        detail.setReceiverPhone(order.getReceiverPhone());
+        detail.setReceiverPostCode(order.getReceiverPostCode());
+        detail.setReceiverProvince(order.getReceiverProvince());
+        detail.setReceiverCity(order.getReceiverCity());
+        detail.setReceiverRegion(order.getReceiverRegion());
+        detail.setReceiverDetailAddress(order.getReceiverDetailAddress());
+        detail.setDeleteStatus(0);
+        detail.setPaymentTime(new Date());
+        detail.setAfterSale(1);
+        detail.setModifyTime(new Date());
+        orderMapper.insert(detail);
+
+        List<OmsOrderItem> orderItemList = new ArrayList<>();
+        // 创建订单详情
+        for (OrderCreate.OrderItem orderItem : order.getOrderItemList()) {
+
+            // 获取商品信息
+            PmsSkuStock pmsSkuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId());
+            if (pmsSkuStock == null) {
+                throw new BizException("商品规格不存在");
+            }
+            PmsProduct pmsProduct = pmsProductMapper.selectByPrimaryKey(pmsSkuStock.getProductId());
+
+            if (pmsProduct == null) {
+                throw new BizException("商品不存在");
+            }
+
+            OmsOrderItem omsOrderItem = new OmsOrderItem();
+            omsOrderItem.setOrderId(detail.getId());
+            omsOrderItem.setOrderSn(detail.getOrderSn());
+            omsOrderItem.setProductId(pmsProduct.getId());
+            omsOrderItem.setProductPic(pmsProduct.getPic());
+            omsOrderItem.setProductName(pmsProduct.getName());
+            omsOrderItem.setProductBrand(pmsProduct.getBrandName());
+            omsOrderItem.setProductPrice(pmsProduct.getPrice());
+            omsOrderItem.setProductQuantity(1);
+            omsOrderItem.setProductSkuId(pmsSkuStock.getId());
+            omsOrderItem.setProductSkuCode(pmsSkuStock.getSkuCode());
+            omsOrderItem.setProductCategoryId(pmsProduct.getProductCategoryId());
+            omsOrderItem.setPromotionAmount(BigDecimal.ZERO);
+            omsOrderItem.setCouponAmount(BigDecimal.ZERO);
+            omsOrderItem.setIntegrationAmount(BigDecimal.ZERO);
+            omsOrderItem.setRealAmount(orderItem.getRealAmount());
+            omsOrderItem.setProductAttr(pmsSkuStock.getSpData());
+            omsOrderItem.setReturnStatus(-1);
+
+            orderItemList.add(omsOrderItem);
+        }
+
+
+        // 保存数据
+        if (!CollectionUtils.isEmpty(orderItemList)) {
+            orderItemDao.insertList(orderItemList);
+            // 减sku库存
+            OmsOrderDetail orderDetail = detail(order.getOrderNo());
+            portalOrderDao.updateSkuStock(orderDetail.getOrderItemList());
+
+            // 减商品库存
+            updateProductStock(orderDetail,true);
+        }
+
+
+
+
+    }
+
+    @Override
+    public OmsOrderCourier productOrderCourier(String orderNo) {
+        OmsOrderDetail detail = detail(orderNo);
+        if (!StringUtil.isEmpty(detail.getDeliverySn()) ) {
+            return orderCourierService.getCourierInfo(orderNo);
+        }
+        return null;
+    }
+
     private void FinishReceiveOrder(Long orderId) {
 
         // UmsMember member = memberService.getCurrentMember();

+ 54 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java

@@ -15,10 +15,12 @@ import com.yonge.cooleshow.portal.dto.ProductCategorySmallVo;
 import com.yonge.cooleshow.portal.dto.ProductSearchConditionVo;
 import com.yonge.cooleshow.portal.dto.ShareProductVo;
 import com.yonge.cooleshow.portal.service.PmsPortalProductService;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.string.MessageFormatter;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
@@ -223,6 +225,58 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
         return goodsList.stream().collect(Collectors.toMap(PmsProduct::getId, PmsProduct::getName));
     }
 
+    @Override
+    public Integer getProductStockAndSkuStock(Long goodsSkuId) {
+
+        PmsSkuStock pmsSkuStock = skuStockMapper.selectByPrimaryKey(goodsSkuId);
+        if (pmsSkuStock == null) {
+            throw new BizException("商品信息不存在");
+        }
+        // 查询商品
+        PmsProduct pmsProduct = productMapper.selectByPrimaryKey(pmsSkuStock.getProductId());
+        if (pmsProduct == null) {
+            throw new BizException("商品信息不存在");
+        }
+        int skuStock = pmsSkuStock.getStock() - pmsSkuStock.getLockStock();
+        int productStock = pmsProduct.getStock() - pmsProduct.getLockStock();
+        return Math.min(skuStock, productStock);
+
+    }
+
+    @Override
+    @Transactional
+    public Boolean lockStock(Long goodsSkuId, Boolean lockState) {
+        PmsSkuStock pmsSkuStock = skuStockMapper.selectByPrimaryKey(goodsSkuId);
+        if (pmsSkuStock == null) {
+            throw new BizException("商品sku信息不存在");
+        }
+        // 查询商品
+        PmsProduct pmsProduct = productMapper.selectByPrimaryKey(pmsSkuStock.getProductId());
+        if (pmsProduct == null) {
+            throw new BizException("商品信息不存在");
+        }
+        // 锁定库存 直接使用for update 更新 判断是否更新成功
+        if (lockState) {
+            int lock = productMapper.lockStock(pmsProduct.getId(), 1);
+            if (lock <=0) {
+                throw new BizException("商品库存不足");
+            }
+            lock = skuStockMapper.lockStock(pmsSkuStock.getId(), 1);
+            if (lock <=0) {
+                throw new BizException("商品sku库存不足");
+            }
+        } else {
+            productMapper.unLockStock(pmsProduct.getId(),1);
+            skuStockMapper.unLockStock(pmsSkuStock.getId(),1);
+        }
+
+        // 解锁库存 直接解锁
+        return true;
+
+    }
+
+
+
 
     private  List<PmsProductAttributeCategory>  getHomeProductAttributeCategory() {
         PmsProductAttributeCategoryExample example = new PmsProductAttributeCategoryExample();

+ 28 - 18
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UmsMemberServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
@@ -60,6 +61,7 @@ public class UmsMemberServiceImpl implements UmsMemberService {
     }
 
     @Override
+    @Transactional
     public UmsMember getCurrentMember() {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null || sysUser.getId() == null) {
@@ -68,24 +70,7 @@ public class UmsMemberServiceImpl implements UmsMemberService {
         UmsMember umsMember = getById(sysUser.getId());
         // 商城库用户不存在-> 创建
         if (umsMember == null || umsMember.getId() == null) {
-            umsMember = new UmsMember();
-            umsMember.setId(sysUser.getId());
-            umsMember.setCreateTime(sysUser.getCreateTime());
-            umsMember.setUsername(sysUser.getUsername());
-            umsMember.setPassword(sysUser.getPassword());
-            umsMember.setPhone(sysUser.getPhone());
-            umsMember.setStatus(sysUser.getLockFlag());
-            umsMember.setIcon(sysUser.getAvatar());
-            umsMember.setGender(sysUser.getGender());
-            umsMember.setBirthday(sysUser.getBirthdate());
-            //获取默认会员等级并设置
-            UmsMemberLevelExample levelExample = new UmsMemberLevelExample();
-            levelExample.createCriteria().andDefaultStatusEqualTo(1);
-            List<UmsMemberLevel> memberLevelList = memberLevelMapper.selectByExample(levelExample);
-            if (!CollectionUtils.isEmpty(memberLevelList)) {
-                umsMember.setMemberLevelId(memberLevelList.get(0).getId());
-            }
-            memberMapper.insert(umsMember);
+            umsMember = createUmsMember(sysUser);
         } else {
             boolean flag = false;
             if (sysUser.getUsername() != null && !sysUser.getUsername().equals(umsMember.getUsername())) {
@@ -108,6 +93,31 @@ public class UmsMemberServiceImpl implements UmsMemberService {
     }
 
     @Override
+    @Transactional
+    public UmsMember createUmsMember(SysUser sysUser) {
+        UmsMember umsMember;
+        umsMember = new UmsMember();
+        umsMember.setId(sysUser.getId());
+        umsMember.setCreateTime(sysUser.getCreateTime());
+        umsMember.setUsername(sysUser.getUsername());
+        umsMember.setPassword(sysUser.getPassword());
+        umsMember.setPhone(sysUser.getPhone());
+        umsMember.setStatus(sysUser.getLockFlag());
+        umsMember.setIcon(sysUser.getAvatar());
+        umsMember.setGender(sysUser.getGender());
+        umsMember.setBirthday(sysUser.getBirthdate());
+        //获取默认会员等级并设置
+        UmsMemberLevelExample levelExample = new UmsMemberLevelExample();
+        levelExample.createCriteria().andDefaultStatusEqualTo(1);
+        List<UmsMemberLevel> memberLevelList = memberLevelMapper.selectByExample(levelExample);
+        if (!CollectionUtils.isEmpty(memberLevelList)) {
+            umsMember.setMemberLevelId(memberLevelList.get(0).getId());
+        }
+        memberMapper.insert(umsMember);
+        return umsMember;
+    }
+
+    @Override
     public void updateIntegration(Long id, Integer integration) {
         UmsMember record=new UmsMember();
         record.setId(id);

+ 20 - 0
cooleshow-mall/mall-portal/src/main/resources/config/mybatis/PortalOrderDao.xml

@@ -109,4 +109,24 @@
             #{item.productId}
         </foreach>
     </update>
+
+    <update id="updateRefundSkuStock">
+        UPDATE pms_sku_stock
+        SET
+        stock = CASE id
+        <foreach collection="itemList" item="item">
+            WHEN #{item.productSkuId} THEN stock + #{item.productQuantity}
+        </foreach>
+        END,
+        sale = CASE id
+        <foreach collection="itemList" item="item">
+            WHEN #{item.productSkuId} THEN pms_sku_stock.sale - #{item.productQuantity}
+        </foreach>
+        END
+        WHERE
+        id IN
+        <foreach collection="itemList" item="item" separator="," open="(" close=")">
+            #{item.productSkuId}
+        </foreach>
+    </update>
 </mapper>

+ 21 - 0
cooleshow-mall/mall-portal/src/main/resources/config/mybatis/PortalProductDao.xml

@@ -120,4 +120,25 @@
             #{item.productId}
         </foreach>
     </update>
+
+
+    <update id="refundProductStock">
+        UPDATE pms_product
+        SET
+        stock = CASE id
+        <foreach collection="itemList" item="item">
+            WHEN #{item.productId} THEN stock + #{item.stock}
+        </foreach>
+        END,
+        sale = CASE id
+        <foreach collection="itemList" item="item">
+            WHEN #{item.productId} THEN sale - #{item.stock}
+        </foreach>
+        END
+        WHERE
+        id IN
+        <foreach collection="itemList" item="item" separator="," open="(" close=")">
+            #{item.productId}
+        </foreach>
+    </update>
 </mapper>

+ 13 - 11
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/AdminClient.java

@@ -101,20 +101,22 @@ public class AdminClient extends BaseController {
     @PostMapping("/unionStudent")
     public HttpResponseResult<StudentWrapper.UnionStudentResp> unionStudent(@RequestBody StudentWrapper.UnionStudent info) {
 
-        if (StringUtils.isAnyBlank(info.getToken(), info.getMobile())) {
-            throw new BizException("请求参数错误");
-        }
+        if (info.getTokenCheck() == null || info.getTokenCheck()) {
+            if (StringUtils.isAnyBlank(info.getToken(), info.getMobile())) {
+                throw new BizException("请求参数错误");
+            }
 
-        // 校验三方帐号关联请求合法性
-        RSAPublicKey rsaPublicKey = RsaKeyHelper.getRSAPublicKey("jmedu", "dayaedu", "jmedu.jks", "dayaedu");
-        Jwt jwt = JwtHelper.decodeAndVerify(info.getToken(), new RsaVerifier(rsaPublicKey));
+            // 校验三方帐号关联请求合法性
+            RSAPublicKey rsaPublicKey = RsaKeyHelper.getRSAPublicKey("jmedu", "dayaedu", "jmedu.jks", "dayaedu");
+            Jwt jwt = JwtHelper.decodeAndVerify(info.getToken(), new RsaVerifier(rsaPublicKey));
 
-        //获取jwt原始内容
-        String claims = jwt.getClaims();
-        if (StringUtils.isEmpty(claims)) {
-            throw new BizException("三方授权校验失败");
-        }
+            //获取jwt原始内容
+            String claims = jwt.getClaims();
+            if (StringUtils.isEmpty(claims)) {
+                throw new BizException("三方授权校验失败");
+            }
 
+        }
         // 学生帐号关联
         StudentWrapper.UnionStudentResp studentResp = studentService.unionStudent(info);
 

+ 12 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -236,10 +236,14 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
         // 手机号查询用户信息
         StudentVo studentVo = detailByPhone(info.getMobile());
+
+
+        com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = sysUserMapper.selectOne(Wrappers.<com.yonge.cooleshow.biz.dal.entity.SysUser>lambdaQuery()
+                                                                                             .eq(com.yonge.cooleshow.biz.dal.entity.SysUser::getPhone, info.getMobile()));
+
+        studentResp.setSysUser(sysUser);
         if (Objects.isNull(studentVo)) {
 
-            com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = sysUserMapper.selectOne(Wrappers.<com.yonge.cooleshow.biz.dal.entity.SysUser>lambdaQuery()
-                    .eq(com.yonge.cooleshow.biz.dal.entity.SysUser::getPhone, info.getMobile()));
 
             if (Objects.isNull(sysUser)) {
 
@@ -251,11 +255,14 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 user.setGender(info.getGender());
                 sysUserMapper.insert(user);
 
+                studentResp.setSysUser(sysUser);
                 String subjectId = null;
                 // 学生声部
-                Subject subject = subjectDao.getSubjectMatchByName(info.getSubjectName());
-                if (Objects.nonNull(subject)) {
-                    subjectId = String.valueOf(subject.getId());
+                if (!StringUtil.isEmpty(info.getSubjectName())) {
+                    Subject subject = subjectDao.getSubjectMatchByName(info.getSubjectName());
+                    if (Objects.nonNull(subject)) {
+                        subjectId = String.valueOf(subject.getId());
+                    }
                 }
 
                 // 添加学生帐号

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/StudentWrapper.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
+import com.yonge.cooleshow.biz.dal.entity.SysUser;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -40,6 +41,8 @@ public class StudentWrapper {
         @ApiModelProperty("性别(0,女  1,男)")
         private Integer gender;
 
+        @ApiModelProperty("是否校验token")
+        private Boolean tokenCheck;
     }
 
     @Data
@@ -64,6 +67,8 @@ public class StudentWrapper {
         @ApiModelProperty("更新标识")
         private Boolean updateFlag;
 
+        private SysUser sysUser;
+
         public UnionStudentResp userId(Long userId) {
             this.userId = userId;
             return this;