Browse Source

支付模块,订单 接口业务移植

lyhzzz 3 năm trước cách đây
mục cha
commit
90aa98d0d0
28 tập tin đã thay đổi với 1061 bổ sung614 xóa
  1. 41 0
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/PlatformClient.java
  2. 0 15
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/client/PlatformClient.java
  3. 1 1
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/vo/Camera.java
  4. 121 0
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/CameraDetail.java
  5. 60 0
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/ResultData.java
  6. 25 0
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/SSOUser.java
  7. 34 0
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/ServerCode.java
  8. 18 0
      4dkankan-center-platform/src/main/java/com/fdkankan/TestController.java
  9. 33 4
      4dkankan-center-platform/src/main/java/com/fdkankan/feign/platformFeign.java
  10. 1 0
      4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/ICameraDetailService.java
  11. 14 0
      4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/impl/CameraDetailServiceImpl.java
  12. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/impl/CameraServiceImpl.java
  13. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/impl/CartServiceImpl.java
  14. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/order/service/impl/InvoiceServiceImpl.java
  15. 472 472
      4dkankan-center-platform/src/main/java/com/fdkankan/order/service/impl/OrderServiceImpl.java
  16. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/order/service/impl/VirtualOrderServiceImpl.java
  17. 28 28
      4dkankan-center-platform/src/main/java/com/fdkankan/user/common/SSOLoginHelper.java
  18. 57 57
      4dkankan-center-platform/src/main/java/com/fdkankan/user/common/SSOLoginStore.java
  19. 25 25
      4dkankan-center-platform/src/main/java/com/fdkankan/user/entity/SSOUser.java
  20. 3 1
      4dkankan-center-platform/src/main/java/com/fdkankan/user/service/IUserService.java
  21. 2 2
      4dkankan-center-platform/src/main/java/com/fdkankan/user/service/LoginService.java
  22. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/user/service/RegisterService.java
  23. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/user/service/impl/UserIncrementServiceImpl.java
  24. 9 3
      4dkankan-center-platform/src/main/java/com/fdkankan/user/service/impl/UserServiceImpl.java
  25. 3 0
      4dkankan-common/src/main/java/com/fdkankan/common/response/BaseResponseAdvice.java
  26. 27 0
      4dkankan-common/src/main/java/com/fdkankan/common/user/SSOLoginHelper.java
  27. 56 0
      4dkankan-common/src/main/java/com/fdkankan/common/user/SSOLoginStore.java
  28. 25 0
      4dkankan-common/src/main/java/com/fdkankan/common/user/SSOUser.java

+ 41 - 0
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/PlatformClient.java

@@ -0,0 +1,41 @@
+package com.fdkankan.platform.api.feign;
+
+import com.fdkankan.platform.api.vo.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(value = "4dkankan-center-platform")
+@RequestMapping("/platform/feign")
+public interface PlatformClient {
+
+    /**
+     *
+     * @return Camera
+     */
+    @PostMapping("/getCameraByChildName")
+    ResultData getCameraByChildName(@RequestParam(value = "childName",required = false) String childName);
+
+    /**
+     *
+     * @return CameraDetail
+     */
+    @PostMapping("/getCameraDetailByCameraId")
+    ResultData getCameraDetailByCameraId(@RequestParam(value = "cameraId",required = false) Long cameraId);
+
+    /**
+     *
+     * @return String
+     */
+    @PostMapping("/updateCameraDetailByCameraIdAndSpace")
+    ResultData updateCameraDetailByCameraIdAndSpace(@RequestParam(value = "cameraId", required = false) Long cameraId,
+                                                           @RequestParam(value = "space", required = false) Long space);
+
+    /**
+     *
+     * @return SSOUser
+     */
+    @PostMapping("/getSSOUserByUserId")
+    ResultData getSSOUserByUserId(@RequestParam(value = "userId", required = false) Long userId) ;
+}

+ 0 - 15
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/client/PlatformClient.java

@@ -1,15 +0,0 @@
-package com.fdkankan.platform.api.feign.client;
-
-import com.fdkankan.platform.api.feign.vo.Camera;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-@FeignClient(value = "4dkankan-center-platform")
-public interface PlatformClient {
-
-    @PostMapping("/platform/feign/findByChildName")
-    Camera findByChildName(@RequestParam(value = "childName",required = false) String childName);
-
-
-}

+ 1 - 1
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/vo/Camera.java

@@ -1,4 +1,4 @@
-package com.fdkankan.platform.api.feign.vo;
+package com.fdkankan.platform.api.vo;
 
 import lombok.Data;
 

+ 121 - 0
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/CameraDetail.java

@@ -0,0 +1,121 @@
+package com.fdkankan.platform.api.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 相机子表
+ * </p>
+ *
+ * @author 
+ * @since 2021-12-24
+ */
+@Getter
+@Setter
+public class CameraDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 余额
+     */
+    private String balance;
+
+    /**
+     * 用户表t_user的id
+     */
+    private Long userId;
+
+    /**
+     * 0表示客户,1表示员工,2表示赠送,3表示其他,4经销商销售
+     */
+    private Integer own;
+
+    /**
+     * 订单号
+     */
+    private String orderSn;
+
+    /**
+     * 0表示本国,1表示国外
+     */
+    private Integer country;
+
+    /**
+     * 经销商
+     */
+    private String agency;
+
+    /**
+     * 相机类型,0表示双目,1四维看看pro,2 四维看看lite,9 双目转台,10 激光转台
+     */
+    private Integer cameraType;
+
+    /**
+     * 总容量
+     */
+    private Long totalSpace;
+
+    /**
+     * 已使用容量
+     */
+    private Long usedSpace;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    private Long cameraId;
+
+    /**
+     * 商品表t_goods的id
+     */
+    private Long goodsId;
+
+    /**
+     * 企业表t_company的id
+     */
+    private Long companyId;
+
+    /**
+     * 代理商架构管理t_agent_framework的id
+     */
+    private Long agentFrameworkId;
+
+    /**
+     * 相机协作用户id
+     */
+    private Long cooperationUser;
+
+    /**
+     * 设备地址(追溯管理后台)
+     */
+    private String address;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    private String recStatus;
+
+    /**
+     * 0正常,1删除
+     */
+    private Integer tbStatus;
+
+
+}

+ 60 - 0
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/ResultData.java

@@ -0,0 +1,60 @@
+package com.fdkankan.platform.api.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Calendar;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ResultData implements Serializable {
+    /**
+     * 状态码
+     */
+    private int code;
+    /**
+     * 响应信息
+     */
+    private String message;
+    /**
+     * 后端返回结果
+     */
+    private Object data;
+    /**
+     * 后端返回结果
+     */
+    private Boolean success;
+    /**
+     * 响应时间戳
+     */
+    private long timestamp = Calendar.getInstance().getTimeInMillis();
+
+    public static ResultData ok() {
+        return ok("");
+    }
+    public static ResultData ok(Object data) {
+        return ok("", data);
+    }
+    public static ResultData ok(String msg, Object data) {
+        return base(200, msg, data,true);
+    }
+
+
+    public static ResultData error(int code, String msg) {
+        return error(code, msg, ""); }
+    public static ResultData error(int code, String msg, Object data) {
+        return base(code, msg, data,false);
+    }
+
+    private static ResultData  base(int code, String msg, Object data,Boolean success) {
+        ResultData rd = new ResultData();
+        rd.setCode(code);
+        rd.setMessage(msg);
+        rd.setData(data);
+        rd.setSuccess(success);
+        return rd;
+    }
+}

+ 25 - 0
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/SSOUser.java

@@ -0,0 +1,25 @@
+package com.fdkankan.platform.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Set;
+
+@Data
+public class SSOUser implements Serializable {
+
+    private static final long serialVersionUID = -2560069033053679931L;
+
+    private Long id;
+
+    private String userName;
+
+    private String password;
+
+    private String email;
+
+    private Set<String> permissionSet;
+
+    private Set<String> roleSet;
+
+}

+ 34 - 0
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/vo/ServerCode.java

@@ -0,0 +1,34 @@
+package com.fdkankan.platform.api.vo;
+
+public enum ServerCode {
+
+	SUCCESS(0, "操作成功"),
+	SYSTEM_ERROR(-1, "服务器异常"),
+	PARAM_ERROR(-2, "解析请求参数出错"),
+	PARAM_REQUIRED(-3, "缺少必要参数"),
+
+	AUTH_FAIL(3000, "鉴权失败!"),
+	NON_TOKEN(3001, "无token,请重新登录"),
+	TOKEN_ILLEGAL(3002, "token不合法"),
+	TOKEN_NOT_FOUND(3003, "用户未登录"),
+
+
+	APP_ID_ILLEGAL(3100 , "非法的APP ID")
+	;
+	
+	private Integer code;
+	private String message;
+
+	private ServerCode(Integer code, String message) {
+		this.code = code;
+		this.message = message;
+	}
+
+	public Integer code() {
+		return code;
+	}
+
+	public String message() {
+		return message;
+	}
+}

+ 18 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/TestController.java

@@ -0,0 +1,18 @@
+package com.fdkankan;
+
+import com.fdkankan.common.rocketmq.producer.MqSendMessage;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+public class TestController {
+    @Resource
+    MqSendMessage mqSendMessage;
+    @GetMapping("/send")
+    private String sendTest(){
+        mqSendMessage.sendMessage("hello");
+        return "success";
+    }
+}

+ 33 - 4
4dkankan-center-platform/src/main/java/com/fdkankan/feign/platformFeign.java

@@ -1,9 +1,16 @@
 package com.fdkankan.feign;
 
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.goods.entity.Camera;
+import com.fdkankan.goods.entity.CameraDetail;
+import com.fdkankan.goods.service.ICameraDetailService;
 import com.fdkankan.goods.service.ICameraService;
+import com.fdkankan.user.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("/feign")
@@ -11,12 +18,34 @@ public class platformFeign {
 
     @Autowired
     private ICameraService cameraService;
+    @Autowired
+    private ICameraDetailService cameraDetailService;
+    @Autowired
+    private IUserService userService;
 
-    @PostMapping("/findByChildName")
-    public Camera findByChildName(
-            @RequestParam(value = "childName", required = false) String childName) {
+    @PostMapping("/getCameraByChildName")
+    public Camera getCameraByChildName(@RequestParam(value = "childName", required = false) String childName) {
         return cameraService.getByChildName(childName);
     }
 
+    @PostMapping("/getCameraDetailByCameraId")
+    public CameraDetail getCameraDetailByCameraId(@RequestParam(value = "cameraId", required = false) Long cameraId) {
+        return cameraDetailService.getByCameraId(cameraId);
+    }
+
+    @PostMapping("/updateCameraDetailByCameraIdAndSpace")
+    public String updateCameraDetailByCameraIdAndSpace(@RequestParam(value = "cameraId", required = false) Long cameraId,
+                                                           @RequestParam(value = "space", required = false) Long space) {
+        return cameraDetailService.updateCameraDetailByCameraIdAndSpace(cameraId,space);
+    }
+
+    @PostMapping("/getCameraBySnCode")
+    public Camera getCameraBySnCode(@RequestParam(value = "snCode", required = false) String snCode) {
+        return cameraService.getBySnCode(snCode);
+    }
+    @PostMapping("/getSSOUserByUserId")
+    public SSOUser getSSOUserByUserId(@RequestParam(value = "userId", required = false) Long userId) {
+        return userService.getSSOUserByUserId(userId);
+    }
 
 }

+ 1 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/ICameraDetailService.java

@@ -47,4 +47,5 @@ public interface ICameraDetailService extends IService<CameraDetail> {
 
     void bind(Long userId, Long cameraId);
 
+    String updateCameraDetailByCameraIdAndSpace(Long cameraId, Long space);
 }

+ 14 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/impl/CameraDetailServiceImpl.java

@@ -8,6 +8,7 @@ import com.fdkankan.agent.request.RequestAgent;
 import com.fdkankan.agent.vo.ResponseAgentCamera;
 import com.fdkankan.common.constant.AppConstant;
 import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.common.util.FileSizeUtil;
@@ -378,4 +379,17 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
             throw new BusinessException(ErrorCode.ERROR_MSG);
         }
     }
+
+    @Override
+    public String updateCameraDetailByCameraIdAndSpace(Long cameraId, Long space) {
+        CameraDetail cameraDetail = this.getByCameraId(cameraId);
+        cameraDetail.setUsedSpace(cameraDetail.getUsedSpace() -space);
+        if(cameraDetail.getUsedSpace() < 0){
+            cameraDetail.setUsedSpace(0L);
+        }
+        if(!this.updateById(cameraDetail)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
 }

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/impl/CameraServiceImpl.java

@@ -9,6 +9,7 @@ import com.fdkankan.common.constant.CameraConstant;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.common.util.FileSizeUtil;
 import com.fdkankan.goods.entity.Camera;
@@ -19,7 +20,6 @@ import com.fdkankan.goods.service.ICameraDetailService;
 import com.fdkankan.goods.service.ICameraService;
 import com.fdkankan.goods.service.ICameraSpaceService;
 import com.fdkankan.goods.service.IGoodsService;
-import com.fdkankan.user.entity.SSOUser;
 import com.fdkankan.user.entity.User;
 import com.fdkankan.user.entity.UserIncrement;
 import com.fdkankan.user.request.RequestCamera;

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/goods/service/impl/CartServiceImpl.java

@@ -5,12 +5,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.goods.entity.Cart;
 import com.fdkankan.goods.entity.Goods;
 import com.fdkankan.goods.mapper.ICartMapper;
 import com.fdkankan.goods.service.ICartService;
 import com.fdkankan.goods.service.IGoodsService;
-import com.fdkankan.user.entity.SSOUser;
 import com.fdkankan.user.request.RequestCart;
 import com.fdkankan.user.service.IUserService;
 import com.fdkankan.user.vo.ResponseCart;

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/order/service/impl/InvoiceServiceImpl.java

@@ -8,10 +8,10 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.OrderConstant;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.order.entity.*;
 import com.fdkankan.order.mapper.IInvoiceMapper;
 import com.fdkankan.order.service.*;
-import com.fdkankan.user.entity.SSOUser;
 import com.fdkankan.user.request.RequestInvoice;
 import com.fdkankan.user.request.RequestPlaceOrder;
 import com.fdkankan.user.service.IUserService;

+ 472 - 472
4dkankan-center-platform/src/main/java/com/fdkankan/order/service/impl/OrderServiceImpl.java

@@ -1,472 +1,472 @@
-//package com.fdkankan.order.service.impl;
-//
-//import com.alibaba.fastjson.JSONObject;
-//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-//import com.fdkankan.common.constant.*;
-//import com.fdkankan.common.exception.BusinessException;
-//import com.fdkankan.common.util.DateUtil;
-//import com.fdkankan.common.util.FileSizeUtil;
-//import com.fdkankan.common.util.FileUtils;
-//import com.fdkankan.common.util.NumberUtils;
-//import com.fdkankan.goods.common.SkuCache;
-//import com.fdkankan.goods.entity.*;
-//import com.fdkankan.goods.service.*;
-//import com.fdkankan.goods.vo.ResponseGoods;
-//import com.fdkankan.goods.vo.ResponseGoodsSku;
-//import com.fdkankan.order.constant.OrderEnum;
-//import com.fdkankan.order.entity.Invoice;
-//import com.fdkankan.order.entity.Order;
-//import com.fdkankan.order.entity.OrderItem;
-//import com.fdkankan.order.mapper.IOrderMapper;
-//import com.fdkankan.order.service.*;
-//import com.fdkankan.order.vo.ResponseCommerceOrder;
-//import com.fdkankan.order.vo.ResponseExpansionOrder;
-//import com.fdkankan.pay.alipay.sdk.AlipayService;
-//import com.fdkankan.pay.wx.WXPayDefaultConfig;
-//import com.fdkankan.pay.wx.sdk.WXPay;
-//import com.fdkankan.pay.wx.sdk.WXPayConstants;
-//import com.fdkankan.user.entity.SSOUser;
-//import com.fdkankan.user.entity.UserIncrement;
-//import com.fdkankan.user.request.*;
-//import com.fdkankan.user.service.IUserIncrementService;
-//import com.fdkankan.user.service.IUserService;
-//import com.fdkankan.user.vo.*;
-//import org.apache.commons.lang3.StringUtils;
-//import org.joda.time.DateTime;
-//import org.springframework.beans.BeanUtils;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.stereotype.Service;
-//
-//import javax.annotation.Resource;
-//import java.math.BigDecimal;
-//import java.util.*;
-//import java.util.stream.Collectors;
-//
-///**
-// * <p>
-// * 订单表 服务实现类
-// * </p>
-// *
-// * @author
-// * @since 2021-12-24
-// */
-//@Service
-//public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implements IOrderService {
-//
-//    @Resource
-//    private RedisTemplate<String,String> redisTemplate;
-//    @Autowired
-//    private IOrderItemService orderItemService;
-//    @Autowired
-//    private IInvoiceService invoiceService;
-//    @Autowired
-//    private IUserService userService;
-//    @Autowired
-//    private ICartService cartService;
-//    @Autowired
-//    private IGoodsService goodsService;
-//    @Autowired
-//    private IGoodsSkuService goodsSkuService;
-//    @Autowired
-//    private ICameraService cameraService;
-//    @Autowired
-//    private ICameraDetailService cameraDetailService;
-//    @Autowired
-//    private ICameraSpaceService cameraSpaceService;
-//    @Autowired
-//    private IVirtualOrderService virtualOrderService;
-//    @Autowired
-//    private IExpansionOrderService expansionOrderService;
-//    @Autowired
-//    private ICommerceOrderService commerceOrderService;
-//    @Autowired
-//    private IIncrementOrderService incrementOrderService;
-//    @Autowired
-//    private IDownloadOrderService downloadOrderService;
-//    @Resource
-//    private AlipayService alipayService;
-//    @Autowired
-//    private IUserIncrementService userIncrementService;
-//
-//    @Override
-//    public ResponseOrder getOrderDetail(Long orderId) {
-//        Order order = this.getById(orderId);
-//        ResponseOrder responseOrder = new ResponseOrder();
-//        if(order == null){
-//            return responseOrder;
-//        }
-//        BeanUtils.copyProperties(order,responseOrder);
-//
-//        List<ResponseOrderItem> responseOrderItems =orderItemService.getByOrderId(orderId);
-//        responseOrder.setOrderItems(responseOrderItems);
-//
-//        Invoice invoice = invoiceService.getByOrderId(orderId);
-//        if(invoice != null){
-//            ResponseInvoice responseInvoice = new ResponseInvoice();
-//            BeanUtils.copyProperties(invoice, responseInvoice);
-//            responseOrder.setInvoice(responseInvoice);
-//        }
-//        return responseOrder;
-//    }
-//
-//    @Override
-//    public Page<ResponseOrder> getOrders(RequestOrder param, String token) {
-//        SSOUser ssoUser = userService.getSSOUserByToken(token);
-//        QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
-//        queryWrapper.lambda().eq(Order::getUserId,ssoUser.getId());
-//        queryWrapper.lambda().eq(Order::getPaymentStatus, OrderEnum.PaymentStatus.paid);
-//        queryWrapper.lambda().orderByDesc(Order::getOrderTime);
-//        Page<Order> orderPage = this.page(new Page<>(param.getPageNum(),param.getPageSize()), queryWrapper);
-//
-//        List<ResponseOrder> voList = orderPage.getRecords().parallelStream().map(order -> {
-//            ResponseOrder vo = new ResponseOrder();
-//            BeanUtils.copyProperties(order, vo);
-//            return vo;
-//        }).collect(Collectors.toList());
-//        Page<ResponseOrder> voPage = new Page<ResponseOrder>(param.getPageNum(), param.getPageSize());
-//        voPage.setTotal(orderPage.getTotal());
-//        voPage.setRecords(voList);
-//        return voPage;
-//    }
-//
-//    @Override
-//    public String cancelOrder(RequestOrder param, String token) {
-//        Order order = this.getById(param.getOrderId());
-//        order.setOrderStatus(OrderEnum.OrderStatus.invalid.name());
-//        order.setRecStatus("I");
-//        if(!this.updateById(order)){
-//            throw  new BusinessException(ErrorCode.ERROR_MSG);
-//        }
-//        return ServerCode.SUCCESS.message();
-//    }
-//
-//    @Override
-//    public String receiptOrder(RequestOrder param, String token) {
-//        Order orderEntity = this.getById(param.getOrderId());
-//        orderEntity.setShippingStatus(OrderEnum.ShippingStatus.received.name());
-//        orderEntity.setOrderStatus(OrderEnum.OrderStatus.completed.name());
-//        if(!this.updateById(orderEntity)){
-//            throw  new BusinessException(ErrorCode.ERROR_MSG);
-//        }
-//        return ServerCode.SUCCESS.message();
-//    }
-//
-//    @Override
-//    public ResponseInvoice getInvoiceDetail(RequestOrder param, String token) {
-//        List<ResponseOrderItem> responseOrderItems = orderItemService.getByOrderId(param.getOrderId());
-//        StringBuilder sb = new StringBuilder();
-//        if (responseOrderItems != null && responseOrderItems.size() > 0){
-//            for (ResponseOrderItem vo : responseOrderItems){
-//                sb.append(vo.getGoodsCount()).append("*").append(vo.getGoodsName()).append("  ");
-//            }
-//        }
-//        Invoice invoice = invoiceService.getByOrderId(param.getOrderId());
-//        ResponseInvoice responseInvoice= new ResponseInvoice();
-//        if (invoice != null){
-//            responseInvoice = new ResponseInvoice();
-//            responseInvoice.setType(invoice.getType());
-//            responseInvoice.setTitle(invoice.getTitle());
-//            responseInvoice.setDescription(sb.toString());
-//        }
-//        return responseInvoice;
-//    }
-//
-//    @Override
-//    public ResponseOrder placeOrder(RequestPlaceOrder order, String token) {
-//        SSOUser ssoUser = userService.getSSOUserByToken(token);
-//        // 删除购物车
-//        String cartIdsStr = "";
-//        RequestCart[] carts = order.getGoods();
-//        for (int i = 0; i < carts.length; i++){
-//            cartIdsStr += carts[i].getId();
-//            if (i != carts.length - 1) cartIdsStr += ",";
-//        }
-//        RequestCart param = new RequestCart();
-//        param.setIds(cartIdsStr);
-//        cartService.removeCarts(param,token);
-//        // 下单
-//        List<OrderItem> orderItemEntities = new ArrayList<>();
-//        OrderItem orderItemEntity = null;
-//        int goodsTotalCount = 0;
-//        BigDecimal goodsAmount = new BigDecimal(0);
-//
-//        for(RequestCart requestCart : order.getGoods()){
-//            goodsTotalCount += requestCart.getGoodsCount();
-//            ResponseGoods responseGoods = goodsService.getByGoodsId(requestCart.getGoodsId());
-//            ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(requestCart.getSkuSn());
-//            if(responseGoods == null || sku == null){
-//                continue;
-//            }
-//            orderItemEntity = new OrderItem();
-//            orderItemEntity.setExpressNum(null);
-//            orderItemEntity.setGoodsPrice(order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
-//            orderItemEntity.setGoodsId(requestCart.getGoodsId());
-//            orderItemEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
-//            orderItemEntity.setExpressName("顺丰速运");
-//            orderItemEntity.setGoodsCount(requestCart.getGoodsCount());
-//            orderItemEntity.setGoodsName(responseGoods.getName());
-//            orderItemEntity.setGoodsSn(responseGoods.getGoodsSn());
-//            if (StringUtils.isNotEmpty(requestCart.getSkuSn())){
-//                orderItemEntity.setSkuSn(requestCart.getSkuSn());
-//            }
-//            orderItemEntities.add(orderItemEntity);
-//            goodsAmount = goodsAmount.add(orderItemEntity.getGoodsPrice().multiply(new BigDecimal(orderItemEntity.getGoodsCount())));
-//        }
-//        Order orderEntity = new Order();
-//        orderEntity.setOrderSn(NumberUtils.getOrderSn());
-//        orderEntity.setOrderTime(new Date());
-//        orderEntity.setOrderStatus(OrderEnum.OrderStatus.unprocessed.name());
-//        orderEntity.setPaymentStatus(OrderEnum.PaymentStatus.unpaid.name());
-//        orderEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
-//        orderEntity.setPaymentTypeName(order.getPayType());
-//        orderEntity.setUserId(ssoUser.getId());
-//        orderEntity.setGoodsTotalCount(goodsTotalCount);
-//        orderEntity.setGoodsAmount(goodsAmount);
-//        orderEntity.setTotalAmount(goodsAmount);
-//        orderEntity.setPaidAmount(BigDecimal.ZERO);
-//        orderEntity.setExpressAmount(BigDecimal.ZERO);
-//        orderEntity.setDeliveryTypeName("快递运输");
-//        if (order.getReceiver() != null){
-//            orderEntity.setShipAddress(order.getReceiver().getShipAddress());
-//            orderEntity.setShipAreaPath(order.getReceiver().getShipAreaPath());
-//            orderEntity.setShipMobile(order.getReceiver().getShipMobile());
-//            orderEntity.setShipName(order.getReceiver().getShipName());
-//        }
-//        orderEntity.setAbroad(order.getAbroad());
-//        if(!this.save(orderEntity)){
-//            throw new BusinessException(ErrorCode.ERROR_MSG);
-//        }
-//        for (OrderItem itemEntity : orderItemEntities) {
-//            itemEntity.setOrderId(orderEntity.getId());
-//            if(!orderItemService.save(itemEntity)){
-//                throw new BusinessException(ErrorCode.ERROR_MSG);
-//            }
-//        }
-//        ResponseOrder responseOrder = new ResponseOrder();
-//        BeanUtils.copyProperties(orderEntity, responseOrder);
-//
-//        // 添加发票信息
-//        if (order.getInvoice() != null && StringUtils.isNotEmpty(order.getInvoice().getInvoiceType())){
-//            order.setOrderId(orderEntity.getId());
-//            order.getInvoice().setAmount(responseOrder.getTotalAmount().toString());
-//            invoiceService.saveInvoiceByOrder(ssoUser.getId(),order);
-//        }
-//        return responseOrder;
-//    }
-//
-//    @Override
-//    public ResponseVirtualOrder rechargeOrder(RequestCamera param, String token) {
-//        SSOUser ssoUser = userService.getSSOUserByToken(token);
-//        Camera camera = cameraService.getById(param.getCameraId());
-//        if(camera == null){
-//            throw new BusinessException(CameraConstant.FAILURE_6003);
-//        }
-//        CameraDetail cameraDetail = cameraDetailService.getByCameraId(param.getCameraId());
-//        int sub = Integer.valueOf(cameraDetail.getBalance()) + param.getPoints();
-//        if (sub > Constant.MAXPOINTS) {
-//            throw new BusinessException(CameraConstant.FAILURE_6004);
-//        }
-//        return virtualOrderService.saveByCamera(ssoUser.getId(),param);
-//    }
-//
-//    @Override
-//    public ResponseExpansionOrder expansionOrder(RequestExpansionOrder order, String token) {
-//        SSOUser ssoUser = userService.getSSOUserByToken(token);
-//        //支付美金,只能paypal支付
-//        if(order.getAbroad() == 1 && order.getPayType() != 2){
-//            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
-//        }
-//        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
-//        if(sku == null ){
-//            throw new BusinessException(ErrorCode.ERROR_MSG);
-//        }
-//        int delay = 0;
-//        int dateNum = 0;
-//        double spaceSize = 0;
-//        //基础容量10G
-//        long baseSpace = 10;
-//        List<CameraSpace> cameraSpaceEntityList = cameraSpaceService.getListByCameraId(order.getCameraId());
-//        for(CameraSpace cameraSpaceEntity : cameraSpaceEntityList){
-//            dateNum = DateUtil.daysBetween(new Date(), cameraSpaceEntity.getSpaceEndTime());
-//            if(dateNum > 0){
-//                spaceSize = FileSizeUtil.formetFileSize(cameraSpaceEntity.getSpace(), FileSizeUtil.SIZETYPE_GB);
-//                //时间换算,(剩余天数*旧容量)/新容量 = 延期天数
-//                if((dateNum * (spaceSize - baseSpace)) % (sku.getUnitSize() - baseSpace) > 0){
-//                    //无法整除天数+1
-//                    delay += ((dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace)) + 1;
-//                }else {
-//                    delay += (dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace);
-//                }
-//            }
-//        }
-//        return expansionOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice(),
-//                sku.getUnit(), sku.getUnitSize(), sku.getMonth(), delay);
-//    }
-//
-//    @Override
-//    public ResponseCommerceOrder commerceOrder(RequestCommerceOrder param, String token) {
-//        SSOUser ssoUser = userService.getSSOUserByToken(token);
-//        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(param.getSkuSn());
-//        return commerceOrderService.saveByOrderParam(ssoUser.getId(), param, param.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice());
-//    }
-//
-//    @Override
-//    public ResponseIncrementOrder incrementOrder(RequestIncrementOrder order, String token) {
-//        SSOUser ssoUser = userService.getSSOUserByToken(token);
-//        //支付美金,只能paypal支付
-//        if(order.getAbroad() == 1 && order.getPayType() != 2){
-//            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
-//        }
-//        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
-//        return incrementOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice());
-//    }
-//
-//    @Override
-//    public ResponseDownloadOrder downloadOrder(RequestIncrementOrder order, String token) {
-//        SSOUser ssoUser = userService.getSSOUserByToken(token);
-//        //支付美金,只能paypal支付
-//        if(order.getAbroad() == 1 && order.getPayType() != 2){
-//            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
-//        }
-//        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
-//        return downloadOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice());
-//    }
-//
-//    @Override
-//    public Boolean queryOrderStatus(RequestVirtualOrder order, String token) throws Exception{
-//        Boolean success = false;
-//        String orderSn = order.getOrderSn();
-//        switch (order.getOrderType()){
-//            case 0:
-//                orderSn += "_entity";break;
-//            case 1:
-//                orderSn += "_recharge";break;
-//            case 2:
-//                orderSn += "_expansion";break;
-//            case 3:
-//                orderSn += "_commerce";break;
-//            case 4:
-//                orderSn += "_increment";break;
-//            case 5:
-//                orderSn += "_download";break;
-//        }
-//        switch (order.getPayType()){
-//            // 微信
-//            case 0:
-//                String orderSnE = redisTemplate.opsForValue().get(orderSn);
-//                log.warn("out_trade_no:" + orderSnE);
-//                if (StringUtils.isNotEmpty(orderSnE)){
-//                    Map<String, String> data = new HashMap<String, String>();
-//                    data.put("out_trade_no", orderSnE);
-//                    WXPayDefaultConfig config = new WXPayDefaultConfig();
-//                    WXPay wxPay = new WXPay(config);
-//                    Map<String, String> resp = wxPay.orderQuery(data);
-//                    if (resp.get("trade_state") != null && resp.get("trade_state").equals(WXPayConstants.SUCCESS)) {
-//                        redisTemplate.delete(orderSnE);
-//                        String pngPath = ConstantFilePath.BASE_PATH + ConstantFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
-//                        FileUtils.deleteFile(pngPath);
-//                        success = true;
-//                    }
-//                }
-//                break;
-//            // 支付宝
-//            case 1:
-//                log.warn("alipay out_trade_no:" + orderSn);
-//                String type = alipayService.tradeQuery(orderSn);
-//                log.warn("alipay type:" + type);
-//                if ("SUCCESS".equals(type)){
-//                    success = true;
-//                }
-//                break;
-//            // paypal
-//            case 2:
-//                orderSn = orderSn.split("_")[0];
-//                log.warn("paypal out_trade_no:" + orderSn);
-//                Order byOrderSn = this.getByOrderSn(orderSn);
-//                if (byOrderSn!=null && OrderEnum.PaymentStatus.paid.name().equals(byOrderSn.getPaymentStatus())){
-//                    success = true;
-//                }
-//                break;
-//        }
-//        return success;
-//    }
-//
-//    private Order getByOrderSn(String orderSn) {
-//        QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
-//        queryWrapper.lambda().eq(Order::getOrderSn,orderSn);
-//        List<Order> list = this.list(queryWrapper);
-//        if(list == null || list.size()<=0){
-//            return null;
-//        }
-//        return list.get(0);
-//    }
-//
-//    @Override
-//    public ResponseGoods getExpansionPrice(RequestCamera camera, String token) {
-//        String skuStr = SkuCache.skusMap.get(String.valueOf(camera.getDateType()));
-//        if (StringUtils.isEmpty(skuStr)){
-//            skuStr = SkuCache.skusMap.get("1");
-//        }
-//        String[] skus = skuStr.split(",");
-//        List<ResponseGoodsSku> skusList = new ArrayList<>();
-//        Long goodsId = null;
-//        for (String sku : skus){
-//            GoodsSku goodsSkuEntity = goodsSkuService.getBySkuSn(sku);
-//            if (goodsSkuEntity != null){
-//                ResponseGoodsSku responseGoodsSku = new ResponseGoodsSku();
-//                BeanUtils.copyProperties(goodsSkuEntity, responseGoodsSku);
-//                if (StringUtils.isNotEmpty(responseGoodsSku.getDescription())){
-//                    try {
-//                        JSONObject o = JSONObject.parseObject(responseGoodsSku.getDescription());
-//                        responseGoodsSku.setUnit(o.getString("容量"));
-//                    }catch (Exception e){}
-//                }
-//                skusList.add(responseGoodsSku);
-//                goodsId = goodsSkuEntity.getGoodsId();
-//            }
-//        }
-//        Goods goodsEntity = goodsService.getById(goodsId);
-//        ResponseGoods responseGoods = new ResponseGoods();
-//        BeanUtils.copyProperties(goodsEntity, responseGoods);
-//        responseGoods.setSkuList(skusList);
-//        DateTime dateTime = new DateTime();
-//        //camera.getDateType() = 2 为年,其余为月
-//        if (camera.getDateType() != 2){
-//            dateTime = dateTime.plusDays(31 * skusList.get(0).getMonth());
-//        }else{
-//            dateTime = dateTime.plusYears(1);
-//        }
-//        responseGoods.setDeadLine(dateTime.toDate().getTime());
-//        return responseGoods;
-//    }
-//
-//    @Override
-//    public ResponseGoodsSku getIncrementOrDownloadPrice(RequestCamera camera, String token) {
-//        if(camera.getDateType() == null){
-//            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
-//        }
-//
-//        if(camera.getDateType() != 5 && camera.getDateType() != 6){
-//            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
-//        }
-//
-//        DateTime dateTime = new DateTime();
-//
-//        if(camera.getUserIncrementId() != null){
-//            UserIncrement userIncrementEntity = userIncrementService.getById(camera.getUserIncrementId());
-//            if(userIncrementEntity != null && userIncrementEntity.getIncrementEndTime().getTime() > new Date().getTime()){
-//                dateTime = new DateTime(userIncrementEntity.getIncrementEndTime());
-//            }
-//        }
-//
-//        ResponseGoodsSku responseGoodsSku = goodsSkuService.getIncrementOrDownloadPrice(camera);
-//
-//        //1年期限
-//        dateTime = dateTime.plusYears(1);
-//        responseGoodsSku.setDeadLine(dateTime.toDate().getTime());
-//        return responseGoodsSku;
-//    }
-//}
+package com.fdkankan.order.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.*;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.common.util.FileSizeUtil;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.common.util.NumberUtils;
+import com.fdkankan.goods.common.SkuCache;
+import com.fdkankan.goods.entity.*;
+import com.fdkankan.goods.service.*;
+import com.fdkankan.goods.vo.ResponseGoods;
+import com.fdkankan.goods.vo.ResponseGoodsSku;
+import com.fdkankan.order.constant.OrderEnum;
+import com.fdkankan.order.entity.Invoice;
+import com.fdkankan.order.entity.Order;
+import com.fdkankan.order.entity.OrderItem;
+import com.fdkankan.order.mapper.IOrderMapper;
+import com.fdkankan.order.service.*;
+import com.fdkankan.order.vo.ResponseCommerceOrder;
+import com.fdkankan.order.vo.ResponseExpansionOrder;
+import com.fdkankan.pay.alipay.sdk.AlipayService;
+import com.fdkankan.pay.wx.WXPayDefaultConfig;
+import com.fdkankan.pay.wx.sdk.WXPay;
+import com.fdkankan.pay.wx.sdk.WXPayConstants;
+import com.fdkankan.common.user.SSOUser;
+import com.fdkankan.user.entity.UserIncrement;
+import com.fdkankan.user.request.*;
+import com.fdkankan.user.service.IUserIncrementService;
+import com.fdkankan.user.service.IUserService;
+import com.fdkankan.user.vo.*;
+import org.apache.commons.lang3.StringUtils;
+import org.joda.time.DateTime;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 订单表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2021-12-24
+ */
+@Service
+public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implements IOrderService {
+
+    @Resource
+    private RedisTemplate<String,String> redisTemplate;
+    @Autowired
+    private IOrderItemService orderItemService;
+    @Autowired
+    private IInvoiceService invoiceService;
+    @Autowired
+    private IUserService userService;
+    @Autowired
+    private ICartService cartService;
+    @Autowired
+    private IGoodsService goodsService;
+    @Autowired
+    private IGoodsSkuService goodsSkuService;
+    @Autowired
+    private ICameraService cameraService;
+    @Autowired
+    private ICameraDetailService cameraDetailService;
+    @Autowired
+    private ICameraSpaceService cameraSpaceService;
+    @Autowired
+    private IVirtualOrderService virtualOrderService;
+    @Autowired
+    private IExpansionOrderService expansionOrderService;
+    @Autowired
+    private ICommerceOrderService commerceOrderService;
+    @Autowired
+    private IIncrementOrderService incrementOrderService;
+    @Autowired
+    private IDownloadOrderService downloadOrderService;
+    @Resource
+    private AlipayService alipayService;
+    @Autowired
+    private IUserIncrementService userIncrementService;
+
+    @Override
+    public ResponseOrder getOrderDetail(Long orderId) {
+        Order order = this.getById(orderId);
+        ResponseOrder responseOrder = new ResponseOrder();
+        if(order == null){
+            return responseOrder;
+        }
+        BeanUtils.copyProperties(order,responseOrder);
+
+        List<ResponseOrderItem> responseOrderItems =orderItemService.getByOrderId(orderId);
+        responseOrder.setOrderItems(responseOrderItems);
+
+        Invoice invoice = invoiceService.getByOrderId(orderId);
+        if(invoice != null){
+            ResponseInvoice responseInvoice = new ResponseInvoice();
+            BeanUtils.copyProperties(invoice, responseInvoice);
+            responseOrder.setInvoice(responseInvoice);
+        }
+        return responseOrder;
+    }
+
+    @Override
+    public Page<ResponseOrder> getOrders(RequestOrder param, String token) {
+        SSOUser ssoUser = userService.getSSOUserByToken(token);
+        QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(Order::getUserId,ssoUser.getId());
+        queryWrapper.lambda().eq(Order::getPaymentStatus, OrderEnum.PaymentStatus.paid);
+        queryWrapper.lambda().orderByDesc(Order::getOrderTime);
+        Page<Order> orderPage = this.page(new Page<>(param.getPageNum(),param.getPageSize()), queryWrapper);
+
+        List<ResponseOrder> voList = orderPage.getRecords().parallelStream().map(order -> {
+            ResponseOrder vo = new ResponseOrder();
+            BeanUtils.copyProperties(order, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        Page<ResponseOrder> voPage = new Page<ResponseOrder>(param.getPageNum(), param.getPageSize());
+        voPage.setTotal(orderPage.getTotal());
+        voPage.setRecords(voList);
+        return voPage;
+    }
+
+    @Override
+    public String cancelOrder(RequestOrder param, String token) {
+        Order order = this.getById(param.getOrderId());
+        order.setOrderStatus(OrderEnum.OrderStatus.invalid.name());
+        order.setRecStatus("I");
+        if(!this.updateById(order)){
+            throw  new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String receiptOrder(RequestOrder param, String token) {
+        Order orderEntity = this.getById(param.getOrderId());
+        orderEntity.setShippingStatus(OrderEnum.ShippingStatus.received.name());
+        orderEntity.setOrderStatus(OrderEnum.OrderStatus.completed.name());
+        if(!this.updateById(orderEntity)){
+            throw  new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public ResponseInvoice getInvoiceDetail(RequestOrder param, String token) {
+        List<ResponseOrderItem> responseOrderItems = orderItemService.getByOrderId(param.getOrderId());
+        StringBuilder sb = new StringBuilder();
+        if (responseOrderItems != null && responseOrderItems.size() > 0){
+            for (ResponseOrderItem vo : responseOrderItems){
+                sb.append(vo.getGoodsCount()).append("*").append(vo.getGoodsName()).append("  ");
+            }
+        }
+        Invoice invoice = invoiceService.getByOrderId(param.getOrderId());
+        ResponseInvoice responseInvoice= new ResponseInvoice();
+        if (invoice != null){
+            responseInvoice = new ResponseInvoice();
+            responseInvoice.setType(invoice.getType());
+            responseInvoice.setTitle(invoice.getTitle());
+            responseInvoice.setDescription(sb.toString());
+        }
+        return responseInvoice;
+    }
+
+    @Override
+    public ResponseOrder placeOrder(RequestPlaceOrder order, String token) {
+        SSOUser ssoUser = userService.getSSOUserByToken(token);
+        // 删除购物车
+        String cartIdsStr = "";
+        RequestCart[] carts = order.getGoods();
+        for (int i = 0; i < carts.length; i++){
+            cartIdsStr += carts[i].getId();
+            if (i != carts.length - 1) cartIdsStr += ",";
+        }
+        RequestCart param = new RequestCart();
+        param.setIds(cartIdsStr);
+        cartService.removeCarts(param,token);
+        // 下单
+        List<OrderItem> orderItemEntities = new ArrayList<>();
+        OrderItem orderItemEntity = null;
+        int goodsTotalCount = 0;
+        BigDecimal goodsAmount = new BigDecimal(0);
+
+        for(RequestCart requestCart : order.getGoods()){
+            goodsTotalCount += requestCart.getGoodsCount();
+            ResponseGoods responseGoods = goodsService.getByGoodsId(requestCart.getGoodsId());
+            ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(requestCart.getSkuSn());
+            if(responseGoods == null || sku == null){
+                continue;
+            }
+            orderItemEntity = new OrderItem();
+            orderItemEntity.setExpressNum(null);
+            orderItemEntity.setGoodsPrice(order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
+            orderItemEntity.setGoodsId(requestCart.getGoodsId());
+            orderItemEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
+            orderItemEntity.setExpressName("顺丰速运");
+            orderItemEntity.setGoodsCount(requestCart.getGoodsCount());
+            orderItemEntity.setGoodsName(responseGoods.getName());
+            orderItemEntity.setGoodsSn(responseGoods.getGoodsSn());
+            if (StringUtils.isNotEmpty(requestCart.getSkuSn())){
+                orderItemEntity.setSkuSn(requestCart.getSkuSn());
+            }
+            orderItemEntities.add(orderItemEntity);
+            goodsAmount = goodsAmount.add(orderItemEntity.getGoodsPrice().multiply(new BigDecimal(orderItemEntity.getGoodsCount())));
+        }
+        Order orderEntity = new Order();
+        orderEntity.setOrderSn(NumberUtils.getOrderSn());
+        orderEntity.setOrderTime(new Date());
+        orderEntity.setOrderStatus(OrderEnum.OrderStatus.unprocessed.name());
+        orderEntity.setPaymentStatus(OrderEnum.PaymentStatus.unpaid.name());
+        orderEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
+        orderEntity.setPaymentTypeName(order.getPayType());
+        orderEntity.setUserId(ssoUser.getId());
+        orderEntity.setGoodsTotalCount(goodsTotalCount);
+        orderEntity.setGoodsAmount(goodsAmount);
+        orderEntity.setTotalAmount(goodsAmount);
+        orderEntity.setPaidAmount(BigDecimal.ZERO);
+        orderEntity.setExpressAmount(BigDecimal.ZERO);
+        orderEntity.setDeliveryTypeName("快递运输");
+        if (order.getReceiver() != null){
+            orderEntity.setShipAddress(order.getReceiver().getShipAddress());
+            orderEntity.setShipAreaPath(order.getReceiver().getShipAreaPath());
+            orderEntity.setShipMobile(order.getReceiver().getShipMobile());
+            orderEntity.setShipName(order.getReceiver().getShipName());
+        }
+        orderEntity.setAbroad(order.getAbroad());
+        if(!this.save(orderEntity)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        for (OrderItem itemEntity : orderItemEntities) {
+            itemEntity.setOrderId(orderEntity.getId());
+            if(!orderItemService.save(itemEntity)){
+                throw new BusinessException(ErrorCode.ERROR_MSG);
+            }
+        }
+        ResponseOrder responseOrder = new ResponseOrder();
+        BeanUtils.copyProperties(orderEntity, responseOrder);
+
+        // 添加发票信息
+        if (order.getInvoice() != null && StringUtils.isNotEmpty(order.getInvoice().getInvoiceType())){
+            order.setOrderId(orderEntity.getId());
+            order.getInvoice().setAmount(responseOrder.getTotalAmount().toString());
+            invoiceService.saveInvoiceByOrder(ssoUser.getId(),order);
+        }
+        return responseOrder;
+    }
+
+    @Override
+    public ResponseVirtualOrder rechargeOrder(RequestCamera param, String token) {
+        SSOUser ssoUser = userService.getSSOUserByToken(token);
+        Camera camera = cameraService.getById(param.getCameraId());
+        if(camera == null){
+            throw new BusinessException(CameraConstant.FAILURE_6003);
+        }
+        CameraDetail cameraDetail = cameraDetailService.getByCameraId(param.getCameraId());
+        int sub = Integer.valueOf(cameraDetail.getBalance()) + param.getPoints();
+        if (sub > Constant.MAXPOINTS) {
+            throw new BusinessException(CameraConstant.FAILURE_6004);
+        }
+        return virtualOrderService.saveByCamera(ssoUser.getId(),param);
+    }
+
+    @Override
+    public ResponseExpansionOrder expansionOrder(RequestExpansionOrder order, String token) {
+        SSOUser ssoUser = userService.getSSOUserByToken(token);
+        //支付美金,只能paypal支付
+        if(order.getAbroad() == 1 && order.getPayType() != 2){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
+        }
+        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
+        if(sku == null ){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        int delay = 0;
+        int dateNum = 0;
+        double spaceSize = 0;
+        //基础容量10G
+        long baseSpace = 10;
+        List<CameraSpace> cameraSpaceEntityList = cameraSpaceService.getListByCameraId(order.getCameraId());
+        for(CameraSpace cameraSpaceEntity : cameraSpaceEntityList){
+            dateNum = DateUtil.daysBetween(new Date(), cameraSpaceEntity.getSpaceEndTime());
+            if(dateNum > 0){
+                spaceSize = FileSizeUtil.formetFileSize(cameraSpaceEntity.getSpace(), FileSizeUtil.SIZETYPE_GB);
+                //时间换算,(剩余天数*旧容量)/新容量 = 延期天数
+                if((dateNum * (spaceSize - baseSpace)) % (sku.getUnitSize() - baseSpace) > 0){
+                    //无法整除天数+1
+                    delay += ((dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace)) + 1;
+                }else {
+                    delay += (dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace);
+                }
+            }
+        }
+        return expansionOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice(),
+                sku.getUnit(), sku.getUnitSize(), sku.getMonth(), delay);
+    }
+
+    @Override
+    public ResponseCommerceOrder commerceOrder(RequestCommerceOrder param, String token) {
+        SSOUser ssoUser = userService.getSSOUserByToken(token);
+        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(param.getSkuSn());
+        return commerceOrderService.saveByOrderParam(ssoUser.getId(), param, param.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice());
+    }
+
+    @Override
+    public ResponseIncrementOrder incrementOrder(RequestIncrementOrder order, String token) {
+        SSOUser ssoUser = userService.getSSOUserByToken(token);
+        //支付美金,只能paypal支付
+        if(order.getAbroad() == 1 && order.getPayType() != 2){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
+        }
+        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
+        return incrementOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice());
+    }
+
+    @Override
+    public ResponseDownloadOrder downloadOrder(RequestIncrementOrder order, String token) {
+        SSOUser ssoUser = userService.getSSOUserByToken(token);
+        //支付美金,只能paypal支付
+        if(order.getAbroad() == 1 && order.getPayType() != 2){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
+        }
+        ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
+        return downloadOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ?  sku.getPrice() : sku.getDollarPrice());
+    }
+
+    @Override
+    public Boolean queryOrderStatus(RequestVirtualOrder order, String token) throws Exception{
+        Boolean success = false;
+        String orderSn = order.getOrderSn();
+        switch (order.getOrderType()){
+            case 0:
+                orderSn += "_entity";break;
+            case 1:
+                orderSn += "_recharge";break;
+            case 2:
+                orderSn += "_expansion";break;
+            case 3:
+                orderSn += "_commerce";break;
+            case 4:
+                orderSn += "_increment";break;
+            case 5:
+                orderSn += "_download";break;
+        }
+        switch (order.getPayType()){
+            // 微信
+            case 0:
+                String orderSnE = redisTemplate.opsForValue().get(orderSn);
+                log.warn("out_trade_no:" + orderSnE);
+                if (StringUtils.isNotEmpty(orderSnE)){
+                    Map<String, String> data = new HashMap<String, String>();
+                    data.put("out_trade_no", orderSnE);
+                    WXPayDefaultConfig config = new WXPayDefaultConfig();
+                    WXPay wxPay = new WXPay(config);
+                    Map<String, String> resp = wxPay.orderQuery(data);
+                    if (resp.get("trade_state") != null && resp.get("trade_state").equals(WXPayConstants.SUCCESS)) {
+                        redisTemplate.delete(orderSnE);
+                        String pngPath = ConstantFilePath.BASE_PATH + ConstantFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
+                        FileUtils.deleteFile(pngPath);
+                        success = true;
+                    }
+                }
+                break;
+            // 支付宝
+            case 1:
+                log.warn("alipay out_trade_no:" + orderSn);
+                String type = alipayService.tradeQuery(orderSn);
+                log.warn("alipay type:" + type);
+                if ("SUCCESS".equals(type)){
+                    success = true;
+                }
+                break;
+            // paypal
+            case 2:
+                orderSn = orderSn.split("_")[0];
+                log.warn("paypal out_trade_no:" + orderSn);
+                Order byOrderSn = this.getByOrderSn(orderSn);
+                if (byOrderSn!=null && OrderEnum.PaymentStatus.paid.name().equals(byOrderSn.getPaymentStatus())){
+                    success = true;
+                }
+                break;
+        }
+        return success;
+    }
+
+    private Order getByOrderSn(String orderSn) {
+        QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(Order::getOrderSn,orderSn);
+        List<Order> list = this.list(queryWrapper);
+        if(list == null || list.size()<=0){
+            return null;
+        }
+        return list.get(0);
+    }
+
+    @Override
+    public ResponseGoods getExpansionPrice(RequestCamera camera, String token) {
+        String skuStr = SkuCache.skusMap.get(String.valueOf(camera.getDateType()));
+        if (StringUtils.isEmpty(skuStr)){
+            skuStr = SkuCache.skusMap.get("1");
+        }
+        String[] skus = skuStr.split(",");
+        List<ResponseGoodsSku> skusList = new ArrayList<>();
+        Long goodsId = null;
+        for (String sku : skus){
+            GoodsSku goodsSkuEntity = goodsSkuService.getBySkuSn(sku);
+            if (goodsSkuEntity != null){
+                ResponseGoodsSku responseGoodsSku = new ResponseGoodsSku();
+                BeanUtils.copyProperties(goodsSkuEntity, responseGoodsSku);
+                if (StringUtils.isNotEmpty(responseGoodsSku.getDescription())){
+                    try {
+                        JSONObject o = JSONObject.parseObject(responseGoodsSku.getDescription());
+                        responseGoodsSku.setUnit(o.getString("容量"));
+                    }catch (Exception e){}
+                }
+                skusList.add(responseGoodsSku);
+                goodsId = goodsSkuEntity.getGoodsId();
+            }
+        }
+        Goods goodsEntity = goodsService.getById(goodsId);
+        ResponseGoods responseGoods = new ResponseGoods();
+        BeanUtils.copyProperties(goodsEntity, responseGoods);
+        responseGoods.setSkuList(skusList);
+        DateTime dateTime = new DateTime();
+        //camera.getDateType() = 2 为年,其余为月
+        if (camera.getDateType() != 2){
+            dateTime = dateTime.plusDays(31 * skusList.get(0).getMonth());
+        }else{
+            dateTime = dateTime.plusYears(1);
+        }
+        responseGoods.setDeadLine(dateTime.toDate().getTime());
+        return responseGoods;
+    }
+
+    @Override
+    public ResponseGoodsSku getIncrementOrDownloadPrice(RequestCamera camera, String token) {
+        if(camera.getDateType() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        if(camera.getDateType() != 5 && camera.getDateType() != 6){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        DateTime dateTime = new DateTime();
+
+        if(camera.getUserIncrementId() != null){
+            UserIncrement userIncrementEntity = userIncrementService.getById(camera.getUserIncrementId());
+            if(userIncrementEntity != null && userIncrementEntity.getIncrementEndTime().getTime() > new Date().getTime()){
+                dateTime = new DateTime(userIncrementEntity.getIncrementEndTime());
+            }
+        }
+
+        ResponseGoodsSku responseGoodsSku = goodsSkuService.getIncrementOrDownloadPrice(camera);
+
+        //1年期限
+        dateTime = dateTime.plusYears(1);
+        responseGoodsSku.setDeadLine(dateTime.toDate().getTime());
+        return responseGoodsSku;
+    }
+}

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/order/service/impl/VirtualOrderServiceImpl.java

@@ -13,7 +13,7 @@ import com.fdkankan.common.util.NumberUtils;
 import com.fdkankan.order.entity.VirtualOrder;
 import com.fdkankan.order.mapper.IVirtualOrderMapper;
 import com.fdkankan.order.service.IVirtualOrderService;
-import com.fdkankan.user.entity.SSOUser;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.user.request.RequestCamera;
 import com.fdkankan.user.request.RequestDownloadOrder;
 import com.fdkankan.user.request.RequestIncrementOrder;

+ 28 - 28
4dkankan-center-platform/src/main/java/com/fdkankan/user/common/SSOLoginHelper.java

@@ -1,28 +1,28 @@
-package com.fdkankan.user.common;
-
-import com.fdkankan.user.entity.SSOUser;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Component
-public class SSOLoginHelper {
-    @Autowired
-    private SSOLoginStore ssoLoginStore;
-    public  SSOUser loginCheck(String sessionId) {
-        if (sessionId != null && sessionId.trim().length() > 0) {
-            SSOUser ssoUser = ssoLoginStore.get(sessionId);
-            if (ssoUser != null) {
-                return ssoUser;
-            }
-        }
-        return null;
-    }
-
-    public void login(String token, SSOUser ssoUser) {
-        ssoLoginStore.put(token, ssoUser);
-    }
-
-    public  void logout(String sessionId) {
-        ssoLoginStore.remove(sessionId);
-    }
-}
+//package com.fdkankan.user.common;
+//
+//import com.fdkankan.user.entity.SSOUser;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//@Component
+//public class SSOLoginHelper {
+//    @Autowired
+//    private SSOLoginStore ssoLoginStore;
+//    public  SSOUser loginCheck(String sessionId) {
+//        if (sessionId != null && sessionId.trim().length() > 0) {
+//            SSOUser ssoUser = ssoLoginStore.get(sessionId);
+//            if (ssoUser != null) {
+//                return ssoUser;
+//            }
+//        }
+//        return null;
+//    }
+//
+//    public void login(String token, SSOUser ssoUser) {
+//        ssoLoginStore.put(token, ssoUser);
+//    }
+//
+//    public  void logout(String sessionId) {
+//        ssoLoginStore.remove(sessionId);
+//    }
+//}

+ 57 - 57
4dkankan-center-platform/src/main/java/com/fdkankan/user/common/SSOLoginStore.java

@@ -1,57 +1,57 @@
-package com.fdkankan.user.common;
-
-import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.common.util.SsoUtil;
-import com.fdkankan.user.entity.SSOUser;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.concurrent.TimeUnit;
-
-@Component
-public class SSOLoginStore {
-
-    @Resource
-    private RedisTemplate<String,String> redisTemplate;
-    /**
-     * get
-     *
-     * @param sessionId
-     * @return
-     */
-    public  SSOUser get(String sessionId) {
-
-        String redisKey = redisKey(sessionId);
-        String objectValue = redisTemplate.opsForValue().get(redisKey);
-        if (objectValue != null) {
-            return JSONObject.parseObject(objectValue, SSOUser.class);
-        }
-        return null;
-    }
-
-    /**
-     * remove
-     *
-     * @param sessionId
-     */
-    public  void remove(String sessionId) {
-        String redisKey = redisKey(sessionId);
-        redisTemplate.delete(redisKey);
-    }
-
-    /**
-     * put
-     *
-     * @param sessionId
-     * @param ssoUser
-     */
-    public  void put(String sessionId, SSOUser ssoUser) {
-        String redisKey = redisKey(sessionId);
-        redisTemplate.opsForValue().set(redisKey, JSONObject.toJSONString(ssoUser), 216000, TimeUnit.SECONDS);
-    }
-
-    private static String redisKey(String sessionId){
-        return SsoUtil.SSO_SESSIONID.concat("#").concat(sessionId);
-    }
-}
+//package com.fdkankan.user.common;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.fdkankan.common.util.SsoUtil;
+//import com.fdkankan.user.entity.SSOUser;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.stereotype.Component;
+//
+//import javax.annotation.Resource;
+//import java.util.concurrent.TimeUnit;
+//
+//@Component
+//public class SSOLoginStore {
+//
+//    @Resource
+//    private RedisTemplate<String,String> redisTemplate;
+//    /**
+//     * get
+//     *
+//     * @param sessionId
+//     * @return
+//     */
+//    public  SSOUser get(String sessionId) {
+//
+//        String redisKey = redisKey(sessionId);
+//        String objectValue = redisTemplate.opsForValue().get(redisKey);
+//        if (objectValue != null) {
+//            return JSONObject.parseObject(objectValue, SSOUser.class);
+//        }
+//        return null;
+//    }
+//
+//    /**
+//     * remove
+//     *
+//     * @param sessionId
+//     */
+//    public  void remove(String sessionId) {
+//        String redisKey = redisKey(sessionId);
+//        redisTemplate.delete(redisKey);
+//    }
+//
+//    /**
+//     * put
+//     *
+//     * @param sessionId
+//     * @param ssoUser
+//     */
+//    public  void put(String sessionId, SSOUser ssoUser) {
+//        String redisKey = redisKey(sessionId);
+//        redisTemplate.opsForValue().set(redisKey, JSONObject.toJSONString(ssoUser), 216000, TimeUnit.SECONDS);
+//    }
+//
+//    private static String redisKey(String sessionId){
+//        return SsoUtil.SSO_SESSIONID.concat("#").concat(sessionId);
+//    }
+//}

+ 25 - 25
4dkankan-center-platform/src/main/java/com/fdkankan/user/entity/SSOUser.java

@@ -1,25 +1,25 @@
-package com.fdkankan.user.entity;
-
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Set;
-
-@Data
-public class SSOUser implements Serializable {
-
-    private static final long serialVersionUID = -2560069033053679931L;
-
-    private Long id;
-
-    private String userName;
-
-    private String password;
-
-    private String email;
-
-    private Set<String> permissionSet;
-
-    private Set<String> roleSet;
-
-}
+//package com.fdkankan.user.entity;
+//
+//import lombok.Data;
+//
+//import java.io.Serializable;
+//import java.util.Set;
+//
+//@Data
+//public class SSOUser implements Serializable {
+//
+//    private static final long serialVersionUID = -2560069033053679931L;
+//
+//    private Long id;
+//
+//    private String userName;
+//
+//    private String password;
+//
+//    private String email;
+//
+//    private Set<String> permissionSet;
+//
+//    private Set<String> roleSet;
+//
+//}

+ 3 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/user/service/IUserService.java

@@ -2,9 +2,9 @@ package com.fdkankan.user.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.goods.entity.CameraDetail;
 import com.fdkankan.goods.entity.CameraDetailNumEntity;
-import com.fdkankan.user.entity.SSOUser;
 import com.fdkankan.user.entity.User;
 import com.fdkankan.user.request.RequestCamera;
 import com.fdkankan.user.request.RequestUser;
@@ -77,4 +77,6 @@ public interface IUserService extends IService<User> {
     String saveCooperationUser(RequestCamera camera, String token) throws Exception;
 
     String sceneResourceByCameraId(RequestCamera camera);
+
+    SSOUser getSSOUserByUserId(Long userId);
 }

+ 2 - 2
4dkankan-center-platform/src/main/java/com/fdkankan/user/service/LoginService.java

@@ -7,9 +7,9 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.*;
-import com.fdkankan.user.common.SSOLoginHelper;
+import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.user.common.util.MatrixToImageWriterUtil;
-import com.fdkankan.user.entity.SSOUser;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.user.entity.User;
 import com.fdkankan.user.request.RequestUser;
 import com.fdkankan.user.vo.SSOUserVo;

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/user/service/RegisterService.java

@@ -11,7 +11,7 @@ import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.SecurityUtil;
 import com.fdkankan.common.util.SsoUtil;
 import com.fdkankan.common.validation.Variable;
-import com.fdkankan.user.common.SSOLoginHelper;
+import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.user.entity.User;
 import com.fdkankan.user.request.RequestUser;
 import org.apache.commons.lang3.StringUtils;

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/user/service/impl/UserIncrementServiceImpl.java

@@ -12,7 +12,7 @@ import com.fdkankan.goods.entity.Camera;
 import com.fdkankan.goods.entity.CameraDetail;
 import com.fdkankan.goods.service.ICameraDetailService;
 import com.fdkankan.goods.service.ICameraService;
-import com.fdkankan.user.entity.SSOUser;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.user.entity.UserIncrement;
 import com.fdkankan.user.mapper.IUserIncrementMapper;
 import com.fdkankan.user.request.RequestUserIncrement;

+ 9 - 3
4dkankan-center-platform/src/main/java/com/fdkankan/user/service/impl/UserServiceImpl.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.user.SSOLoginHelper;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.validation.Variable;
@@ -12,10 +14,8 @@ import com.fdkankan.goods.entity.CameraDetail;
 import com.fdkankan.goods.entity.CameraDetailNumEntity;
 import com.fdkankan.goods.service.ICameraDetailService;
 import com.fdkankan.goods.service.ICameraService;
-import com.fdkankan.user.common.SSOLoginHelper;
 import com.fdkankan.user.common.util.QiniuUpload;
 import com.fdkankan.user.entity.ReceiverInfo;
-import com.fdkankan.user.entity.SSOUser;
 import com.fdkankan.user.entity.User;
 import com.fdkankan.user.entity.UserIncrement;
 import com.fdkankan.user.mapper.IUserMapper;
@@ -102,7 +102,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     }
 
     @Override
-    public SSOUser getSsoUserByUserName(User userEntity,String phoneNum) {
+    public SSOUser getSsoUserByUserName(User userEntity, String phoneNum) {
         SSOUser user = null;
         if (userEntity != null){
             user = new SSOUser();
@@ -446,4 +446,10 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         //todo
         return null;
     }
+
+    @Override
+    public SSOUser getSSOUserByUserId(Long userId) {
+        User user = this.getById(userId);
+        return this.getSsoUserByUserName(user,user.getUserName());
+    }
 }

+ 3 - 0
4dkankan-common/src/main/java/com/fdkankan/common/response/BaseResponseAdvice.java

@@ -19,6 +19,9 @@ public class BaseResponseAdvice implements ResponseBodyAdvice<Object> {
 
     @Override
     public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
+//        if(serverHttpRequest.getURI().getPath().contains("feign")){
+//            return body;
+//        }
         System.out.println("响应拦截成功");
         if(body instanceof String){
             return JSONObject.toJSONString(ResultData.ok(body));

+ 27 - 0
4dkankan-common/src/main/java/com/fdkankan/common/user/SSOLoginHelper.java

@@ -0,0 +1,27 @@
+package com.fdkankan.common.user;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SSOLoginHelper {
+    @Autowired
+    private SSOLoginStore ssoLoginStore;
+    public  SSOUser loginCheck(String sessionId) {
+        if (sessionId != null && sessionId.trim().length() > 0) {
+            SSOUser ssoUser = ssoLoginStore.get(sessionId);
+            if (ssoUser != null) {
+                return ssoUser;
+            }
+        }
+        return null;
+    }
+
+    public void login(String token, SSOUser ssoUser) {
+        ssoLoginStore.put(token, ssoUser);
+    }
+
+    public  void logout(String sessionId) {
+        ssoLoginStore.remove(sessionId);
+    }
+}

+ 56 - 0
4dkankan-common/src/main/java/com/fdkankan/common/user/SSOLoginStore.java

@@ -0,0 +1,56 @@
+package com.fdkankan.common.user;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.SsoUtil;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.concurrent.TimeUnit;
+
+@Component
+public class SSOLoginStore {
+
+    @Resource
+    private RedisTemplate<String,String> redisTemplate;
+    /**
+     * get
+     *
+     * @param sessionId
+     * @return
+     */
+    public  SSOUser get(String sessionId) {
+
+        String redisKey = redisKey(sessionId);
+        String objectValue = redisTemplate.opsForValue().get(redisKey);
+        if (objectValue != null) {
+            return JSONObject.parseObject(objectValue, SSOUser.class);
+        }
+        return null;
+    }
+
+    /**
+     * remove
+     *
+     * @param sessionId
+     */
+    public  void remove(String sessionId) {
+        String redisKey = redisKey(sessionId);
+        redisTemplate.delete(redisKey);
+    }
+
+    /**
+     * put
+     *
+     * @param sessionId
+     * @param ssoUser
+     */
+    public  void put(String sessionId, SSOUser ssoUser) {
+        String redisKey = redisKey(sessionId);
+        redisTemplate.opsForValue().set(redisKey, JSONObject.toJSONString(ssoUser), 216000, TimeUnit.SECONDS);
+    }
+
+    private static String redisKey(String sessionId){
+        return SsoUtil.SSO_SESSIONID.concat("#").concat(sessionId);
+    }
+}

+ 25 - 0
4dkankan-common/src/main/java/com/fdkankan/common/user/SSOUser.java

@@ -0,0 +1,25 @@
+package com.fdkankan.common.user;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Set;
+
+@Data
+public class SSOUser implements Serializable {
+
+    private static final long serialVersionUID = -2560069033053679931L;
+
+    private Long id;
+
+    private String userName;
+
+    private String password;
+
+    private String email;
+
+    private Set<String> permissionSet;
+
+    private Set<String> roleSet;
+
+}