Browse Source

设备中心模块

lyhzzz 3 years ago
parent
commit
b839ec0163
23 changed files with 875 additions and 138 deletions
  1. 69 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceCameraController.java
  2. 38 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceInvoiceController.java
  3. 51 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceSceneController.java
  4. 55 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceVirtualOrderController.java
  5. 39 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/GoodsController.java
  6. 78 121
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/app/DeviceCameraAppController.java
  7. 162 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/request/RequestScene.java
  8. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/ICameraDetailService.java
  9. 9 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/IDeviceService.java
  10. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/IGoodsService.java
  11. 13 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CameraDetailServiceImpl.java
  12. 87 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/DeviceServiceImpl.java
  13. 33 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/GoodsServiceImpl.java
  14. 2 2
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IInvoiceService.java
  15. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IOrderService.java
  16. 9 8
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/InvoiceServiceImpl.java
  17. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/OrderServiceImpl.java
  18. 4 2
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/VirtualOrderServiceImpl.java
  19. 97 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/InterComMessageController.java
  20. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/UserOrderController.java
  21. 16 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestMessage.java
  22. 15 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IIntercomMessageService.java
  23. 91 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/IntercomMessageServiceImpl.java

+ 69 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceCameraController.java

@@ -0,0 +1,69 @@
+package com.fdkankan.platform.goods.controller.api;
+
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.goods.service.IDeviceService;
+import com.fdkankan.platform.goods.vo.ResponseCameraApp;
+import com.fdkankan.platform.user.request.RequestCamera;
+import com.fdkankan.platform.user.vo.ResponseCamera;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 设备中心接口-
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/device/camera")
+public class DeviceCameraController extends BaseController {
+
+    @Autowired
+    private IDeviceService deviceService;
+
+    /**
+     * 获取设备详情
+     * cameraId     相机id
+     * @return
+     */
+    @RequestMapping(value = "/detail", method = RequestMethod.POST)
+    public ResponseCamera getCameraInfo(@RequestBody RequestCamera param) throws Exception {
+        return deviceService.getCameraDetail(param.getCameraId());
+    }
+
+    /**
+     * 绑定设备
+     * userName     用户名
+     * childName    相机的物理地址
+     * @return
+     */
+    @RequestMapping(value = "/bindCamera", method = RequestMethod.POST)
+    public String bindCamera(@RequestBody RequestCamera camera) throws Exception {
+        return deviceService.bindCamera(camera);
+    }
+
+    /**
+     * 获取用户所有设备
+     * userName     用户名
+     */
+    @RequestMapping(value = "/getCamerasForUser", method = RequestMethod.POST)
+    public List<ResponseCameraApp> getCamerasForUser(@RequestBody RequestCamera camera) throws Exception {
+        return  deviceService.getCamerasForUser(camera);
+    }
+
+    /**
+     * 设备解除绑定
+     * userName         用户名
+     * cameraType       相机类型,1双目,4八目
+     * childName        相机的物理地址
+     * @return
+     */
+    @RequestMapping(value = "/unbind", method = RequestMethod.POST)
+    public String unbind(@RequestBody RequestCamera camera) throws Exception {
+        return deviceService.unbind(camera);
+    }
+}

+ 38 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceInvoiceController.java

@@ -0,0 +1,38 @@
+package com.fdkankan.platform.goods.controller.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.order.service.IInvoiceService;
+import com.fdkankan.platform.user.request.RequestInvoice;
+import com.fdkankan.platform.user.vo.ResponseInvoice;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 设备中心接口-设备发票模块
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/device/invoice")
+public class DeviceInvoiceController extends BaseController {
+
+    @Autowired
+    private IInvoiceService invoiceService;
+
+    /**
+     * 设备发票列表
+     * pageNum
+     * pageSize
+     * @return
+     */
+    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    public Page<ResponseInvoice> getInvoices(@RequestBody RequestInvoice param) throws Exception {
+        return invoiceService.listInvoice(param,null);
+    }
+
+
+}

+ 51 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceSceneController.java

@@ -0,0 +1,51 @@
+package com.fdkankan.platform.goods.controller.api;
+
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.goods.request.RequestScene;
+import com.fdkankan.platform.goods.service.IDeviceService;
+import com.fdkankan.platform.user.request.RequestCamera;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 设备中心接口-场景模块
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/device/scene")
+public class DeviceSceneController extends BaseController {
+
+    @Autowired
+    private IDeviceService deviceService;
+
+    /**
+     * 获取相机场景记录
+     * cameraId         相机id
+     * cameraType       相机类型
+     * searchKey        关键词
+     * endTime          结束时间
+     * startTime        开始时间
+     * sceneType        0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居,99一件换装虚拟房源
+     * @return
+     */
+    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    public String getScenes(@RequestBody RequestCamera param) throws Exception {
+        return deviceService.getScenes(param);
+    }
+
+    /**
+     * 删除场景
+     * sceneNum     场景码
+     * @return
+     */
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    public String deleteScene(@RequestBody RequestScene base) throws Exception {
+        return deviceService.deleteScene(base.getSceneNum());
+    }
+
+
+}

+ 55 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/DeviceVirtualOrderController.java

@@ -0,0 +1,55 @@
+package com.fdkankan.platform.goods.controller.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.order.service.IExpansionOrderService;
+import com.fdkankan.platform.order.service.IVirtualOrderService;
+import com.fdkankan.platform.order.vo.ResponseExpansionOrder;
+import com.fdkankan.platform.user.request.RequestCamera;
+import com.fdkankan.platform.user.request.RequestVirtualOrder;
+import com.fdkankan.platform.user.vo.ResponseVirtualOrder;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 设备中心接口-虚拟订单模块
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/device/virtualOrder")
+public class DeviceVirtualOrderController extends BaseController {
+
+    @Autowired
+    private IVirtualOrderService virtualOrderService;
+    @Autowired
+    private IExpansionOrderService expansionOrderService;
+
+    /**
+     * 虚拟订单列表
+     * cameraId     相机id
+     * status       状态
+     * childName    相机mac地址
+     * @return
+     */
+    @RequestMapping(value = "/chargeList", method = RequestMethod.POST)
+    public Page<ResponseVirtualOrder> chargeList(@RequestBody RequestVirtualOrder param) throws Exception {
+        return virtualOrderService.chargeList(param, null);
+    }
+
+    /**
+     * 扩容订单列表
+     * cameraId     相机id
+     * status       状态
+     * childName    相机mac地址
+     * @return
+     */
+    @RequestMapping(value = "/expansionList", method = RequestMethod.POST)
+    public Page<ResponseExpansionOrder> expansionList(@RequestBody RequestCamera param) throws Exception {
+        return expansionOrderService.getExpansionListByParam(param);
+    }
+
+}

+ 39 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/api/GoodsController.java

@@ -0,0 +1,39 @@
+package com.fdkankan.platform.goods.controller.api;
+
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.goods.service.IGoodsService;
+import com.fdkankan.platform.goods.service.IGoodsSkuService;
+import com.fdkankan.platform.goods.vo.ResponseGoods;
+import com.fdkankan.platform.user.request.RequestCart;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 购物车模块
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/goods")
+public class GoodsController extends BaseController {
+
+    @Autowired
+    private IGoodsService goodsService;
+    @Autowired
+    private IGoodsSkuService goodsSkuService;
+
+    /**
+     * 商品详情
+     * goodsId      goodsId
+     * @param cart
+     * @return
+     */
+    @RequestMapping(value = "/detail", method = RequestMethod.POST)
+    public ResponseGoods detail(@RequestBody RequestCart cart) throws Exception {
+        return goodsService.getDetail(cart.getGoodsId());
+    }
+
+}

+ 78 - 121
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/app/DeviceCameraAppController.java

@@ -1,121 +1,78 @@
-//package com.fdkankan.platform.goods.controller.app;
-//
-//import com.fdkankan.common.controller.BaseController;
-//import com.fdkankan.platform.user.request.RequestCamera;
-//import lombok.extern.log4j.Log4j2;
-//import org.apache.commons.lang.StringUtils;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.web.bind.annotation.RequestBody;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RequestMethod;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import java.util.ArrayList;
-//import java.util.List;
-//
-///**
-// * 设备中心接口-app设备模块
-// */
-//@Log4j2
-//@RestController
-//@RequestMapping("/api/app/camera")
-//public class DeviceCameraAppController extends BaseController {
-//
-//
-//    /**
-//     * 获取设备详情
-//     * childPassword        相机密码
-//     * childName            相机的物理地址
-//     */
-//    @RequestMapping(value = "/getCameraInfo", method = RequestMethod.POST)
-//    public String getCameraInfo(@RequestBody RequestCamera param) throws Exception {
-//
-//    }
-//
-//
-//    /**
-//     * 绑定设备
-//     */
-//    @ApiOperation("绑定设备")
-//    @RequestMapping(value = "/bindCamera", method = RequestMethod.POST)
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "userName", value = "用户名", dataType = "number"),
-//            @ApiImplicitParam(name = "childName", value = "相机的物理地址", dataType = "String"),
-//            @ApiImplicitParam(name = "cameraType", value = "相机类型,1双目,4八目", dataType = "String"),
-//            @ApiImplicitParam(name = "snCode", value = "sn码", dataType = "String")
-//    })
-//    public Result bindCamera(@RequestBody RequestCamera camera) throws Exception {
-//        if((StringUtils.isEmpty(camera.getChildName()) && StringUtils.isEmpty(camera.getSnCode())) || StringUtils.isEmpty(camera.getUserName())){
-//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
-//        }
-//        return deviceService.bindProCamera(camera);
-//    }
-//
-//    /**
-//     * 获取用户所有设备
-//     */
-//    @ApiOperation("获取用户所有设备")
-//    @RequestMapping(value = "/getCamerasForUser", method = RequestMethod.POST)
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "userName", value = "用户名", dataType = "number"),
-//            @ApiImplicitParam(name = "cameraType", value = "相机类型,1双目,4八目", dataType = "String")
-//    })
-//    public Result<List<ResponseCameraApp>> getCamerasForUser(@RequestBody RequestCamera camera) throws Exception {
-//        if(StringUtils.isEmpty(camera.getUserName())){
-//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
-//        }
-//        Result userResult = userService.findByUserName(camera.getUserName());
-//        if (userResult.getCode() == Result.CODE_FAILURE){
-//            return userResult;
-//        }
-//        SSOUser ssoUser = mapper.convertValue(userResult.getData(), SSOUser.class);
-//        if (ssoUser == null){
-//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3015, LoginConstant.FAILURE_MSG_3015);
-//        }
-//
-//        if(camera.getCameraType() == null){
-//            camera.setCameraType(4);
-//        }
-//        List<CameraDetailEntity> list = cameraDetailService.findEntityByUserId(ssoUser.getId(), camera.getCameraType().longValue());
-//        if(list == null){
-//            Result.success();
-//        }
-//
-//        List<ResponseCameraApp> resultList = new ArrayList<>();
-//        for(CameraDetailEntity entity : list){
-//            CameraEntity cameraEntity = goodsService.findCameraById(entity.getCameraId());
-//
-//            if(cameraEntity == null){
-//                continue;
-//            }
-//            Result result = goodsService.getCameraInfo(cameraEntity.getChildName(), cameraEntity.getChildPassword());
-//            if (result.getCode() == Result.CODE_FAILURE){
-//                return result;
-//            }
-//            ResponseCameraApp cameraApp = mapper.convertValue(result.getData(), ResponseCameraApp.class);
-//
-//            UserIncrementEntity userIncrementEntity = userIncrementService.findByCameraId(cameraEntity.getId());
-//            if(userIncrementEntity != null){
-//                cameraApp.setUserIncrementId(userIncrementEntity.getId());
-//                cameraApp.setIsExpire(userIncrementEntity.getIsExpired());
-//            }
-//
-//            resultList.add(cameraApp);
-//        }
-//
-//        return Result.success(resultList);
-//    }
-//
-//    /**
-//     * 设备解除绑定
-//     */
-//    @ApiOperation("设备解除绑定")
-//    @RequestMapping(value = "/unbind", method = RequestMethod.POST)
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "userName", value = "用户名", dataType = "number"),
-//            @ApiImplicitParam(name = "cameraType", value = "相机类型,1双目,4八目", dataType = "String"),
-//            @ApiImplicitParam(name = "childName", value = "相机的物理地址", dataType = "String")})
-//    public Result unbind(@RequestBody RequestCamera camera) throws Exception {
-//        return deviceService.unbindPro(camera);
-//    }
-//}
+package com.fdkankan.platform.goods.controller.app;
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.platform.goods.service.IDeviceService;
+import com.fdkankan.platform.goods.vo.ResponseCameraApp;
+import com.fdkankan.platform.user.request.RequestCamera;
+import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 设备中心接口-app设备模块
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/app/camera")
+public class DeviceCameraAppController extends BaseController {
+
+    @Autowired
+    private IDeviceService deviceService;
+
+    /**
+     * 获取设备详情
+     * childPassword        相机密码
+     * childName            相机的物理地址
+     * @return
+     */
+    @RequestMapping(value = "/getCameraInfo", method = RequestMethod.POST)
+    public ResponseCameraApp getCameraInfo(@RequestBody RequestCamera param) throws Exception {
+        return deviceService.getCameraInfo(param);
+    }
+
+    /**
+     * 绑定设备
+     * userName     用户名
+     * childName    相机的物理地址
+     * cameraType   相机类型,1双目,4八目
+     * snCode       sn码
+     * @return
+     */
+    @RequestMapping(value = "/bindCamera", method = RequestMethod.POST)
+    public ResponseCameraApp bindCamera(@RequestBody RequestCamera camera) throws Exception {
+        if((StringUtils.isEmpty(camera.getChildName()) && StringUtils.isEmpty(camera.getSnCode())) || StringUtils.isEmpty(camera.getUserName())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        return deviceService.bindProCamera(camera);
+    }
+
+    /**
+     * 获取用户所有设备
+     * userName     用户名
+     * cameraType   相机类型,1双目,4八目
+     */
+    @RequestMapping(value = "/getCamerasForUser", method = RequestMethod.POST)
+    public List<ResponseCameraApp> getCamerasForUser(@RequestBody RequestCamera camera) throws Exception {
+        return  deviceService.getCamerasForUser(camera);
+    }
+
+    /**
+     * 设备解除绑定
+     * userName         用户名
+     * cameraType       相机类型,1双目,4八目
+     * childName        相机的物理地址
+     * @return
+     */
+    @RequestMapping(value = "/unbind", method = RequestMethod.POST)
+    public String unbind(@RequestBody RequestCamera camera) throws Exception {
+        return deviceService.unbindPro(camera);
+    }
+}

+ 162 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/request/RequestScene.java

@@ -0,0 +1,162 @@
+package com.fdkankan.platform.goods.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class RequestScene extends RequestBase implements Serializable {
+
+    private static final long serialVersionUID = 3939730189762555357L;
+
+    private Long sceneId;
+
+    private String type;
+
+    private String item;
+
+    private String order;
+
+    private String searchKey;
+
+    private String keywordType;
+
+    private String guideSid;
+
+    private String guideName;
+
+    private String sceneNum;
+
+    private String childName;
+    //场景的二维设计图数据
+    private String geoData;
+    //	场景序号
+    private String index;
+    //模型的中心(可以忽略)
+    private String center;
+    //模型的缩放系数
+    private String zoom;
+    //模型测量线的缩放系数
+    private String realScale;
+    //场景二维设计图
+    private String imgData;
+    //场景标题
+    private String sceneName;
+    //场景描述信息
+    private String sceneDec;
+    //场景所属行业
+    private String sceneType;
+    //场景密码
+    private String sceneKey;
+    //版本号,每编辑一次加1
+    private String version;
+    //场景封面图是否默认
+    private String thumbImg;
+    //场景封面图(大)
+    private String thumbBigImg;
+    //场景封面图(小)
+    private String thumbSmallImg;
+    //初始点的uuid
+    private String currentPanoId;
+    //	地面的logo是否默认
+    private String floorLogo;
+    // 地面logo图片
+    private String floorLogoImg;
+    // 地面logo图片的大小
+    private String floorLogoSize;
+    // 模型贴图的风格
+    private String sceneIndex;
+    // 模型的初始信息:坐标,朝向等
+    private String entry;
+    // 场景封面图(移动端,鱼眼)
+    private String thumbFishBigImg;
+    // 设计页面的元素信息
+    private String floorPlaneInfo;
+
+    private String visiblePanos;
+
+    private String hotData;
+
+    private String data;
+
+    private String solveType;
+
+    private Long feedBackId;
+    // 排序
+    private String sceneInterest;
+
+    private String phone;
+
+    private String message;
+    /**
+     * 普通录屏文件地址
+     */
+    private String screencapMusic;
+
+    private String originalFileName;
+
+    private Integer sceneScheme;
+
+    /**
+     * 源相机sn
+     */
+    private String sourceSn;
+
+    /**
+     * 目标相机sn
+     */
+    private String targetSn;
+
+    /**
+     * 源手机验证码
+     */
+    private String sourceCode;
+
+    /**
+     * 目标手机验证码
+     */
+    private String targetCode;
+
+    private String snCode;
+
+    private String num;
+
+    private String objName;
+
+    private String mntName;
+
+    private Long userId;
+
+    private String userName;
+
+    private String userIds;
+
+    private String cameraIds;
+
+    private String nums;
+
+    private Long folderId;
+
+    /**
+     * true,计算成功的,false:计算失败的,null:全部
+     */
+    private Boolean calculated;
+
+    private Integer folderType;
+
+    private Integer sceneSource;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    /**
+     * 用户拥有的相机id列表
+     */
+    private String ownCameraIds;
+
+    private List<String> sceneNumList;
+}

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

@@ -52,4 +52,6 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     Long getSumBalanceByUserId(Long userId);
 
     boolean updateCameraBalance(Long cameraId, int body, Integer points);
+
+    List<CameraDetail> getListByUserId(Long id, Long cameraType);
 }

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

@@ -6,8 +6,14 @@ import com.fdkankan.platform.goods.vo.ResponseCameraApp;
 import com.fdkankan.platform.user.request.RequestCamera;
 import com.fdkankan.platform.user.vo.ResponseCamera;
 
+import java.util.List;
+
 public interface IDeviceService {
 
+    ResponseCameraApp getCameraInfo(RequestCamera param);
+
+    List<ResponseCameraApp> getCamerasForUser(RequestCamera camera);
+
     ResponseCamera getCameraDetail(Long cameraId) throws Exception;
 
     String bindCamera(RequestCamera camera) throws Exception;
@@ -23,4 +29,7 @@ public interface IDeviceService {
     String unbind(RequestCamera camera) throws Exception;
 
     String unbindPro(RequestCamera camera) throws Exception;
+
+
+
 }

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

@@ -15,4 +15,6 @@ import com.fdkankan.platform.goods.vo.ResponseGoods;
 public interface IGoodsService extends IService<Goods> {
 
     ResponseGoods getByGoodsId(Long goodsId);
+
+    ResponseGoods getDetail(Long goodsId);
 }

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

@@ -409,4 +409,17 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         detailEntity.setBalance(String.valueOf(sub));
         return this.updateById(detailEntity);
     }
+
+    @Override
+    public List<CameraDetail> getListByUserId(Long userId, Long cameraType) {
+        QueryWrapper<CameraDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CameraDetail::getUserId,userId);
+        queryWrapper.lambda().orderByDesc(CameraDetail::getUpdateTime);
+        if(cameraType != null ){
+            queryWrapper.lambda().eq(CameraDetail::getGoodsId,cameraType);
+            return this.list(queryWrapper);
+        }
+        queryWrapper.lambda().ne(CameraDetail::getGoodsId,4);
+        return this.list(queryWrapper);
+    }
 }

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

@@ -8,9 +8,11 @@ import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.FileSizeUtil;
 import com.fdkankan.platform.goods.entity.Camera;
 import com.fdkankan.platform.goods.entity.CameraDetail;
+import com.fdkankan.platform.goods.entity.Goods;
 import com.fdkankan.platform.goods.service.ICameraDetailService;
 import com.fdkankan.platform.goods.service.ICameraService;
 import com.fdkankan.platform.goods.service.IDeviceService;
+import com.fdkankan.platform.goods.service.IGoodsService;
 import com.fdkankan.platform.goods.vo.ResponseCameraApp;
 import com.fdkankan.platform.user.entity.User;
 import com.fdkankan.platform.user.entity.UserIncrement;
@@ -18,10 +20,15 @@ import com.fdkankan.platform.user.request.RequestCamera;
 import com.fdkankan.platform.user.service.IUserIncrementService;
 import com.fdkankan.platform.user.service.IUserService;
 import com.fdkankan.platform.user.vo.ResponseCamera;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Service("deviceService")
 @Transactional
 public class DeviceServiceImpl implements IDeviceService {
@@ -32,10 +39,89 @@ public class DeviceServiceImpl implements IDeviceService {
     private ICameraDetailService cameraDetailService;
     @Autowired
     private ICameraService cameraService;
-
+    @Autowired
+    private IGoodsService goodsService;
     @Autowired
     private IUserIncrementService userIncrementService;
 
+
+    @Override
+    public ResponseCameraApp getCameraInfo(RequestCamera param) {
+        if(StringUtils.isEmpty(param.getChildName()) || StringUtils.isEmpty(param.getChildPassword())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        ResponseCameraApp cameraEntity = this.getCameraInfo(param.getChildName(), param.getChildPassword());
+        if(cameraEntity.getUserId() != null){
+            User user = userService.getById(cameraEntity.getUserId());
+            if (user == null){
+                throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+            }
+            cameraEntity.setUserName(user.getUserName());
+        }
+        //sceneService.getSceneCount(cameraEntity.getId());
+        //todo getSceneCount
+        cameraEntity.setSceneCount(0);
+        UserIncrement userIncrementEntity = userIncrementService.getByCameraId(cameraEntity.getId());
+        if(userIncrementEntity != null){
+            cameraEntity.setUserIncrementId(userIncrementEntity.getId());
+            cameraEntity.setIsExpire(userIncrementEntity.getIsExpired());
+        }
+        return cameraEntity;
+    }
+
+    public ResponseCameraApp getCameraInfo(String appUserName, String appPassword){
+        Camera dbCameraEntity = cameraService.getByChildNameAndChildPassword(appUserName, appPassword);
+        if (dbCameraEntity == null){
+            throw new BusinessException(AppConstant.FAILURE_CODE_4012, AppConstant.FAILURE_MSG_4012);
+        }
+        CameraDetail entity = cameraDetailService.getByCameraId(dbCameraEntity.getId());
+
+        Goods goodsEntity = goodsService.getById(entity.getGoodsId());
+        ResponseCameraApp cameraApp = new ResponseCameraApp();
+        BeanUtils.copyProperties(dbCameraEntity, cameraApp);
+        BeanUtils.copyProperties(entity, cameraApp);
+        BeanUtils.copyProperties(goodsEntity, cameraApp);
+        cameraApp.setId(dbCameraEntity.getId());
+        return  cameraApp;
+    }
+
+
+    @Override
+    public List<ResponseCameraApp> getCamerasForUser(RequestCamera camera) {
+        if(StringUtils.isEmpty(camera.getUserName())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        User user = userService.getUserByUserName(camera.getUserName());
+        if(user == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        if(camera.getCameraType() == null){
+            camera.setCameraType(4);
+        }
+        List<CameraDetail> list = cameraDetailService.getListByUserId(user.getId(), camera.getCameraType().longValue());
+        if(list == null){
+            throw new BusinessException(ErrorCode.NOT_RECORD);
+        }
+        List<ResponseCameraApp> resultList = new ArrayList<>();
+        for(CameraDetail entity : list){
+            Camera cameraEntity = cameraService.getById(entity.getCameraId());
+            if(cameraEntity == null){
+                continue;
+            }
+            ResponseCameraApp cameraApp = this.getCameraInfo(cameraEntity.getChildName(), cameraEntity.getChildPassword());
+            if (cameraApp == null){
+                throw new BusinessException(ErrorCode.NOT_RECORD);
+            }
+            UserIncrement userIncrementEntity = userIncrementService.getByCameraId(cameraEntity.getId());
+            if(userIncrementEntity != null){
+                cameraApp.setUserIncrementId(userIncrementEntity.getId());
+                cameraApp.setIsExpire(userIncrementEntity.getIsExpired());
+            }
+            resultList.add(cameraApp);
+        }
+        return resultList;
+    }
+
     @Override
     public ResponseCamera getCameraDetail(Long cameraId) throws Exception {
         ResponseCamera vo = null;

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

@@ -1,13 +1,22 @@
 package com.fdkankan.platform.goods.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.platform.goods.entity.Goods;
+import com.fdkankan.platform.goods.entity.GoodsSku;
 import com.fdkankan.platform.goods.mapper.IGoodsMapper;
 import com.fdkankan.platform.goods.service.IGoodsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.platform.goods.service.IGoodsSkuService;
 import com.fdkankan.platform.goods.vo.ResponseGoods;
+import com.fdkankan.platform.goods.vo.ResponseGoodsSku;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 商品主表 服务实现类
@@ -19,6 +28,9 @@ import org.springframework.stereotype.Service;
 @Service
 public class GoodsServiceImpl extends ServiceImpl<IGoodsMapper, Goods> implements IGoodsService {
 
+    @Autowired
+    private IGoodsSkuService goodsSkuService;
+
     @Override
     public ResponseGoods getByGoodsId(Long goodsId) {
         Goods goods = this.getById(goodsId);
@@ -30,4 +42,24 @@ public class GoodsServiceImpl extends ServiceImpl<IGoodsMapper, Goods> implement
         }
         return responseGoods;
     }
+
+    @Override
+    public ResponseGoods getDetail(Long goodsId) {
+        ResponseGoods responseGoods = this.getByGoodsId(goodsId);
+        if(responseGoods == null){
+            throw new BusinessException(ErrorCode.NOT_RECORD);
+        }
+        List<GoodsSku> skus = goodsSkuService.getByGoodsId(goodsId);
+        List<ResponseGoodsSku> responseGoodsSkus = null;
+        if (skus != null && skus.size() > 0){
+            responseGoodsSkus = new ArrayList<>();
+            for (GoodsSku sku : skus){
+                ResponseGoodsSku responseGoodsSku = new ResponseGoodsSku();
+                BeanUtils.copyProperties(sku, responseGoodsSku);
+                responseGoodsSkus.add(responseGoodsSku);
+            }
+        }
+        responseGoods.setSkuList(responseGoodsSkus);
+        return responseGoods;
+    }
 }

+ 2 - 2
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IInvoiceService.java

@@ -1,10 +1,10 @@
 package com.fdkankan.platform.order.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fdkankan.platform.order.entity.Invoice;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.platform.order.entity.Invoice;
+import com.fdkankan.platform.order.request.RequestPlaceOrder;
 import com.fdkankan.platform.user.request.RequestInvoice;
-import com.fdkankan.platform.order.RequestPlaceOrder;
 import com.fdkankan.platform.user.vo.ResponseInvoice;
 
 /**

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

@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.platform.goods.vo.ResponseGoods;
 import com.fdkankan.platform.goods.vo.ResponseGoodsSku;
-import com.fdkankan.platform.order.RequestPlaceOrder;
 import com.fdkankan.platform.order.entity.Order;
+import com.fdkankan.platform.order.request.RequestPlaceOrder;
 import com.fdkankan.platform.order.vo.ResponseCommerceOrder;
 import com.fdkankan.platform.order.vo.ResponseExpansionOrder;
 import com.fdkankan.platform.user.request.*;

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

@@ -4,19 +4,19 @@ 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.AppConstant;
+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.platform.order.entity.*;
 import com.fdkankan.platform.order.mapper.IInvoiceMapper;
+import com.fdkankan.platform.order.request.RequestPlaceOrder;
 import com.fdkankan.platform.order.service.*;
 import com.fdkankan.platform.user.request.RequestInvoice;
-import com.fdkankan.platform.order.RequestPlaceOrder;
 import com.fdkankan.platform.user.service.IUserService;
 import com.fdkankan.platform.user.vo.ResponseInvoice;
 import com.fdkankan.platform.user.vo.ResponseOrder;
-import com.fdkankan.common.constant.ErrorCode;
-import com.fdkankan.common.constant.ServerCode;
-import com.fdkankan.common.exception.BusinessException;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -93,10 +93,12 @@ public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> imp
 
     @Override
     public Page<ResponseInvoice> listInvoice(RequestInvoice param, String token) {
-        SSOUser ssoUser = userService.getSSOUserByToken(token);
-        Page<Invoice> page = new Page<>(param.getPageNum(),param.getPageSize());
         QueryWrapper<Invoice> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(Invoice::getUserId,ssoUser.getId());
+        if(token!=null){
+            SSOUser ssoUser = userService.getSSOUserByToken(token);
+            queryWrapper.lambda().eq(Invoice::getUserId,ssoUser.getId());
+        }
+        Page<Invoice> page = new Page<>(param.getPageNum(),param.getPageSize());
         queryWrapper.lambda().ne(Invoice::getConsumeType ,-1);
         if(param.getCameraId()!=null){
             queryWrapper.lambda().eq(Invoice::getCameraId ,param.getCameraId());
@@ -108,7 +110,6 @@ public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> imp
                 queryWrapper.lambda().ne(Invoice::getType ,0);
             }
         }
-
         queryWrapper.lambda().orderByDesc(Invoice::getCreateTime);
         Page<Invoice> pageEntity = this.page(page, queryWrapper);
 

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

@@ -22,7 +22,7 @@ import com.fdkankan.platform.goods.entity.*;
 import com.fdkankan.platform.goods.service.*;
 import com.fdkankan.platform.goods.vo.ResponseGoods;
 import com.fdkankan.platform.goods.vo.ResponseGoodsSku;
-import com.fdkankan.platform.order.RequestPlaceOrder;
+import com.fdkankan.platform.order.request.RequestPlaceOrder;
 import com.fdkankan.platform.order.constant.OrderEnum;
 import com.fdkankan.platform.order.entity.Invoice;
 import com.fdkankan.platform.order.entity.Order;

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

@@ -241,9 +241,11 @@ public class VirtualOrderServiceImpl extends ServiceImpl<IVirtualOrderMapper, Vi
 
     @Override
     public Page<ResponseVirtualOrder> chargeList(RequestVirtualOrder param, String token) {
-        SSOUser ssouser = userService.getSSOUserByToken(token);
+        if(token!=null){
+            SSOUser ssouser = userService.getSSOUserByToken(token);
+            param.setUserId(ssouser.getId());
+        }
         Page<ResponseVirtualOrder> pageVo = new Page<>(param.getPageNum(), param.getPageSize());
-        param.setUserId(ssouser.getId());
         Integer start = (param.getPageNum() -1) * param.getPageSize();
         Integer count =  virtualOrderMapper.getChargeCountByParam(param.getUserId(),param.getStatus(),param.getChildName(),param.getCameraId());
         if(count<=0){

+ 97 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/InterComMessageController.java

@@ -0,0 +1,97 @@
+package com.fdkankan.platform.user.controller.api;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.agent.request.RequestNote;
+import com.fdkankan.platform.agent.request.RequestSearch;
+import com.fdkankan.platform.user.entity.IntercomMessage;
+import com.fdkankan.platform.user.request.RequestMessage;
+import com.fdkankan.platform.user.service.IIntercomMessageService;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 咨询留言
+ */
+
+@Log4j2
+@RestController
+@RequestMapping("/api")
+public class InterComMessageController extends BaseController {
+
+    @Autowired
+    private IIntercomMessageService interComMessageService;
+
+    /**
+     * 保存留言
+     * contact  联系方式
+     * content  留言内容
+     */
+    @RequestMapping(value = "/intercomMessage/leave", method = RequestMethod.POST)
+    public String leave(@RequestBody RequestMessage message) throws Exception {
+        return interComMessageService.saveByParam(message);
+    }
+
+    /**
+     * 留言列表-根据邮件查询
+     * email    email
+     * @return
+     */
+    @RequestMapping(value = "/mine", method = RequestMethod.POST)
+    public List<IntercomMessage> mine(@RequestBody RequestMessage message) throws Exception {
+        return interComMessageService.getByEmail(message.getEmail());
+    }
+
+
+    /**
+     * 留言列表
+     *
+     * @return
+     */
+    @GetMapping("/manager/intercomMessage/list")
+    public Page<IntercomMessage> list(@RequestParam(value="pageNum", defaultValue="0", required = false) Integer pageNum,
+                                      @RequestParam(value="pageSize", defaultValue="10", required = false) Integer pageSize) throws Exception {
+        return interComMessageService.page(new Page<>(pageNum,pageSize),new QueryWrapper<IntercomMessage>().lambda().orderByDesc(IntercomMessage::getCreateTime));
+    }
+
+
+    /**
+     * 更新状态
+     * id           id
+     * state        活动状态
+     */
+    @GetMapping("/manager/intercomMessage/update/active/{id}/{state}")
+    private String updateActive(@PathVariable("id") Long id, @PathVariable("state") String state){
+        return interComMessageService.updateActive(id,state);
+    }
+
+
+    /**
+     * 更新备注信息
+     * id
+     * noteType         备注登记
+     * noteContent      备注内容
+     */
+    @PostMapping("/manager/intercomMessage/update/note")
+    private String updateNote(@RequestBody RequestNote param){
+        return interComMessageService.updateNote(param);
+    }
+
+
+    /**
+     * 模糊查询
+     * startDate    开始时间
+     * endDate      结束时间
+     * itemName     项目名称
+     * @return
+     */
+    @PostMapping("/manager/intercomMessage/search")
+    private Page<IntercomMessage> search(@RequestBody RequestSearch param) {
+        return interComMessageService.searchLike(param);
+    }
+
+}

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/UserOrderController.java

@@ -3,7 +3,7 @@ package com.fdkankan.platform.user.controller.api;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.platform.goods.vo.ResponseGoods;
 import com.fdkankan.platform.goods.vo.ResponseGoodsSku;
-import com.fdkankan.platform.order.RequestPlaceOrder;
+import com.fdkankan.platform.order.request.RequestPlaceOrder;
 import com.fdkankan.platform.order.service.IOrderService;
 import com.fdkankan.platform.order.vo.ResponseCommerceOrder;
 import com.fdkankan.platform.order.vo.ResponseExpansionOrder;

+ 16 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestMessage.java

@@ -0,0 +1,16 @@
+package com.fdkankan.platform.user.request;
+
+import lombok.Data;
+
+@Data
+public class RequestMessage {
+
+    private String phone;
+
+    private String email;
+
+    private String content;
+
+    // 联系方式
+    private String contact ;
+}

+ 15 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IIntercomMessageService.java

@@ -1,7 +1,13 @@
 package com.fdkankan.platform.user.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.platform.agent.request.RequestNote;
+import com.fdkankan.platform.agent.request.RequestSearch;
 import com.fdkankan.platform.user.entity.IntercomMessage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.platform.user.request.RequestMessage;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IIntercomMessageService extends IService<IntercomMessage> {
 
+    String saveByParam(RequestMessage message);
+
+    List<IntercomMessage> getByEmail(String email);
+
+    String updateActive(Long id, String state);
+
+    String updateNote(RequestNote param);
+
+    Page<IntercomMessage> searchLike(RequestSearch param);
 }

+ 91 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/IntercomMessageServiceImpl.java

@@ -1,11 +1,25 @@
 package com.fdkankan.platform.user.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.validation.ValidationUtils;
+import com.fdkankan.platform.agent.request.RequestNote;
+import com.fdkankan.platform.agent.request.RequestSearch;
 import com.fdkankan.platform.user.entity.IntercomMessage;
 import com.fdkankan.platform.user.mapper.IIntercomMessageMapper;
+import com.fdkankan.platform.user.request.RequestMessage;
 import com.fdkankan.platform.user.service.IIntercomMessageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * <p>
  * 咨询留言表 服务实现类
@@ -17,4 +31,81 @@ import org.springframework.stereotype.Service;
 @Service
 public class IntercomMessageServiceImpl extends ServiceImpl<IIntercomMessageMapper, IntercomMessage> implements IIntercomMessageService {
 
+    @Override
+    public String saveByParam(RequestMessage message) {
+        if (StringUtils.isEmpty(message.getContact()) || StringUtils.isEmpty(message.getContent())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        IntercomMessage interComMessage = new IntercomMessage();
+        interComMessage.setContent(message.getContent());
+        interComMessage.setContact(message.getContact());
+        interComMessage.setCreateTime(new Date());
+        interComMessage.setUpdateTime(new Date());
+        interComMessage.setRecStatus("A");
+        interComMessage.setNoteType(1);
+        interComMessage.setState(1);
+        if(!this.save(interComMessage)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public List<IntercomMessage> getByEmail(String email) {
+        if (StringUtils.isEmpty(email)){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        LambdaQueryWrapper<IntercomMessage> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(IntercomMessage::getEmail,email);
+        queryWrapper.orderByDesc(IntercomMessage::getCreateTime);
+        return this.list(queryWrapper);
+    }
+
+    @Override
+    public String updateActive(Long id, String state) {
+        IntercomMessage messageEntity = this.getById(id);
+        int iState = Integer.parseInt(state);
+        if (messageEntity == null || !ValidationUtils.validateState(iState)) {
+            throw new BusinessException(ErrorCode.NOT_RECORD);
+        }
+        messageEntity.setState(iState);
+        if(!this.updateById(messageEntity)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String updateNote(RequestNote param) {
+        IntercomMessage messageEntity = this.getById(param.getId());
+        if (messageEntity == null ) {
+            throw new BusinessException(ErrorCode.NOT_RECORD);
+        }
+        if (!ValidationUtils.validateInteger(param.getNoteType())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        messageEntity.setNoteType(param.getNoteType());
+        messageEntity.setNoteContent(param.getNoteContent());
+        if(!this.updateById(messageEntity)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public Page<IntercomMessage> searchLike(RequestSearch param) {
+        Page<IntercomMessage> page = new Page<>(param.getPageNum(), param.getPageSize());
+        QueryWrapper<IntercomMessage> queryWrapper = new QueryWrapper<>();
+        if(StringUtils.isNotBlank(param.getStartDate())){
+            queryWrapper.lambda().ge(IntercomMessage::getCreateTime,param.getStartDate());
+        }
+        if(StringUtils.isNotBlank(param.getEndDate())){
+            queryWrapper.lambda().le(IntercomMessage::getCreateTime,param.getStartDate());
+        }
+        if(StringUtils.isNotBlank(param.getItemName())){
+            queryWrapper.lambda().like(IntercomMessage::getContact,param.getItemName())
+            .or().like(IntercomMessage::getNoteContent,param.getItemName());
+        }
+        return this.page(page,queryWrapper);
+    }
 }