超管赠送头饰

This commit is contained in:
2025-05-26 18:29:06 +08:00
parent f5cd335f37
commit 00dc26f73e
14 changed files with 308 additions and 9 deletions

View File

@@ -0,0 +1,31 @@
package com.accompany.admin.model.superadminrole;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
/**
* 后台超管【赠送头饰】权限表实体类
*
* @author
* @since 2025-05-26
*/
@Data
public class AdminHeadwearRef implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Integer adminId;
private Integer headwearId;
private Date createTime;
}

View File

@@ -0,0 +1,31 @@
package com.accompany.admin.model.superadminrole;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
/**
* 后台超管【赠送铭牌】权限表实体类
*
* @author
* @since 2025-05-26
*/
@Data
public class AdminNameplateRef implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Integer adminId;
private Integer nameplateId;
private Date createTime;
}

View File

@@ -0,0 +1,14 @@
package com.accompany.admin.mapper.superadminrole;
import com.accompany.admin.model.superadminrole.AdminHeadwearRef;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 后台超管【赠送头饰】权限表 Mapper 接口
*
* @author
* @since 2025-05-26
*/
public interface AdminHeadwearRefMapper extends BaseMapper<AdminHeadwearRef> {
}

View File

@@ -0,0 +1,14 @@
package com.accompany.admin.mapper.superadminrole;
import com.accompany.admin.model.superadminrole.AdminNameplateRef;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 后台超管【赠送铭牌】权限表 Mapper 接口
*
* @author
* @since 2025-05-26
*/
public interface AdminNameplateRefMapper extends BaseMapper<AdminNameplateRef> {
}

View File

@@ -12,7 +12,7 @@ import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.apache.commons.collections.CollectionUtils;
import java.util.*;
@@ -31,7 +31,8 @@ public class HeadwearAdminService extends BaseService {
@Autowired
private JedisService jedisService;
public Map<String, Object> listHeadwears(Integer headwearId, String headwearName, Byte limitType, Boolean enable, Integer partitionId, Integer page, Integer pageSize) {
public Map<String, Object> listHeadwears(Integer headwearId, String headwearName, Byte limitType, Boolean enable,
Integer partitionId, Integer page, Integer pageSize, List<Integer> headwearIds) {
HeadwearExample example = new HeadwearExample();
example.setOffset((page - 1) * pageSize);
example.setLimit(pageSize);
@@ -41,6 +42,11 @@ public class HeadwearAdminService extends BaseService {
if (headwearId != null) {
criteria.andHeadwearIdEqualTo(headwearId);
}
if (CollectionUtils.isNotEmpty(headwearIds)) {
criteria.andHeadwearIdIn(headwearIds);
}
if (headwearName != null) {
criteria.andNameLike("%" + headwearName + "%");
}

View File

@@ -0,0 +1,17 @@
package com.accompany.admin.service.superadminrole;
import com.accompany.admin.model.superadminrole.AdminHeadwearRef;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 后台超管【赠送头饰】权限表 服务类
*
* @author
* @since 2025-05-26
*/
public interface AdminHeadwearRefService extends IService<AdminHeadwearRef> {
List<Integer> headwearIds(Integer adminId);
}

View File

@@ -0,0 +1,18 @@
package com.accompany.admin.service.superadminrole;
import com.accompany.admin.model.superadminrole.AdminNameplateRef;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 后台超管【赠送铭牌】权限表 服务类
*
* @author
* @since 2025-05-26
*/
public interface AdminNameplateRefService extends IService<AdminNameplateRef> {
List<Integer> nameplateIds(Integer adminId);
}

View File

@@ -1,6 +1,5 @@
package com.accompany.admin.service.superadminrole;
import com.accompany.admin.model.AdminUser;
import com.accompany.admin.service.family.FamilyManageAdminService;
import com.accompany.admin.service.headwear.HeadwearAdminService;
import com.accompany.admin.service.system.AdminUserService;
@@ -8,26 +7,28 @@ import com.accompany.admin.service.vip.VipSendAdminService;
import com.accompany.admin.vo.AdminUserVo;
import com.accompany.admin.vo.family.FamilyAdminVo;
import com.accompany.admin.vo.vip.VipSendRecordVo;
import com.accompany.business.model.Headwear;
import com.accompany.business.model.HeadwearExample;
import com.accompany.business.model.family.Family;
import com.accompany.business.service.headwear.HeadwearService;
import com.accompany.business.service.user.UsersService;
import com.accompany.common.constant.Constant;
import com.accompany.common.result.BusiResult;
import com.accompany.common.result.PageResult;
import com.accompany.common.status.BusiStatus;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.exception.AdminServiceException;
import com.accompany.core.model.Users;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static java.util.Collections.EMPTY_LIST;
@Slf4j
@Service
public class SuperAdminService {
@@ -43,6 +44,12 @@ public class SuperAdminService {
private VipSendAdminService vipSendAdminService;
@Autowired
private HeadwearAdminService headwearAdminService;
@Autowired
private AdminHeadwearRefService adminHeadwearRefService;
@Autowired
private AdminNameplateRefService adminNameplateRefService;
@Autowired
private HeadwearService headwearService;
public void createFamily(Long erbanNo, Long inviteErbanNo, Integer adminId) {
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
@@ -99,4 +106,56 @@ public class SuperAdminService {
}
vipSendAdminService.send(uid, vipLevel, adminId, days);
}
public Map<String, Object> headwearList(Integer adminId, Integer page, Integer pageSize) {
Map<String, Object> data = Maps.newHashMap();
data.put("total", 0);
data.put("rows", EMPTY_LIST);
List<Integer> headwearIds = adminHeadwearRefService.headwearIds(adminId);
if (CollectionUtils.isEmpty(headwearIds)) {
return data;
}
return headwearAdminService.listHeadwears(null, null, null,
null, null, page, pageSize, headwearIds);
}
public Map<String, Object> sendHeadWear(Integer headwearId, String erbanNoStr, String sendDesc, Integer days, Integer adminId) {
//js传过来的换行符是"\n"而不是"\r\n"
String[] erbanNoList = erbanNoStr.split("\n");
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
for (String s : erbanNoList) {
Long erbanNo = Long.valueOf(s.trim());
Users user = usersService.getUserByErbanNo(erbanNo);
if (user == null) {
throw new AdminServiceException("ID NOT EXIST :" + s);
}
if (!adminUserVo.getPartitionIds().contains(user.getPartitionId())) {
throw new AdminServiceException("ID:"+ s +" Part Error");
}
}
log.info("send(),headwearId={},erbanNoList={},sendDesc={}", headwearId, erbanNoList, sendDesc);
Map<String, Object> retMap = new HashMap<String, Object>();
try {
retMap = headwearService.officialDonateHeadwear(headwearId, erbanNoList, days, true);
if (null != retMap) {
List<String> failCount = (List<String>) retMap.get("failErbanNo");
if (failCount != null && failCount.size() > 0) {
retMap.put("code", "200");//部分成功
retMap.put("erban", retMap.get("failErbanNo").toString());
retMap.put("message", retMap.get("failReason").toString());
} else {
retMap.put("code", "100");//全部成功
}
}
} catch (Exception e) {
log.error("send error:{}", e);
retMap.put("code", "300");//全部失败
retMap.put("message", e.getMessage());
}
return retMap;
}
}

View File

@@ -0,0 +1,36 @@
package com.accompany.admin.service.superadminrole.impl;
import com.accompany.admin.mapper.superadminrole.AdminHeadwearRefMapper;
import com.accompany.admin.model.superadminrole.AdminHeadwearRef;
import com.accompany.admin.service.superadminrole.AdminHeadwearRefService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 后台超管【赠送头饰】权限表 服务实现类
*
* @author
* @since 2025-05-26
*/
@Service
public class AdminHeadwearRefServiceImpl extends ServiceImpl<AdminHeadwearRefMapper, AdminHeadwearRef> implements AdminHeadwearRefService {
@Override
public List<Integer> headwearIds(Integer adminId) {
LambdaQueryWrapper<AdminHeadwearRef> wrapper = Wrappers.lambdaQuery();
wrapper.eq(AdminHeadwearRef::getAdminId, adminId);
List<AdminHeadwearRef> adminHeadwearRefs = baseMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(adminHeadwearRefs)) {
return new ArrayList<>();
}
return adminHeadwearRefs.stream().map(AdminHeadwearRef::getHeadwearId).collect(Collectors.toList());
}
}

View File

@@ -0,0 +1,36 @@
package com.accompany.admin.service.superadminrole.impl;
import com.accompany.admin.mapper.superadminrole.AdminNameplateRefMapper;
import com.accompany.admin.model.superadminrole.AdminNameplateRef;
import com.accompany.admin.service.superadminrole.AdminNameplateRefService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 后台超管【赠送铭牌】权限表 服务实现类
*
* @author
* @since 2025-05-26
*/
@Service
public class AdminNameplateRefServiceImpl extends ServiceImpl<AdminNameplateRefMapper, AdminNameplateRef> implements AdminNameplateRefService {
@Override
public List<Integer> nameplateIds(Integer adminId) {
LambdaQueryWrapper<AdminNameplateRef> wrapper = Wrappers.lambdaQuery();
wrapper.eq(AdminNameplateRef::getAdminId, adminId);
List<AdminNameplateRef> adminNameplateRefs = baseMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(adminNameplateRefs)) {
return new ArrayList<>();
}
return adminNameplateRefs.stream().map(AdminNameplateRef::getNameplateId).collect(Collectors.toList());
}
}

View File

@@ -0,0 +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="com.accompany.admin.mapper.superadminrole.AdminHeadwearRefMapper">
</mapper>

View File

@@ -0,0 +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="com.accompany.admin.mapper.superadminrole.AdminNameplateRefMapper">
</mapper>

View File

@@ -44,7 +44,7 @@ public class HeadwearAdminController extends BaseController {
public Map<String, Object> list(Integer headwearId, String headwearName, Byte limitType, Boolean enable, Integer partitionId, @RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "20") Integer pageSize) {
logger.info("list(), headwearId={}, headwearName={}, limitType={}, enable={}", headwearId, headwearName, limitType, enable);
return headwearAdminService.listHeadwears(headwearId, headwearName, limitType, enable, partitionId, page, pageSize);
return headwearAdminService.listHeadwears(headwearId, headwearName, limitType, enable, partitionId, page, pageSize, null);
}
@PostMapping(value = "save")

View File

@@ -9,6 +9,7 @@ import com.accompany.common.result.BusiResult;
import com.accompany.common.result.PageResult;
import com.accompany.common.status.BusiStatus;
import com.accompany.core.exception.AdminServiceException;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -17,6 +18,8 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api(tags = "超管中心")
@@ -85,4 +88,28 @@ public class SuperAdminController extends BaseController {
Page<VipSendRecordVo> pageInfo = superAdminService.pageRecord(erbanNo, current, size, getAdminId());
return BusiResult.success(new PageResult<>(pageInfo));
}
@ApiOperation(value = "头饰管理列表(同原有接口页面,不搜索项参,/html/headwear/headwear_admin.html", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "页码", required = true),
@ApiImplicitParam(name = "pageSize", value = "页长", required = true)
})
@GetMapping("/headwearList")
public Map<String, Object> list(@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "20") Integer pageSize) {
return superAdminService.headwearList(getAdminId(), page, pageSize);
}
@ApiOperation(value = "赠送头饰(同原有接口页面,不搜索项参,/html/headwear/headwear_admin.html", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "页码", required = true),
@ApiImplicitParam(name = "pageSize", value = "页长", required = true)
})
@RequestMapping(value = "send", method = RequestMethod.POST)
public void sendHeadWear(Integer headwearId, String erbanNo, String sendDesc, Integer days) {
Map<String, Object> retMap = superAdminService.sendHeadWear(headwearId, erbanNo, sendDesc, days, getAdminId());
writeJson(JSON.toJSONString(retMap));
}
}