|
@@ -10,15 +10,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.sqx.common.constant.MyConstant;
|
|
import com.sqx.common.constant.MyConstant;
|
|
|
import com.sqx.common.exception.SqxException;
|
|
import com.sqx.common.exception.SqxException;
|
|
|
import com.sqx.common.query.PageQuery;
|
|
import com.sqx.common.query.PageQuery;
|
|
|
|
|
+import com.sqx.common.utils.Constant;
|
|
|
import com.sqx.common.utils.PageUtils;
|
|
import com.sqx.common.utils.PageUtils;
|
|
|
|
|
+import com.sqx.common.utils.SpringContextUtils;
|
|
|
import com.sqx.modules.activity.dao.ActivityShopDao;
|
|
import com.sqx.modules.activity.dao.ActivityShopDao;
|
|
|
import com.sqx.modules.activity.dto.JoinActivityDTO;
|
|
import com.sqx.modules.activity.dto.JoinActivityDTO;
|
|
|
import com.sqx.modules.activity.dto.QuitActivityDTO;
|
|
import com.sqx.modules.activity.dto.QuitActivityDTO;
|
|
|
import com.sqx.modules.activity.entity.ActivityShop;
|
|
import com.sqx.modules.activity.entity.ActivityShop;
|
|
|
import com.sqx.modules.activity.enums.LimitTypeEnum;
|
|
import com.sqx.modules.activity.enums.LimitTypeEnum;
|
|
|
import com.sqx.modules.activity.service.ActivityGoodsService;
|
|
import com.sqx.modules.activity.service.ActivityGoodsService;
|
|
|
|
|
+import com.sqx.modules.activity.service.ActivityService;
|
|
|
import com.sqx.modules.activity.service.ActivityShopService;
|
|
import com.sqx.modules.activity.service.ActivityShopService;
|
|
|
import com.sqx.modules.activity.vo.ActivityShopVO;
|
|
import com.sqx.modules.activity.vo.ActivityShopVO;
|
|
|
|
|
+import com.sqx.modules.activity.vo.ActivityVO;
|
|
|
import com.sqx.modules.activity.vo.ShopActivityGroupVO;
|
|
import com.sqx.modules.activity.vo.ShopActivityGroupVO;
|
|
|
import com.sqx.modules.activity.vo.ShopActivityVO;
|
|
import com.sqx.modules.activity.vo.ShopActivityVO;
|
|
|
import com.sqx.modules.datacentre.entity.SysUserShop;
|
|
import com.sqx.modules.datacentre.entity.SysUserShop;
|
|
@@ -45,11 +49,11 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
|
|
|
|
|
|
|
|
private final ActivityGoodsService activityGoodsService;
|
|
private final ActivityGoodsService activityGoodsService;
|
|
|
private final SysUserShopService sysUserShopService;
|
|
private final SysUserShopService sysUserShopService;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void joinActivity(JoinActivityDTO dto) {
|
|
public void joinActivity(JoinActivityDTO dto) {
|
|
|
// 权限校验
|
|
// 权限校验
|
|
|
- checkAuth(dto.getShopIds());
|
|
|
|
|
|
|
+ checkAuth(dto.getShopIds(), dto.getActivityId());
|
|
|
|
|
|
|
|
// 校验参数
|
|
// 校验参数
|
|
|
checkParam(dto);
|
|
checkParam(dto);
|
|
@@ -83,7 +87,7 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
|
|
|
@Transactional
|
|
@Transactional
|
|
|
@Override
|
|
@Override
|
|
|
public void quitActivity(QuitActivityDTO dto) {
|
|
public void quitActivity(QuitActivityDTO dto) {
|
|
|
- checkAuth(Arrays.asList(dto.getShopId()));
|
|
|
|
|
|
|
+ checkAuth(Arrays.asList(dto.getShopId()), null);
|
|
|
|
|
|
|
|
LambdaQueryWrapper<ActivityShop> queryWrapper = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<ActivityShop> queryWrapper = Wrappers.lambdaQuery();
|
|
|
queryWrapper.eq(ActivityShop::getShopId, dto.getShopId());
|
|
queryWrapper.eq(ActivityShop::getShopId, dto.getShopId());
|
|
@@ -105,7 +109,7 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
|
|
|
ActivityShop activityShop = this.getById(activityShopId);
|
|
ActivityShop activityShop = this.getById(activityShopId);
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotNull(activityShop)) {
|
|
if (ObjectUtil.isNotNull(activityShop)) {
|
|
|
- checkAuth(Arrays.asList(activityShop.getShopId()));
|
|
|
|
|
|
|
+ checkAuth(Arrays.asList(activityShop.getShopId()), null);
|
|
|
|
|
|
|
|
this.removeById(activityShopId);
|
|
this.removeById(activityShopId);
|
|
|
|
|
|
|
@@ -157,20 +161,34 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
|
|
|
* 检查权限
|
|
* 检查权限
|
|
|
* 判断当前用户对相关的店铺有没有操作权限
|
|
* 判断当前用户对相关的店铺有没有操作权限
|
|
|
* @param shopIds 店铺列表
|
|
* @param shopIds 店铺列表
|
|
|
|
|
+ * @param activityId 活动id,退出活动时可以不传
|
|
|
*/
|
|
*/
|
|
|
- private void checkAuth(List<Long> shopIds) {
|
|
|
|
|
|
|
+ private void checkAuth(List<Long> shopIds, Long activityId) {
|
|
|
SysUserEntity user = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
|
|
SysUserEntity user = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
|
|
|
// 1平台管理员、2商户管理员
|
|
// 1平台管理员、2商户管理员
|
|
|
Integer userType = user.getUserType();
|
|
Integer userType = user.getUserType();
|
|
|
if (userType.intValue() == 2) {
|
|
if (userType.intValue() == 2) {
|
|
|
if (shopIds.size() > 1) {
|
|
if (shopIds.size() > 1) {
|
|
|
- throw new SqxException("权限不足:商户管理员只能添加自己的店铺到活动中");
|
|
|
|
|
|
|
+ throw new SqxException("权限不足:商户管理员只能操作自己的店铺加入或退出活动");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Long curShopId = shopIds.get(0);
|
|
Long curShopId = shopIds.get(0);
|
|
|
SysUserShop userShop = sysUserShopService.getByUserId(user.getUserId());
|
|
SysUserShop userShop = sysUserShopService.getByUserId(user.getUserId());
|
|
|
if (ObjectUtil.notEqual(curShopId, userShop.getShopId())) {
|
|
if (ObjectUtil.notEqual(curShopId, userShop.getShopId())) {
|
|
|
- throw new SqxException("权限不足:商户管理员只能添加自己的店铺到活动中");
|
|
|
|
|
|
|
+ throw new SqxException("权限不足:商户管理员只能操作自己的店铺加入或退出活动");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // activityId不为null表示加入活动时验证
|
|
|
|
|
+ if (ObjectUtil.isNotNull(activityId)) {
|
|
|
|
|
+ ActivityService activityService = SpringContextUtils.applicationContext.getBean(ActivityService.class);
|
|
|
|
|
+ ActivityVO activity = activityService.getActivityById(activityId);
|
|
|
|
|
+ if (ObjectUtil.isNull(activity)) {
|
|
|
|
|
+ throw new SqxException("无效的活动id");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!StrUtil.equals(activity.getAllowShop(), Constant.YES)) {
|
|
|
|
|
+ throw new SqxException("当前活动不允许商户主动加入,请联系平台管理员加入");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|