Browse Source

添加商品和热点关系等逻辑

houweiyu 4 năm trước cách đây
mục cha
commit
573f82680d
20 tập tin đã thay đổi với 388 bổ sung50 xóa
  1. 3 1
      kankan-daikan-application/src/main/resources/application-dev.properties
  2. 7 8
      kankan-daikan-application/src/main/resources/application-prod.properties
  3. 5 2
      kankan-daikan-application/src/main/resources/application-test.properties
  4. 6 2
      kankan-daikan-application/src/main/resources/application-uat.properties
  5. 2 2
      kankan-daikan-core/src/main/java/kankan/daikan/base/dao/TmGoodsHotDao.java
  6. 16 0
      kankan-daikan-core/src/main/java/kankan/daikan/base/dto/ShopHotBindReqDto.java
  7. 1 1
      kankan-daikan-core/src/main/java/kankan/daikan/base/entity/TmGoodsHot.java
  8. 1 0
      kankan-daikan-core/src/main/java/kankan/daikan/base/enums/UuidPreEnum.java
  9. 2 2
      kankan-daikan-core/src/main/java/kankan/daikan/base/service/ITmGoodsHotService.java
  10. 60 2
      kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmGoodsHotRelationServiceImpl.java
  11. 0 20
      kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmGoodsHotServiceImpl.java
  12. 41 2
      kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmHouseHotServiceImpl.java
  13. 1 1
      kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmProjectServiceImpl.java
  14. 61 0
      kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmShopHotServiceImpl.java
  15. 1 1
      kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmShopServiceImpl.java
  16. 6 2
      kankan-daikan-core/src/main/java/kankan/daikan/base/shiro/config/ShiroConfig.java
  17. 96 0
      kankan-daikan-core/src/main/java/kankan/daikan/core/controller/CommonController.java
  18. 20 0
      kankan-daikan-core/src/main/java/kankan/daikan/core/controller/HouseController.java
  19. 58 3
      kankan-daikan-core/src/main/java/kankan/daikan/core/controller/ShopController.java
  20. 1 1
      kankan-daikan-core/src/main/resources/mybatis/mappers/TmGoodsHotMapper.xml

+ 3 - 1
kankan-daikan-application/src/main/resources/application-dev.properties

@@ -1,5 +1,5 @@
 
-server.port=8285
+server.port=8685
 
 #注册中心
 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
@@ -37,6 +37,8 @@ oss.secrey=JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4
 oss.bucket=4d-tjw
 
 share.logo.oss.path=domain/daikan/
+image.oss.path=domain/daikan/
 oss.query.url=https://houseoss.4dkankan.com/
 image.local.path=C:\\Users\\4dage\\Desktop\\logo-file\\
 
+scenePath=https://test.4dkankan.com/

+ 7 - 8
kankan-daikan-application/src/main/resources/application-prod.properties

@@ -1,5 +1,5 @@
 
-server.port=8285
+server.port=8685
 
 #nacos 注册中心
 spring.cloud.nacos.discovery.server-addr=10.71.9.205:80
@@ -28,13 +28,12 @@ oss.point=oss-cn-shenzhen-internal.aliyuncs.com
 oss.key=LTAI4G132z2c589AN39YTvub
 oss.secrey=TokcDacRasG8hqbl6ynfaiNTZ97XhO
 oss.bucket=fcb-vrkanfang-prd
-oss.query.url=https://vr-oss01.fcb.com.cn/
 
-share.logo.oss.path=domain/fcb/
+
+share.logo.oss.path=domain/daikan/
+image.oss.path=domain/daikan/
+oss.query.url=https://houseoss.4dkankan.com/
 image.local.path=/image/
-vr.scene.link=hengda.html?m=
 
-#管理后台内网域名
-inner.vr.scene.host=https://vr-mc01.fcb.com.cn/
-#管理后台外网域名
-outer.vr.scene.host=https://vr-web01.fcb.com.cn/
+
+scenePath=https://www.4dkankan.com/

+ 5 - 2
kankan-daikan-application/src/main/resources/application-test.properties

@@ -1,5 +1,5 @@
 
-server.port=8285
+server.port=8685
 #server.port=8385
 
 #注册中心
@@ -36,6 +36,9 @@ oss.secrey=JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4
 oss.bucket=4d-tjw
 
 share.logo.oss.path=domain/daikan/
-oss.query.url=https://houseoss.4dkankan.com/
 
+image.oss.path=domain/daikan/
+oss.query.url=https://houseoss.4dkankan.com/
 image.local.path=/image/
+
+scenePath=https://test.4dkankan.com/

+ 6 - 2
kankan-daikan-application/src/main/resources/application-uat.properties

@@ -1,5 +1,5 @@
 
-server.port=8285
+server.port=8685
 #server.port=8385
 
 #注册中心
@@ -31,5 +31,9 @@ oss.secrey=mqVRTWbWcn4sNMoWmnRq6eToWr9BIy
 oss.bucket=fcb-vrkanfang-uat
 
 share.logo.oss.path=domain/daikan/
-oss.query.url=https://vr-web02-uat.fcb.com.cn/
+image.oss.path=domain/daikan/
+oss.query.url=https://houseoss.4dkankan.com/
 image.local.path=/image/
+
+
+scenePath=https://test.4dkankan.com/

+ 2 - 2
kankan-daikan-core/src/main/java/kankan/daikan/base/dao/TmGoodsHotDao.java

@@ -1,6 +1,6 @@
 package kankan.daikan.base.dao;
 
-import kankan.daikan.base.entity.TmGoodsHot;
+import kankan.daikan.base.entity.TmShopHot;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author abner
  * @since 2021-04-22
  */
-public interface TmGoodsHotDao extends BaseMapper<TmGoodsHot> {
+public interface TmShopHotDao extends BaseMapper<TmShopHot> {
 
 }

+ 16 - 0
kankan-daikan-core/src/main/java/kankan/daikan/base/dto/ShopHotBindReqDto.java

@@ -0,0 +1,16 @@
+package kankan.daikan.base.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ShopHotBindReqDto implements Serializable {
+
+    @ApiModelProperty(value = "店铺热点ID")
+    private String hotId;
+
+    @ApiModelProperty(value = "商品ID列表,多个id通过逗号分隔")
+    private String goodsIdList;
+}

+ 1 - 1
kankan-daikan-core/src/main/java/kankan/daikan/base/entity/TmGoodsHot.java

@@ -25,7 +25,7 @@ import lombok.experimental.Accessors;
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @ApiModel(value="TmGoodsHot对象", description="看店商品热点信息表")
-public class TmGoodsHot implements Serializable {
+public class TmShopHot implements Serializable {
 
     private static final long serialVersionUID=1L;
 

+ 1 - 0
kankan-daikan-core/src/main/java/kankan/daikan/base/enums/UuidPreEnum.java

@@ -10,6 +10,7 @@ public enum UuidPreEnum {
 
     HOUSE_ID_PRE("HUS00001" , "房源的UUID前缀"),
     PROJECT_ID_PRE("PRJ00001" , "项目的UUID前缀"),
+    SHOP_ID_PRE("SHP00001" , "店铺的UUID前缀"),
     GOODS_ID_PRE("GD000001" , "商品的UUID前缀"),
     HOT_ID_PRE("HT000001" , "热点的UUID前缀"),
     RELATION_ID_PRE("RL000001" , "关联关系表的UUID前缀"),

+ 2 - 2
kankan-daikan-core/src/main/java/kankan/daikan/base/service/ITmGoodsHotService.java

@@ -1,6 +1,6 @@
 package kankan.daikan.base.service;
 
-import kankan.daikan.base.entity.TmGoodsHot;
+import kankan.daikan.base.entity.TmShopHot;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @author abner
  * @since 2021-04-22
  */
-public interface ITmGoodsHotService extends IService<TmGoodsHot> {
+public interface ITmShopHotService extends IService<TmShopHot> {
 
 }

+ 60 - 2
kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmGoodsHotRelationServiceImpl.java

@@ -1,10 +1,25 @@
 package kankan.daikan.base.service.impl;
 
-import kankan.daikan.base.entity.TmGoodsHotRelation;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import fdage.back.sdk.base.enums.ResultCodeEnum;
+import fdage.back.sdk.base.exception.CommonBaseException;
+import fdage.back.sdk.base.uuid.SnowFlakeUUidUtils;
 import kankan.daikan.base.dao.TmGoodsHotRelationDao;
+import kankan.daikan.base.dto.ShopHotBindReqDto;
+import kankan.daikan.base.entity.TmGoodsHotRelation;
+import kankan.daikan.base.enums.UuidPreEnum;
 import kankan.daikan.base.service.ITmGoodsHotRelationService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +32,47 @@ import org.springframework.stereotype.Service;
 @Service
 public class TmGoodsHotRelationServiceImpl extends ServiceImpl<TmGoodsHotRelationDao, TmGoodsHotRelation> implements ITmGoodsHotRelationService {
 
+    public int addNew(TmGoodsHotRelation tmGoodsHotRelation) {
+        if (null == tmGoodsHotRelation) {
+            return -1;
+        }
+        tmGoodsHotRelation.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.RELATION_ID_PRE.getPre()));
+        tmGoodsHotRelation.setIsDelete(0);
+        tmGoodsHotRelation.setCreateTime(LocalDateTime.now());
+        tmGoodsHotRelation.setUpdateTime(LocalDateTime.now());
+        return getBaseMapper().insert(tmGoodsHotRelation);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void addNewWithGoodsId( List<String> goodsIdList , String hotId) {
+        if (CollectionUtils.isEmpty(goodsIdList) || StringUtils.isBlank(hotId)) {
+            return;
+        }
+        for (String id : goodsIdList) {
+            TmGoodsHotRelation tmGoodsHotRelation = new TmGoodsHotRelation();
+            tmGoodsHotRelation.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.RELATION_ID_PRE.getPre()));
+            tmGoodsHotRelation.setIsDelete(0);
+            tmGoodsHotRelation.setCreateTime(LocalDateTime.now());
+            tmGoodsHotRelation.setUpdateTime(LocalDateTime.now());
+            tmGoodsHotRelation.setHotId(hotId);
+            tmGoodsHotRelation.setGoodsId(id);
+            int add = getBaseMapper().insert(tmGoodsHotRelation);
+            if (add != 1) {
+                throw new CommonBaseException(ResultCodeEnum.D101, "新增热点绑定关系失败");
+            }
+        }
+    }
+
+
+    public IPage<TmGoodsHotRelation> getPageList(long pageNum, long pageSize,
+                                                 String hotId) {
+        IPage<TmGoodsHotRelation> page = new Page<>(pageNum, pageSize);
+        LambdaQueryWrapper<TmGoodsHotRelation> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmGoodsHotRelation::getIsDelete, 0);
+        lambdaQueryWrapper.eq(TmGoodsHotRelation::getHotId, hotId);
+        lambdaQueryWrapper.orderByDesc(TmGoodsHotRelation::getCreateTime);
+        return getBaseMapper().selectPage(page, lambdaQueryWrapper);
+    }
+
+
 }

+ 0 - 20
kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmGoodsHotServiceImpl.java

@@ -1,20 +0,0 @@
-package kankan.daikan.base.service.impl;
-
-import kankan.daikan.base.entity.TmGoodsHot;
-import kankan.daikan.base.dao.TmGoodsHotDao;
-import kankan.daikan.base.service.ITmGoodsHotService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 看店商品热点信息表 服务实现类
- * </p>
- *
- * @author abner
- * @since 2021-04-22
- */
-@Service
-public class TmGoodsHotServiceImpl extends ServiceImpl<TmGoodsHotDao, TmGoodsHot> implements ITmGoodsHotService {
-
-}

+ 41 - 2
kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmHouseHotServiceImpl.java

@@ -1,11 +1,18 @@
 package kankan.daikan.base.service.impl;
 
-import kankan.daikan.base.entity.TmHouseHot;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import fdage.back.sdk.base.uuid.SnowFlakeUUidUtils;
 import kankan.daikan.base.dao.TmHouseHotDao;
+import kankan.daikan.base.entity.TmHouseHot;
+import kankan.daikan.base.enums.UuidPreEnum;
 import kankan.daikan.base.service.ITmHouseHotService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.List;
+
 /**
  * <p>
  * 看房房源热点信息表 服务实现类
@@ -17,4 +24,36 @@ import org.springframework.stereotype.Service;
 @Service
 public class TmHouseHotServiceImpl extends ServiceImpl<TmHouseHotDao, TmHouseHot> implements ITmHouseHotService {
 
+
+    public int addNew(TmHouseHot tmHouseHot) {
+        if (null == tmHouseHot) {
+            return -1;
+        }
+        tmHouseHot.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.HOT_ID_PRE.getPre()));
+        tmHouseHot.setIsDelete(0);
+        tmHouseHot.setCreateTime(LocalDateTime.now());
+        tmHouseHot.setUpdateTime(LocalDateTime.now());
+        return getBaseMapper().insert(tmHouseHot);
+    }
+
+    public TmHouseHot getWithId(String id) {
+        if (StringUtils.isBlank(id)) {
+            return null;
+        }
+        LambdaQueryWrapper<TmHouseHot> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmHouseHot::getIsDelete, 0);
+        lambdaQueryWrapper.eq(TmHouseHot::getId, id);
+        lambdaQueryWrapper.last("limit 1");
+        return getBaseMapper().selectOne(lambdaQueryWrapper);
+    }
+
+    public List<TmHouseHot> getListByShopId(String houseId){
+        if(StringUtils.isBlank(houseId)){
+            return null;
+        }
+        LambdaQueryWrapper<TmHouseHot> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmHouseHot::getIsDelete, 0);
+        lambdaQueryWrapper.eq(TmHouseHot::getHouseId, houseId);
+        return getBaseMapper().selectList(lambdaQueryWrapper);
+    }
 }

+ 1 - 1
kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmProjectServiceImpl.java

@@ -50,7 +50,7 @@ public class TmProjectServiceImpl extends ServiceImpl<TmProjectDao, TmProject> i
         if (null == tmProject) {
             return null;
         }
-        tmProject.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.HOUSE_ID_PRE.getPre()));
+        tmProject.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.PROJECT_ID_PRE.getPre()));
         tmProject.setIsDelete(0);
         tmProject.setCreateTime(LocalDateTime.now());
         tmProject.setUpdateTime(LocalDateTime.now());

+ 61 - 0
kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmShopHotServiceImpl.java

@@ -0,0 +1,61 @@
+package kankan.daikan.base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import fdage.back.sdk.base.uuid.SnowFlakeUUidUtils;
+import kankan.daikan.base.dao.TmShopHotDao;
+import kankan.daikan.base.entity.TmShopHot;
+import kankan.daikan.base.enums.UuidPreEnum;
+import kankan.daikan.base.service.ITmShopHotService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 看店商品热点信息表 服务实现类
+ * </p>
+ *
+ * @author abner
+ * @since 2021-04-22
+ */
+@Service
+public class TmShopHotServiceImpl extends ServiceImpl<TmShopHotDao, TmShopHot> implements ITmShopHotService {
+
+
+    public int addNew(TmShopHot tmShopHot) {
+        if (null == tmShopHot) {
+            return -1;
+        }
+        tmShopHot.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.HOT_ID_PRE.getPre()));
+        tmShopHot.setIsDelete(0);
+        tmShopHot.setCreateTime(LocalDateTime.now());
+        tmShopHot.setUpdateTime(LocalDateTime.now());
+        return getBaseMapper().insert(tmShopHot);
+    }
+
+    public TmShopHot getWithId(String id) {
+        if (StringUtils.isBlank(id)) {
+            return null;
+        }
+        LambdaQueryWrapper<TmShopHot> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmShopHot::getIsDelete, 0);
+        lambdaQueryWrapper.eq(TmShopHot::getId, id);
+        lambdaQueryWrapper.last("limit 1");
+        return getBaseMapper().selectOne(lambdaQueryWrapper);
+    }
+
+    public List<TmShopHot> getListByShopId(String shopId){
+        if(StringUtils.isBlank(shopId)){
+            return null;
+        }
+        LambdaQueryWrapper<TmShopHot> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmShopHot::getIsDelete, 0);
+        lambdaQueryWrapper.eq(TmShopHot::getShopId, shopId);
+        return getBaseMapper().selectList(lambdaQueryWrapper);
+    }
+
+
+}

+ 1 - 1
kankan-daikan-core/src/main/java/kankan/daikan/base/service/impl/TmShopServiceImpl.java

@@ -32,7 +32,7 @@ public class TmShopServiceImpl extends ServiceImpl<TmShopDao, TmShop> implements
         if (null == tmShop) {
             return -1;
         }
-        tmShop.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.HOUSE_ID_PRE.getPre()));
+        tmShop.setId(SnowFlakeUUidUtils.generaUUid(null, null, UuidPreEnum.SHOP_ID_PRE.getPre()));
         tmShop.setIsDelete(0);
         tmShop.setCreateTime(LocalDateTime.now());
         tmShop.setUpdateTime(LocalDateTime.now());

+ 6 - 2
kankan-daikan-core/src/main/java/kankan/daikan/base/shiro/config/ShiroConfig.java

@@ -45,9 +45,13 @@ public class ShiroConfig {
         shiroFilterFactoryBean.setFilters(filterMap);
         //<!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边
         //TODO:这里需要挪到配置文件中
-        filterChainDefinitionMap.put("/web/user/login", "anon");
+//        filterChainDefinitionMap.put("/web/user/login", "anon");
         filterChainDefinitionMap.put("/app/**", "app_jwt");
-        filterChainDefinitionMap.put("/web/**", "user_jwt");
+        filterChainDefinitionMap.put("/shop/**", "user_jwt");
+        filterChainDefinitionMap.put("/house/**", "user_jwt");
+        filterChainDefinitionMap.put("/project/**", "user_jwt");
+        filterChainDefinitionMap.put("/scene/**", "user_jwt");
+        filterChainDefinitionMap.put("/common/**", "user_jwt");
         //未授权界面;
         shiroFilterFactoryBean.setUnauthorizedUrl("/403");
         shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);

+ 96 - 0
kankan-daikan-core/src/main/java/kankan/daikan/core/controller/CommonController.java

@@ -0,0 +1,96 @@
+package kankan.daikan.core.controller;
+
+import fdage.back.sdk.base.entity.Result;
+import fdage.back.sdk.core.alibabaUtils.AlibabaOssHelper;
+import fdage.back.sdk.core.alibabaUtils.AlibabaSmsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.log4j.Log4j2;
+import org.apache.velocity.shaded.commons.io.FilenameUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+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;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+@Api(tags = "公共操作相关接口")
+@RestController
+@RequestMapping("/common")
+@Log4j2
+public class CommonController extends BaseController{
+
+    @Autowired
+    private AlibabaOssHelper alibabaOssHelper;
+
+
+    @Value("${image.local.path}")
+    private String imageLocalPath;
+
+    @Value("${image.oss.path}")
+    private String ossPath;
+
+    @Value("${oss.query.url}")
+    private String ossQueryUrl;
+
+    @ApiOperation("上传照片(只支持JPG或者PNG格式)")
+    @PostMapping(value = "/uploadImage")
+    public Result<Object> uploadImage(@RequestParam("file") MultipartFile file) throws Exception {
+
+        if (null == file) {
+            return Result.failure("缺失照片文件");
+        }
+        if (file.getSize() > 100000000l) {
+            return Result.failure("上传文件不能超过100M");
+        }
+        if (!file.getOriginalFilename().toLowerCase().endsWith("jpg") && !file.getOriginalFilename().toLowerCase().endsWith("png")) {
+            return Result.failure("只能上传.jpg或者.png的照片");
+        }
+        String outPutImageName = System.currentTimeMillis() + "." + FilenameUtils.getExtension(file.getOriginalFilename());
+        String outPutImageResultPath = imageLocalPath + File.separator + outPutImageName;
+        File localFile = new File(outPutImageResultPath);
+        file.transferTo(localFile);
+        String resultOssPath = ossPath + outPutImageName;
+        alibabaOssHelper.doUploadThenDelete(outPutImageResultPath, resultOssPath);
+        String totalOssQueryPath = ossQueryUrl + resultOssPath;
+        Map<String, String> mp = new HashMap<>();
+        mp.put("ossUrl", totalOssQueryPath);
+        return Result.success(mp);
+    }
+
+    @ApiOperation("上传文件(只支持PDF或者WORD格式)")
+    @PostMapping(value = "/uploadFile")
+    public Result<Object> uploadFile(@RequestParam("file") MultipartFile file) throws Exception {
+
+        if (null == file) {
+            return Result.failure("缺失照片文件");
+        }
+        if (file.getSize() > 100000000l) {
+            return Result.failure("上传文件不能超过100M");
+        }
+        if (!file.getOriginalFilename().toLowerCase().endsWith("pdf")
+                && !file.getOriginalFilename().toLowerCase().endsWith("docx")
+                && !file.getOriginalFilename().toLowerCase().endsWith("doc")
+        ) {
+            return Result.failure("只能上传pdf或者word文档");
+        }
+        String outPutImageName = System.currentTimeMillis() + "." +
+                FilenameUtils.getExtension(file.getOriginalFilename());
+        String outPutImageResultPath = imageLocalPath + File.separator + outPutImageName;
+        File localFile = new File(outPutImageResultPath);
+        file.transferTo(localFile);
+        String resultOssPath = ossPath + outPutImageName;
+        alibabaOssHelper.doUploadThenDelete(outPutImageResultPath, resultOssPath);
+        String totalOssQueryPath = ossQueryUrl + resultOssPath;
+        Map<String, String> mp = new HashMap<>();
+        mp.put("ossUrl", totalOssQueryPath);
+        return Result.success(mp);
+    }
+
+
+}

+ 20 - 0
kankan-daikan-core/src/main/java/kankan/daikan/core/controller/HouseController.java

@@ -9,7 +9,9 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import kankan.daikan.base.entity.TmHouse;
+import kankan.daikan.base.entity.TmHouseHot;
 import kankan.daikan.base.entity.TmShop;
+import kankan.daikan.base.service.impl.TmHouseHotServiceImpl;
 import kankan.daikan.base.service.impl.TmHouseServiceImpl;
 import kankan.daikan.base.utils.DataUtils;
 import lombok.extern.log4j.Log4j2;
@@ -26,6 +28,24 @@ public class HouseController  extends BaseController{
     @Autowired
     private TmHouseServiceImpl houseService;
 
+    @Autowired
+    private TmHouseHotServiceImpl houseHotService;
+
+    @ApiOperation("新增热点")
+    @PostMapping(value = "/addHot")
+    public Result<Object> addHot(@RequestBody TmHouseHot tmHouseHot){
+
+        if(StringUtils.isBlank(tmHouseHot.getTitle())){
+            return Result.failure("标题不能为空");
+        }
+        int add = houseHotService.addNew(tmHouseHot);
+        if(add != 1){
+            return Result.failure("新增房源热点失败");
+        }
+        return Result.success();
+    }
+
+
     @ApiOperation("新增房源")
     @PostMapping(value = "/addNew")
     public Result<Object> addNewProject(@RequestBody TmHouse tmHouse){

+ 58 - 3
kankan-daikan-core/src/main/java/kankan/daikan/core/controller/ShopController.java

@@ -8,16 +8,22 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import kankan.daikan.base.entity.TmGoods;
-import kankan.daikan.base.entity.TmHouse;
-import kankan.daikan.base.entity.TmShop;
+import kankan.daikan.base.dto.ShopHotBindReqDto;
+import kankan.daikan.base.entity.*;
+import kankan.daikan.base.service.impl.TmGoodsHotRelationServiceImpl;
+import kankan.daikan.base.service.impl.TmGoodsServiceImpl;
+import kankan.daikan.base.service.impl.TmShopHotServiceImpl;
 import kankan.daikan.base.service.impl.TmShopServiceImpl;
 import kankan.daikan.base.utils.DataUtils;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
+import java.util.List;
+
 @Api(tags = "看店店铺操作相关接口")
 @RestController
 @RequestMapping("shop/brand")
@@ -27,6 +33,55 @@ public class ShopController  extends BaseController{
     @Autowired
     private TmShopServiceImpl shopService;
 
+    @Autowired
+    private TmShopHotServiceImpl shopHotService;
+
+    @Autowired
+    private TmGoodsServiceImpl goodsService;
+
+    @Autowired
+    private TmGoodsHotRelationServiceImpl goodsHotRelationService;
+
+
+    @ApiOperation("新增热点")
+    @PostMapping(value = "/addHot")
+    public Result<Object> addHot(@RequestBody TmShopHot tmShopHot){
+
+        if(StringUtils.isBlank(tmShopHot.getTitle())){
+            return Result.failure("标题不能为空");
+        }
+        int add = shopHotService.addNew(tmShopHot);
+        if(add != 1){
+            return Result.failure("新增店铺热点失败");
+        }
+        return Result.success();
+    }
+
+    @ApiOperation("绑定热点的商品")
+    @PostMapping(value = "/bindHot")
+    public Result<Object> bindHot(@RequestBody ShopHotBindReqDto shopHotBindReqDto){
+
+        if(!StringUtils.isNoneBlank(shopHotBindReqDto.getGoodsIdList() , shopHotBindReqDto.getHotId())){
+            return Result.failure("热点id或者商品id不能为空");
+        }
+        TmShopHot tmShopHot = shopHotService.getWithId(shopHotBindReqDto.getHotId());
+        if(null == tmShopHot){
+            return Result.failure("热点不存在");
+        }
+        List<String> goodsIdList = Arrays.asList(shopHotBindReqDto.getGoodsIdList().split(","));
+        if(CollectionUtils.isEmpty(goodsIdList)){
+            return Result.failure("商品id格式非法");
+        }
+        for(String goodsId : goodsIdList){
+            TmGoods tmGoods = goodsService.getWithId(goodsId);
+            if(null == tmGoods){
+                return Result.failure("有商品不存在,无法建立绑定关系");
+            }
+        }
+        goodsHotRelationService.addNewWithGoodsId(goodsIdList , shopHotBindReqDto.getHotId());
+        return Result.success("绑定成功");
+    }
+
     @ApiOperation("新增店铺")
     @PostMapping(value = "/addNew")
     public Result<Object> addNewProject(@RequestBody TmShop tmShop){

+ 1 - 1
kankan-daikan-core/src/main/resources/mybatis/mappers/TmGoodsHotMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="kankan.daikan.base.dao.TmGoodsHotDao">
+<mapper namespace="kankan.daikan.base.dao.TmShopHotDao">
 
 </mapper>