2 Achegas aa0188d529 ... a4589fbc13

Autor SHA1 Mensaxe Data
  lyx a4589fbc13 Merge remote-tracking branch 'origin/master' hai 2 semanas
  lyx f5163cd77c 新增:店铺抽成比例 hai 2 semanas

+ 8 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreInfo.java

@@ -164,4 +164,12 @@ public class StoreInfo {
     @TableField(value = "logout_time", fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date logoutTime;
+
+    @ApiModelProperty(value = "抽成比例")
+    @TableField("commission_rate")
+    private String commissionRate;
+
+    @ApiModelProperty(value = "原因")
+    @TableField("reason")
+    private String reason;
 }

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

@@ -148,4 +148,8 @@ public class StoreInfoDto {
     @ApiModelProperty(value = "行政区域区adcode")
     private String administrativeRegionDistrictAdcode;
 
+    @ApiModelProperty(value = "抽成比例")
+    @TableField("commission_rate")
+    private String commissionRate;
+
 }

+ 16 - 4
alien-store/src/main/java/shop/alien/store/controller/StoreInfoController.java

@@ -112,6 +112,17 @@ public class StoreInfoController {
         return R.fail("失败");
     }
 
+    @ApiOperation("web修改门店抽成")
+    @ApiOperationSupport(order = 3)
+    @PostMapping("/updateStoreCommissionRate")
+    public R updateStoreCommissionRate(@RequestBody StoreInfoDto storeInfoDto) {
+        log.info("StoreInfoController.updateStoreCommissionRate?storeInfoDto={}", storeInfoDto);
+        if (storeInfoService.editStoreCommissionRate(storeInfoDto) >  0) {
+            return R.data("成功");
+        }
+        return R.fail("失败");
+    }
+
     @ApiOperation("web端删除门店")
     @ApiOperationSupport(order = 3)
     @PostMapping("/deleteStoreInfo")
@@ -342,12 +353,13 @@ public class StoreInfoController {
     @GetMapping("/approveStoreInfo")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "门店id", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "approvalStatus", value = "审批状态(1:审批成功,2:审批失败)", dataType = "int", paramType = "query")
+            @ApiImplicitParam(name = "approvalStatus", value = "审批状态(1:审批成功,2:审批失败)", dataType = "int", paramType = "query"),
+            @ApiImplicitParam(name = "reason", value = "原因", dataType = "String", paramType = "query")
     })
     @ResponseBody
-    public R approveStoreInfo(@RequestParam("id") String id, @RequestParam("approvalStatus") Integer approvalStatus) {
-        log.info("StoreInfoController.approveStoreInfo?id={}&approvalStatus={}", id, approvalStatus);
-        storeInfoService.approveStoreInfo(id, approvalStatus);
+    public R approveStoreInfo(@RequestParam("id") String id, @RequestParam("approvalStatus") Integer approvalStatus,@RequestParam(value = "reason",required = false) String reason) {
+        log.info("StoreInfoController.approveStoreInfo?id={}&approvalStatus={}&reason={}", id, approvalStatus,reason);
+        storeInfoService.approveStoreInfo(id, approvalStatus, reason);
         return R.success("审批完成");
     }
 

+ 9 - 1
alien-store/src/main/java/shop/alien/store/service/StoreInfoService.java

@@ -163,7 +163,7 @@ public interface StoreInfoService extends IService<StoreInfo> {
     /**
      * web端审批结果
      */
-    void approveStoreInfo(String storeId, Integer approvalStatus);
+    void approveStoreInfo(String storeId, Integer approvalStatus, String reason);
 
     /**
      * web端导出商铺信息结果
@@ -206,4 +206,12 @@ public interface StoreInfoService extends IService<StoreInfo> {
      * @return List<StoreInfo>
      */
     List<StoreInfo> getStoreInfoByStoreTel(String storeTel);
+
+    /**
+     * 修改店铺佣金比率
+     *
+     * @param storeInfoDto
+     * @return
+     */
+    int editStoreCommissionRate(StoreInfoDto storeInfoDto);
 }

+ 38 - 3
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -32,7 +32,6 @@ import shop.alien.entity.store.vo.*;
 import shop.alien.mapper.*;
 import shop.alien.store.config.BaseRedisService;
 import shop.alien.store.config.GaoDeMapUtil;
-import shop.alien.store.service.LifeUserOrderService;
 import shop.alien.store.service.NearMeService;
 import shop.alien.store.service.StoreInfoService;
 import shop.alien.store.util.FileUploadUtil;
@@ -103,6 +102,8 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
 
     private final StoreInfoDraftMapper storeInfoDraftMapper;
 
+    private final LifeNoticeMapper lifeNoticeMapper;
+
     @Value("${spring.web.resources.excel-path}")
     private String excelPath;
 
@@ -326,7 +327,11 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
                     long daysToExpire = ChronoUnit.DAYS.between(nowLocal, expDate);
                     record.setDaysToExpire(daysToExpire);
                 }
-
+                // 处理状态
+                if(record.getLogoutFlag() == 1){
+                    record.setStoreStatusStr("已注销");
+                    record.setStoreStatus(2);
+                }
                 // 根据八大类不同进行个性化操作
                 if (StringUtils.isNotEmpty(businessSection)) {
                     switch (businessSection) {
@@ -414,6 +419,9 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
                 return false;
             }
             store.setStorePosition(LonAndLat);
+            if(null == store.getCommissionRate()){
+                store.setCommissionRate("0.03");
+            }
             this.save(store);
             Set<String> fileNameSet = multipartRequest.getMultiFileMap().keySet();
             if (!fileNameSet.isEmpty()) {
@@ -511,6 +519,9 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         EssentialCityCode essentialCityCode3 =
                 essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfo.getAdministrativeRegionDistrictAdcode()));
         storeInfo.setAdministrativeRegionDistrictName(essentialCityCode3.getAreaName());
+        if(null == storeInfo.getCommissionRate()){
+            storeInfo.setCommissionRate("3");
+        }
         storeInfoMapper.insert(storeInfo);
         result.setId(storeInfo.getId());
         nearMeService.inGeolocation(new Point(Double.parseDouble(storeInfoDto.getStorePositionLongitude()),
@@ -1011,9 +1022,25 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
     }
 
     @Override
-    public void approveStoreInfo(String storeId, Integer approvalStatus) {
+    public void approveStoreInfo(String storeId, Integer approvalStatus, String reason) {
         StoreInfo storeInfo = storeInfoMapper.selectById(storeId);
         storeInfo.setStoreApplicationStatus(approvalStatus);
+        storeInfo.setReason(reason);
+        StoreUser storeUser = storeUserMapper.selectOne(new LambdaQueryWrapper<StoreUser>().eq(StoreUser::getStoreId, storeInfo.getId()).eq(StoreUser::getDeleteFlag,0));
+        // 发送审核通知
+        LifeNotice lifeNotice = new LifeNotice();
+        lifeNotice.setSenderId("system");
+        lifeNotice.setReceiverId("store_"+ storeUser.getPhone());
+        lifeNotice.setBusinessId(storeInfo.getId());
+        lifeNotice.setTitle("店铺审核通知");
+        if(2 == approvalStatus){
+            lifeNotice.setContext("您的店铺申请被驳回,原因为:"+reason);
+        } else {
+            lifeNotice.setContext("您的店铺申请已通过");
+        }
+        lifeNotice.setNoticeType(1); // 系统通知
+        lifeNotice.setIsRead(0);
+        lifeNoticeMapper.insert(lifeNotice);
         storeInfoMapper.updateById(storeInfo);
     }
 
@@ -1336,4 +1363,12 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         queryWrapper.eq(StoreInfo::getStoreTel, storeTel);
         return storeInfoMapper.selectList(queryWrapper);
     }
+
+    @Override
+    public int editStoreCommissionRate(StoreInfoDto storeInfoDto) {
+        LambdaUpdateWrapper<StoreInfo> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(StoreInfo::getId, storeInfoDto.getId());
+        wrapper.set(StoreInfo::getCommissionRate, storeInfoDto.getCommissionRate());
+        return storeInfoMapper.update(null, wrapper);
+    }
 }