Kaynağa Gözat

达人动态发布

qxy 1 ay önce
ebeveyn
işleme
daf6a8ce6d

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeUserDynamics.java

@@ -121,4 +121,8 @@ public class LifeUserDynamics {
     @ApiModelProperty(value = "业务id")
     @TableField("business_id")
     private Integer businessId;
+
+    @ApiModelProperty(value = "根据动态进入店铺详情浏览数")
+    @TableField("store_count")
+    private Integer storeCount;
 }

+ 6 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserDynamicsVo.java

@@ -71,4 +71,10 @@ public class LifeUserDynamicsVo extends LifeUserDynamics {
 
     @ApiModelProperty(value = "商家评分")
     private String scoreAvg;
+
+    @ApiModelProperty(value = "门店id")
+    private String storeId;
+
+    @ApiModelProperty(value = "门店经营板块")
+    private String businessSection;
 }

+ 2 - 0
alien-entity/src/main/resources/mapper/LifeUserDynamicsMapper.xml

@@ -93,6 +93,8 @@
         dy.*,
         info.score_avg as scoreAvg,
         info.store_name as storeName,
+        info.id as storeId,
+        info.business_section as businessSection,
         COUNT(comment.id) AS commentCount
         FROM
         life_user_dynamics AS dy

+ 14 - 4
alien-store/src/main/java/shop/alien/store/controller/LifeUserDynamicsController.java

@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
+import shop.alien.entity.store.LifeBrowseRecord;
 import shop.alien.entity.store.LifeUserDynamics;
 import shop.alien.entity.store.vo.LifePinglunVo;
 import shop.alien.entity.store.vo.LifeUserDynamicsVo;
@@ -251,11 +252,20 @@ public class LifeUserDynamicsController {
     @ApiOperation("GVM推荐用户完成支付")
     @ApiOperationSupport(order = 7)
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "expertId", value = "达人动态Id", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "dynamicsId", value = "达人动态Id", dataType = "Integer", paramType = "query", required = true),
             @ApiImplicitParam(name = "finalPrice", value = "最终付款金额", dataType = "String", paramType = "query", required = true)})
     @GetMapping("/getOrderGmvUser")
-    public R getOrderGmvUser(@RequestParam() Integer expertId, @RequestParam() String finalPrice) {
-        log.info("LifeUserDynamicsController.getOrderGmvUser?expertId={}&finalPrice={}", expertId, finalPrice);
-        return R.data(lifeUserDynamicsService.countGvm(expertId, finalPrice));
+    public R getOrderGmvUser(@RequestParam() Integer dynamicsId, @RequestParam() String finalPrice) {
+        log.info("LifeUserDynamicsController.getOrderGmvUser?dynamicsId={}&finalPrice={}", dynamicsId, finalPrice);
+        return R.data(lifeUserDynamicsService.countGvm(dynamicsId, finalPrice));
     }
+
+    @ApiOperation("用户通过达人推广进入店铺浏览数")
+    @ApiOperationSupport(order = 8)
+    @PostMapping("/addUserStoreBrowseNumber")
+    public R addUserStoreBrowseNumber(@RequestBody LifeBrowseRecord lifeBrowseRecord) {
+        log.info("LifeUserDynamicsController.addUserStoreBrowseNumber?lifeBrowseRecord={}",lifeBrowseRecord.toString());
+        return R.data(lifeUserDynamicsService.addUserStoreBrowseNumber(lifeBrowseRecord));
+    }
+
 }

+ 64 - 28
alien-store/src/main/java/shop/alien/store/service/LifeUserDynamicsService.java

@@ -1,5 +1,6 @@
 package shop.alien.store.service;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -21,7 +22,12 @@ import shop.alien.entity.store.vo.LifeUserOrderVo;
 import shop.alien.entity.store.vo.StoreCommentVo;
 import shop.alien.mapper.*;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -60,6 +66,11 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
 
     private final PromotionPackageService promotionPackageService;
 
+    private final LifeBrowseRecordMapper lifeBrowseRecordMapper;
+
+    @Resource
+    LifeBrowseRecordService lifeBrowseRecordService;
+
 
     public int addLiulanCount(String id) {
         LambdaUpdateWrapper<LifeUserDynamics> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
@@ -70,13 +81,13 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
 
 
     public int setTopStatus(LifeUserDynamicsVo lifeUserDynamicsVo) {
-        if(!StringUtils.isEmpty(lifeUserDynamicsVo.getId()) && !StringUtils.isEmpty(lifeUserDynamicsVo.getTopStatus())){
+        if (!StringUtils.isEmpty(lifeUserDynamicsVo.getId()) && !StringUtils.isEmpty(lifeUserDynamicsVo.getTopStatus())) {
             LambdaUpdateWrapper<LifeUserDynamics> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
             lambdaUpdateWrapper.eq(LifeUserDynamics::getId, lifeUserDynamicsVo.getId());
             lambdaUpdateWrapper.set(LifeUserDynamics::getTopStatus, lifeUserDynamicsVo.getTopStatus());
-            if(lifeUserDynamicsVo.getTopStatus() == 0){
+            if (lifeUserDynamicsVo.getTopStatus() == 0) {
                 lambdaUpdateWrapper.set(LifeUserDynamics::getTopTime, null);
-            } else{
+            } else {
                 lambdaUpdateWrapper.set(LifeUserDynamics::getTopTime, new Date());
 
             }
@@ -87,7 +98,7 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
     }
 
     public int enableStatus(LifeUserDynamicsVo lifeUserDynamicsVo) {
-        if(!StringUtils.isEmpty(lifeUserDynamicsVo.getId()) && !StringUtils.isEmpty(lifeUserDynamicsVo.getEnableStatus())) {
+        if (!StringUtils.isEmpty(lifeUserDynamicsVo.getId()) && !StringUtils.isEmpty(lifeUserDynamicsVo.getEnableStatus())) {
             LambdaUpdateWrapper<LifeUserDynamics> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
             lambdaUpdateWrapper.eq(LifeUserDynamics::getId, lifeUserDynamicsVo.getId());
             lambdaUpdateWrapper.set(LifeUserDynamics::getEnableStatus, lifeUserDynamicsVo.getEnableStatus());
@@ -106,7 +117,7 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
             //如果发布,则将创建时间修改为当前时间
             LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectById(store.getId());
             int draft = lifeUserDynamics.getDraft();
-            if(draft == 1 && store.getDraft() == 0){
+            if (draft == 1 && store.getDraft() == 0) {
                 store.setCreatedTime(new Date());
             }
             return lifeUserDynamicsMapper.updateById(store);
@@ -495,11 +506,11 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
 
     public List<LifeUserDynamicsVo> getDianZanList(String phoneId) {
         List<LifeUserDynamicsVo> lifeUserDynamicsVos = lifeUserDynamicsMapper.selectDianZanList(phoneId);
-        if (!CollectionUtils.isEmpty(lifeUserDynamicsVos)){
+        if (!CollectionUtils.isEmpty(lifeUserDynamicsVos)) {
             for (LifeUserDynamicsVo lifeUserDynamicsVo : lifeUserDynamicsVos) {
-                if (lifeUserDynamicsVo.getType().equals("2")){
+                if (lifeUserDynamicsVo.getType().equals("2")) {
                     String phoneIdNew = lifeUserDynamicsVo.getPhoneId().substring(6);
-                     StoreInfo storeInfo=storeInfoMapper.getStoreNameByPhone(phoneIdNew);
+                    StoreInfo storeInfo = storeInfoMapper.getStoreNameByPhone(phoneIdNew);
                     lifeUserDynamicsVo.setStoreName(storeInfo.getStoreName());
                 } else if (lifeUserDynamicsVo.getType().equals("1")) {
                     String phoneIdNew = lifeUserDynamicsVo.getPhoneId().substring(5);
@@ -509,7 +520,7 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
                 }
             }
         }
-        return  lifeUserDynamicsVos;
+        return lifeUserDynamicsVos;
     }
 
     public List<LifeUserDynamicsVo> getDynamicsList(Integer page, Integer size, String nickName, String userType, Integer dynamicsType, String releaseStartTime, String releaseEndTime) {
@@ -521,10 +532,10 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
         // 查询动态数据并按类型过滤
         LifeUserDynamicsVo lifeUserDynamicsVo = new LifeUserDynamicsVo();
         List<LifeUserDynamicsVo> lifeUserDynamicsVoList = lifeUserDynamicsMapper.getDynamicsDetail(id);
-        if(!CollectionUtils.isEmpty(lifeUserDynamicsVoList)){
+        if (!CollectionUtils.isEmpty(lifeUserDynamicsVoList)) {
             lifeUserDynamicsVo = lifeUserDynamicsVoList.get(0);
             String imagePath = lifeUserDynamicsVo.getImagePath();
-            if(!StringUtils.isEmpty(imagePath)){
+            if (!StringUtils.isEmpty(imagePath)) {
                 List<String> imagePathList = Arrays.asList(imagePath.split(","));
                 lifeUserDynamicsVo.setImagePathList(imagePathList);
             }
@@ -536,18 +547,18 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
         // 查询动态数据并按类型过滤
         LifeUserDynamicsVo lifeUserDynamicsVo = new LifeUserDynamicsVo();
         List<LifeUserDynamicsVo> lifeUserDynamicsVoList = lifeUserDynamicsMapper.getExpertDynamicsDetail(id);
-        if(!CollectionUtils.isEmpty(lifeUserDynamicsVoList)){
+        if (!CollectionUtils.isEmpty(lifeUserDynamicsVoList)) {
             lifeUserDynamicsVo = lifeUserDynamicsVoList.get(0);
             String imagePath = lifeUserDynamicsVo.getImagePath();
-            if(!StringUtils.isEmpty(imagePath)){
+            if (!StringUtils.isEmpty(imagePath)) {
                 List<String> imagePathList = Arrays.asList(imagePath.split(","));
                 lifeUserDynamicsVo.setImagePathList(imagePathList);
             }
             //查询动态表中的 gvm和评论数是否满足当前达人订单规定值 都满足修改订单状态为已完成
-            LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertOrder>().eq(LifeUserExpertOrder :: getId, lifeUserDynamicsVo.getBusinessId()));
-            if(lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus()!= 2){
-                LifePromotionPackage lifePromotionPackage = promotionPackageService.getById(lifeUserExpertOrder.getPackageId());
-                if(lifeUserDynamicsVo.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0 && lifeUserDynamicsVo.getLiulanCount()>=Integer.parseInt(lifePromotionPackage.getPlayCount())){
+            LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertOrder>().eq(LifeUserExpertOrder::getId, lifeUserDynamicsVo.getBusinessId()));
+            if (lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 2) {
+                  int liulanNum = lifeBrowseRecordMapper.selectCount(new LambdaQueryWrapper<LifeBrowseRecord>().eq(LifeBrowseRecord :: getDynamicsId, id).eq(LifeBrowseRecord :: getOrderId, lifeUserDynamicsVo.getBusinessId()));
+                if (lifeUserDynamicsVo.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0 && liulanNum >= lifeUserExpertOrder.getOrderPlayCount()) {
                     lifeUserExpertOrder.setStatus(2);
                     lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
                 }
@@ -557,22 +568,47 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
         return lifeUserDynamicsVo;
     }
 
-    public R countGvm(Integer expertId, String finalPrice){
-        LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectOne(new LambdaQueryWrapper<LifeUserDynamics>().eq(LifeUserDynamics :: getId, expertId));
-        if(lifeUserDynamics != null){
-           BigDecimal price = new BigDecimal(finalPrice);
-           lifeUserDynamics.setOrderGmv(lifeUserDynamics.getOrderGmv().add(price));
-           lifeUserDynamicsMapper.updateById(lifeUserDynamics);
+    public R countGvm(Integer dynamicsId, String finalPrice) {
+        LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectOne(new LambdaQueryWrapper<LifeUserDynamics>().eq(LifeUserDynamics::getId, dynamicsId));
+        if (lifeUserDynamics != null) {
+            BigDecimal price = new BigDecimal(finalPrice);
+            lifeUserDynamics.setOrderGmv(lifeUserDynamics.getOrderGmv().add(price));
+            lifeUserDynamicsMapper.updateById(lifeUserDynamics);
         }
-        LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertOrder>().eq(LifeUserExpertOrder :: getId, lifeUserDynamics.getBusinessId()));
-        if(lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 2){
-            LifePromotionPackage lifePromotionPackage = promotionPackageService.getById(lifeUserExpertOrder.getPackageId());
-            LifeUserDynamics lifeUserDynamics1 = lifeUserDynamicsMapper.selectOne(new LambdaQueryWrapper<LifeUserDynamics>().eq(LifeUserDynamics :: getId, expertId));
-            if(lifeUserDynamics1.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0 && lifeUserDynamics1.getLiulanCount()>=Integer.parseInt(lifePromotionPackage.getPlayCount())){
+        LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertOrder>().eq(LifeUserExpertOrder::getId, lifeUserDynamics.getBusinessId()));
+        if (lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 2) {
+            LifeUserDynamics lifeUserDynamics1 = lifeUserDynamicsMapper.selectOne(new LambdaQueryWrapper<LifeUserDynamics>().eq(LifeUserDynamics::getId, dynamicsId));
+            int liulanNum = lifeBrowseRecordMapper.selectCount(new LambdaQueryWrapper<LifeBrowseRecord>().eq(LifeBrowseRecord :: getDynamicsId, dynamicsId).eq(LifeBrowseRecord :: getOrderId, lifeUserDynamics1.getBusinessId()));
+            if (lifeUserDynamics1.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0 && liulanNum >= lifeUserExpertOrder.getOrderPlayCount()) {
                 lifeUserExpertOrder.setStatus(2);
                 lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
             }
         }
         return R.success("请求成功");
     }
+
+    public boolean addUserStoreBrowseNumber(LifeBrowseRecord lifeBrowseRecord) {
+        // 获取当天开始时间(00:00:00)
+        LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
+        // 获取当天结束时间(23:59:59.999)
+        LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
+        LifeBrowseRecord selectOne = lifeBrowseRecordMapper.selectOne(new LambdaQueryWrapper<LifeBrowseRecord>().eq(LifeBrowseRecord::getUserId, lifeBrowseRecord.getUserId())
+                .between(LifeBrowseRecord::getLiulanTime, todayStart, todayEnd).in(LifeBrowseRecord::getDeleteFlag, 0, 1).eq(LifeBrowseRecord::getDynamicsId, lifeBrowseRecord.getDynamicsId())
+                .eq(LifeBrowseRecord::getOrderId, lifeBrowseRecord.getOrderId()));
+        if (selectOne == null) {
+            lifeBrowseRecord.setCreatedTime(new DateTime());
+            lifeBrowseRecord.setLiulanTime(new DateTime());
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            lifeBrowseRecord.setLiulanDate(sdf.format(new Date()));
+            lifeBrowseRecordMapper.insert(lifeBrowseRecord);
+            //查询当前动态浏记录数
+            int liulanNum = lifeBrowseRecordMapper.selectCount(new LambdaQueryWrapper<LifeBrowseRecord>().eq(LifeBrowseRecord :: getDynamicsId, lifeBrowseRecord.getDynamicsId())
+                    .eq(LifeBrowseRecord :: getOrderId, lifeBrowseRecord.getOrderId()).in(LifeBrowseRecord :: getDeleteFlag, 0, 1));
+            LambdaUpdateWrapper<LifeUserDynamics> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+            lambdaUpdateWrapper.eq(LifeUserDynamics :: getId, lifeBrowseRecord.getDynamicsId());
+            lambdaUpdateWrapper.set(LifeUserDynamics :: getStoreCount, liulanNum);
+            lifeUserDynamicsMapper.update(null,lambdaUpdateWrapper);
+        }
+        return true;
+    }
 }