Browse Source

企业用户权限分配完成

fubojin 1 week ago
parent
commit
0d56397e9f

+ 0 - 1
yami-shop-api/src/main/java/com/yami/shop/api/controller/UserRegisterController.java

@@ -219,7 +219,6 @@ public class UserRegisterController {
         authenticationToken.setPrincipal(userDetails.getUsername());
         authenticationToken.setDetails(userDetails);
         authenticationToken.setAuthenticated(true);
-//        authenticationToken.setPlatform(user.getPlatform());
         loginAuthSuccessHandler.onAuthenticationSuccess(request, response, authenticationToken);
 
         return ResponseEntity.ok().build();

+ 7 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ShopHeadInfoDto.java

@@ -10,6 +10,7 @@
 
 package com.yami.shop.bean.app.dto;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.yami.shop.common.serializer.json.ImgJsonSerializer;
 import io.swagger.annotations.ApiModelProperty;
@@ -64,4 +65,10 @@ public class ShopHeadInfoDto {
     @ApiModelProperty(value = "店铺纬度")
     private String lon;
 
+    /**
+     * 门店是否存在商品
+     */
+    @ApiModelProperty(value = "门店是否存在商品")
+    private Boolean hasProduct;
+
 }

+ 6 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/ShopDetail.java

@@ -10,6 +10,7 @@
 
 package com.yami.shop.bean.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -208,4 +209,9 @@ public class ShopDetail implements Serializable {
      */
     private String thirdPartyCode;
 
+    /**
+     * 是否存在商品
+     */
+    @TableField(exist = false)
+    private Boolean hasProduct;
 }

+ 1 - 0
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java

@@ -291,6 +291,7 @@ public class HBOrderService implements IHBOrderService {
         Integer logisticStatus = body.getInteger("logisticStatus");
         Order order = orderMapper.getOrderAndOrderItemByOrderNumber(channelOrderId);
         order.setHbLogisticStatus(logisticStatus);
+        order.setDvyFlowId(body.getString("carrierNo"));
         order.setUpdateTime(new Date(changeTime));
         orderMapper.updateById(order);
     }

+ 2 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopDetailServiceImpl.java

@@ -339,6 +339,7 @@ public class ShopDetailServiceImpl extends ServiceImpl<ShopDetailMapper, ShopDet
                         .shopName(s.getShopName())
                         .lat(s.getShopLat())
                         .lon(s.getShopLng())
+                        .hasProduct(s.getHasProduct())
                         .build()).collect(Collectors.toList());
         return ResponseEntity.ok(collect);
     }
@@ -352,6 +353,7 @@ public class ShopDetailServiceImpl extends ServiceImpl<ShopDetailMapper, ShopDet
                         .shopName(s.getShopName())
                         .lat(s.getShopLat())
                         .lon(s.getShopLng())
+                        .hasProduct(s.getHasProduct())
                         .build()).collect(Collectors.toList());
         return ResponseEntity.ok(collect);
     }

+ 36 - 32
yami-shop-service/src/main/resources/mapper/ProductMapper.xml

@@ -265,6 +265,38 @@
         ORDER BY p.`sold_num` DESC, p.`update_time` DESC
     </select>
 
+    <select id="getSearchProdDtoPageByProdName" resultType="com.yami.shop.bean.dto.SearchProdDto">
+        SELECT
+        p.prod_id,
+        p.prod_name,
+        p.pic,
+        ss.shop_id AS shop_id,
+        SUM(ss.shop_sku_stocks) AS stocks,
+        MIN(cp.channel_prod_price) AS price,
+        COALESCE(SUM(oi.prod_count), 0) -
+        COALESCE(SUM(refund.product_count), 0) AS net_sales_volume
+        FROM tz_prod p
+        LEFT JOIN tz_sku sku ON p.prod_id = sku.prod_id AND sku.is_delete = 0
+        INNER JOIN tz_shop_sku ss ON ss.sku_id = sku.sku_id AND ss.shop_id = #{searchParam.shopId} AND ss.is_delete = 0
+        INNER JOIN tz_channel_prod cp ON sku.sku_id = cp.sku_id AND cp.shop_id = #{searchParam.shopId}  AND cp.channel_id = #{searchParam.channelId}  AND cp.is_delete = 0
+        LEFT JOIN tz_order_item oi ON p.prod_id = oi.prod_id
+        LEFT JOIN tz_order o ON oi.order_number = o.order_number and  o.shop_id = #{searchParam.shopId}  and o.channel_id = #{searchParam.channelId}
+        AND o.hb_order_status in (70,80)
+        AND o.delete_status = 0
+        LEFT JOIN tz_order_refund_sku refund ON oi.order_item_id = refund.order_item_id
+        AND refund.order_refund_id IN (
+        SELECT refund_id FROM tz_order_refund
+        WHERE return_money_sts= 70
+        )
+        WHERE p.status = 1
+        <if test="searchParam.prodName != null">
+            and p.prod_name LIKE CONCAT('%',#{searchParam.prodName},'%')
+        </if>
+        AND p.is_delete = 0
+        GROUP BY p.prod_id
+        ORDER BY net_sales_volume DESC
+    </select>
+
     <select id="tagProdList" resultMap="tagProductMap">
         SELECT pt.*,
         <include refid="prodWithNoContent_SQL"/>
@@ -292,35 +324,6 @@
         WHERE p.status= 1 AND dp.discount_id = #{discountId}
     </select>
 
-    <select id="getSearchProdDtoPageByProdName" resultType="com.yami.shop.bean.dto.SearchProdDto">
-        SELECT
-            p.prod_id,
-            p.prod_name,
-            p.pic,
-            ss.shop_id AS shop_id,
-            SUM(ss.shop_sku_stocks) AS stocks,
-            MIN(cp.channel_prod_price) AS price,
-            COALESCE(SUM(oi.prod_count), 0) -
-            COALESCE(SUM(refund.product_count), 0) AS net_sales_volume
-        FROM tz_prod p
-                 LEFT JOIN tz_sku sku ON p.prod_id = sku.prod_id AND sku.is_delete = 0
-                 INNER JOIN tz_shop_sku ss ON ss.sku_id = sku.sku_id AND ss.shop_id = #{searchParam.shopId} AND ss.is_delete = 0
-                 INNER JOIN tz_channel_prod cp ON sku.sku_id = cp.sku_id AND cp.shop_id = #{searchParam.shopId}  AND cp.channel_id = #{searchParam.channelId}  AND cp.is_delete = 0
-                 LEFT JOIN tz_order_item oi ON p.prod_id = oi.prod_id
-                 LEFT JOIN tz_order o ON oi.order_number = o.order_number and  o.shop_id = #{searchParam.shopId}  and o.channel_id = #{searchParam.channelId}
-            AND o.hb_order_status in (70,80)
-            AND o.delete_status = 0
-                 LEFT JOIN tz_order_refund_sku refund ON oi.order_item_id = refund.order_item_id
-            AND refund.order_refund_id IN (
-                SELECT refund_id FROM tz_order_refund
-                WHERE return_money_sts= 70
-            )
-        WHERE p.status = 1
-          AND p.is_delete = 0
-        GROUP BY p.prod_id
-        ORDER BY net_sales_volume DESC
-    </select>
-
     <select id="listByShopId" resultType="com.yami.shop.bean.app.dto.ProductDto">
         SELECT
         <include refid="prodWithNoContent_SQL"/>
@@ -823,7 +826,7 @@
         tcp.shop_id,
         MIN(cp.channel_prod_price) AS price,
         tp.pic,
-        tss.shop_sku_stocks AS total_stocks,
+        sum(tss.shop_sku_stocks) AS total_stocks,
 
         COALESCE ((
         SELECT
@@ -844,7 +847,7 @@
         INNER JOIN tz_category_prod tcp ON tp.prod_id = tcp.prod_id
         AND tcp.is_delete = 0 AND tcp.shop_id = #{prodByCategoryIdAndShopIdDTO.shopId}
         and tcp.category_id = #{prodByCategoryIdAndShopIdDTO.categoryId}
-        LEFT JOIN tz_shop_sku tss ON tss.spu_id = tp.prod_id and tss.shop_id = 1
+        LEFT JOIN tz_shop_sku tss ON tss.spu_id = tp.prod_id and tss.shop_id =  #{prodByCategoryIdAndShopIdDTO.shopId}
         INNER JOIN tz_channel_prod cp ON cp.shop_id = tcp.shop_id
         AND cp.sku_id = tss.sku_id
         AND cp.is_delete = 0
@@ -858,7 +861,8 @@
         WHERE tp.STATUS = 1
         AND tp.`is_delete` = 0
         GROUP BY tp.prod_id
-        ORDER BY MAX(tp.create_time) DESC
+        ORDER BY
+        sales_volume DESC,  price ASC
     </select>
 
 <!--    <resultMap id="listProdByCIdAndSIdMap" type="com.yami.shop.bean.param.CategoryProductParam">-->

+ 10 - 5
yami-shop-service/src/main/resources/mapper/ShopDetailMapper.xml

@@ -116,15 +116,20 @@
         sd.shop_lat ,
         sd.shop_lng,
         ( 6371 * acos( cos( radians(#{lat}) ) * cos( radians( shop_lat ) ) * cos( radians( shop_lng ) - radians(#{lon})
-        ) + sin( radians(#{lat}) ) * sin( radians( shop_lat ) ) ) ) distance
+        ) + sin( radians(#{lat}) ) * sin( radians( shop_lat ) ) ) ) distance,
+        EXISTS(
+            SELECT 1
+            FROM tz_channel_prod cp
+            WHERE cp.shop_id = sd.shop_id
+              AND cp.is_delete = 0
+              AND cp.channel_id = #{channelId}
+        ) AS hasProduct
         from
         tz_shop_detail sd
         right join tz_transport2 tp on tp.shop_id = sd.shop_id
         right join tz_channel_shop tcs on tcs.shop_id = sd.shop_id
-        where shop_status = 1
-        <if test="null != channelId">
-         and   tcs.`channel_id`= #{channelId} and tcs.`is_delete`=0
-        </if>
+        where sd.shop_status = 1
+        and   tcs.`channel_id`= #{channelId} and tcs.`is_delete`=0
         order by
         distance
     </select>

+ 2 - 17
yami-shop-user/yami-shop-user-api/src/main/java/com/yami/shop/user/api/controller/UserScoreController.java

@@ -9,38 +9,23 @@ package com.yami.shop.user.api.controller;
  * 版权所有,侵权必究!
  */
 
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yami.shop.bean.enums.ScoreLogType;
-import com.yami.shop.bean.event.UpdateUserScoreEvent;
 import com.yami.shop.bean.model.PointsRecord;
-import com.yami.shop.bean.param.ScoreExpireParam;
 import com.yami.shop.common.bean.SysConfig;
-import com.yami.shop.bean.model.UserExtension;
-import com.yami.shop.bean.param.ScoreConfigParam;
 import com.yami.shop.common.config.Constant;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.security.api.util.SecurityUtils;
 import com.yami.shop.service.SysConfigService;
-import com.yami.shop.service.UserExtensionService;
 import com.yami.shop.bean.dto.ScoreDataDto;
-import com.yami.shop.user.comment.model.UserScoreDetail;
-import com.yami.shop.user.comment.model.UserScoreLog;
-import com.yami.shop.user.comment.service.UserLevelService;
 import com.yami.shop.user.comment.service.UserScoreDetailService;
 import com.yami.shop.user.comment.service.UserScoreLogService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.apache.commons.collections.CollectionUtils;
-import org.springframework.context.ApplicationContext;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Objects;
 
 /**
@@ -77,9 +62,9 @@ public class UserScoreController {
      */
     @GetMapping("/page")
     @ApiOperation(value = "查询积分明细", notes = "查询积分明细")
-    public ResponseEntity<IPage<PointsRecord>> getScoreLogPage(@ModelAttribute PageParam<PointsRecord> page, @RequestParam Long platform) {
+    public ResponseEntity<IPage<PointsRecord>> getScoreLogPage(@ModelAttribute PageParam<PointsRecord> page, @RequestParam Long channelId) {
         String userId = SecurityUtils.getUser().getUserId();
-        return ResponseEntity.ok(userScoreDetailService.doGetScorePage(page, userId,platform));
+        return ResponseEntity.ok(userScoreDetailService.doGetScorePage(page, userId,channelId));
     }