nidapeng
2024-05-06 b70bbce994e573e58d4ee79a53ea60e9338b2516
最新版本
已修改15个文件
125 ■■■■■ 文件已修改
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CategoryCloudController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CompanyCloudController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/DeviceRoleCloudController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/MemberCardCloudController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
@@ -66,7 +66,7 @@
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:company:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        companyService.deleteById(id);
        companyService.deleteById(id,this.getLoginUser());
        return ApiResponse.success(null);
    }
@@ -79,7 +79,7 @@
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        companyService.deleteByIdInBatch(idList);
        companyService.deleteByIdInBatch(idList,this.getLoginUser());
        return ApiResponse.success(null);
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java
@@ -71,7 +71,7 @@
    @PostMapping("/batchLoss")
    @RequiresPermissions("business:membercard:update")
    public ApiResponse batchLoss(@RequestBody List<MemberCard> memberCards) {
        memberCardService.updateByIdInBatch(memberCards,0);
        memberCardService.updateByIdInBatch(memberCards,0,this.getLoginUser());
        return ApiResponse.success(null);
    }
@@ -79,7 +79,7 @@
    @PostMapping("/batchUnLoss")
    @RequiresPermissions("business:membercard:update")
    public ApiResponse batchUnLoss(@RequestBody List<MemberCard> memberCards) {
        memberCardService.updateByIdInBatch(memberCards,1);
        memberCardService.updateByIdInBatch(memberCards,1,this.getLoginUser());
        return ApiResponse.success(null);
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CategoryCloudController.java
@@ -35,6 +35,7 @@
    @PostMapping("/create")
    @CloudRequiredPermission("business:category:create")
    public ApiResponse create(@RequestBody Category category,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        category.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(categoryService.create(category));
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CompanyCloudController.java
@@ -58,7 +58,8 @@
    @ApiOperation("创建劳务公司")
    @PostMapping("/createLaborServices")
    @CloudRequiredPermission("business:company:create")
    public ApiResponse<Integer> createLaborServices(@RequestBody Company company){
    public ApiResponse<Integer> createLaborServices(@RequestBody Company company,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        company.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(companyService.createLaborServices(company));
    }
@@ -66,7 +67,7 @@
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:company:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        companyService.deleteById(id);
        companyService.deleteById(id,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -79,7 +80,7 @@
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        companyService.deleteByIdInBatch(idList);
        companyService.deleteByIdInBatch(idList,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -87,6 +88,7 @@
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:company:update")
    public ApiResponse updateById(@RequestBody Company company,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        company.setLoginUserInfo(this.getLoginUser(token));
        companyService.updateById(company);
        return ApiResponse.success(null);
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/DeviceRoleCloudController.java
@@ -34,7 +34,8 @@
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:devicerole:create")
    public ApiResponse create(@RequestBody DeviceRole deviceRole) {
    public ApiResponse create(@RequestBody DeviceRole deviceRole,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        deviceRole.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(deviceRoleService.create(deviceRole));
    }
@@ -63,6 +64,8 @@
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:devicerole:update")
    public ApiResponse updateById(@RequestBody DeviceRole deviceRole,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        deviceRole.setLoginUserInfo(this.getLoginUser(token));
        deviceRoleService.updateById(deviceRole);
        return ApiResponse.success(null);
    }
@@ -71,12 +74,15 @@
    @PostMapping("/updateStatusById")
    @CloudRequiredPermission("business:devicerole:update")
    public ApiResponse updateStatusById(@RequestBody DeviceRole deviceRole,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        deviceRole.setLoginUserInfo(this.getLoginUser(token));
        deviceRoleService.updateStatusById(deviceRole);
        return ApiResponse.success(null);
    }
    @ApiOperation("默认下发门禁组角色")
    @PostMapping("/updateMemberRole")
    public ApiResponse updateMemberRole(@RequestBody DeviceRole deviceRole,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        deviceRole.setLoginUserInfo(this.getLoginUser(token));
        deviceRoleService.updateMemberRole(deviceRole);
        return ApiResponse.success(null);
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/MemberCardCloudController.java
@@ -34,7 +34,8 @@
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:membercard:create")
    public ApiResponse create(@RequestBody MemberCard memberCard) {
    public ApiResponse create(@RequestBody MemberCard memberCard,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        memberCard.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(memberCardService.create(memberCard));
    }
@@ -71,7 +72,7 @@
    @PostMapping("/batchLoss")
    @CloudRequiredPermission("business:membercard:update")
    public ApiResponse batchLoss(@RequestBody List<MemberCard> memberCards,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        memberCardService.updateByIdInBatch(memberCards,0);
        memberCardService.updateByIdInBatch(memberCards,0,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -79,7 +80,7 @@
    @PostMapping("/batchUnLoss")
    @CloudRequiredPermission("business:membercard:update")
    public ApiResponse batchUnLoss(@RequestBody List<MemberCard> memberCards,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        memberCardService.updateByIdInBatch(memberCards,1);
        memberCardService.updateByIdInBatch(memberCards,1,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -87,6 +88,7 @@
    @PostMapping("/refundCard")
    @CloudRequiredPermission("business:membercard:update")
    public ApiResponse refundCard(@RequestBody MemberCard memberCard,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        memberCard.setLoginUserInfo(this.getLoginUser(token));
        memberCardService.updateRefundCard(memberCard);
        return ApiResponse.success(null);
    }
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("分类信息表")
@TableName("`category`")
public class Category {
public class Category extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -177,11 +177,11 @@
    @ApiModelProperty(value = "海康部门级别路径", example = "1")
    @ExcelColumn(name="海康部门级别路径")
    private String hk_company_path;
    private String hkCompanyPath;
    @ApiModelProperty(value = "自建部门级别路径", example = "1")
    @ExcelColumn(name="自建部门级别路径")
    private String company_path;
    private String companyPath;
    @ApiModelProperty(value = "erp部门级别路径", example = "1")
    @ExcelColumn(name="erp部门级别路径")
    private String erp_company_path;
    private String erpCompanyPath;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +21,7 @@
@Data
@ApiModel("门禁角色信息表")
@TableName("`device_role`")
public class DeviceRole {
public class DeviceRole extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("用户卡片绑定信息表")
@TableName("`member_card`")
public class MemberCard {
public class MemberCard extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.MemberCard;
@@ -54,7 +55,7 @@
     *
     * @param memberCards 实体集
     */
    void updateByIdInBatch(List<MemberCard> memberCards,Integer type);
    void updateByIdInBatch(List<MemberCard> memberCards, Integer type, LoginUserInfo userInfo);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -37,6 +37,9 @@
    public Integer create(Category category) {
        checkUnique(category);
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo ==null){
            loginUserInfo = category.getLoginUserInfo();
        }
        Category insert = new Category();
        insert.setCreator(loginUserInfo.getId());
        insert.setCreateDate(new Date());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -25,6 +25,7 @@
import com.doumee.dao.admin.request.UpdateCompanySortDTO;
import com.doumee.dao.admin.response.CompanyDTO;
import com.doumee.dao.business.CompanyMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.join.CompanyJoinMapper;
import com.doumee.dao.business.model.Category;
import com.doumee.dao.business.model.Company;
@@ -54,6 +55,8 @@
    @Autowired
    private CompanyMapper companyMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private DataSyncConfig dataSyncConfig;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
@@ -79,6 +82,7 @@
            user = company.getLoginUserInfo();
        }
        String rootOrgId = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_ROOTORG_CODE).getCode();
        company.setCompanyPath(company.getName());//名称路径
        company.setHkParentId(rootOrgId);
        if(company.getParentId() !=null){
            Company parent = findById(company.getParentId());
@@ -89,7 +93,9 @@
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "对不起,父级组织信息尚未同步下发成功~");
            }
            company.setHkParentId(parent.getHkId());
            company.setCompanyPath(parent.getCompanyPath()+"/"+company.getName());
        }
        company.setHkCompanyPath(company.getCompanyPath());
        company.setCreateDate(new Date());
        company.setCreator(user.getId());
        company.setIsdeleted(Constants.ZERO);
@@ -97,7 +103,6 @@
        company.setStatus(Constants.ZERO);
        company.setHkDate(company.getHkDate());
        company.setHkId(UUID.randomUUID().toString().replace("-",""));
        companyMapper.insert(company);
        //下发海康安防平台
        if(!addHkOrg(company)){
@@ -109,7 +114,6 @@
    private boolean addHkOrg(Company company) {
        List<OrgAddRequest> addList = new ArrayList<>();
        addList.add(getOrgAddModel(company));
        BaseResponse<OrgOrUserAddResponse> result =  HKService.addBatchOrg(addList);
        if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
            OrgOrUserAddResponse data = result.getData();
@@ -161,6 +165,7 @@
        return  model;
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer createLaborServices(Company company) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo ==null){
@@ -189,19 +194,25 @@
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void deleteById(Integer id,    LoginUserInfo user ) {
        if(id== null ){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Company model = findById(id);
        if(model == null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,组织信息不存在~");
        }
        if(StringUtils.isBlank(model.getHkId())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,组织信息尚未同步下发成功,暂不支持修改,请尝试删除后重新添加~");
        if(companyMapper.selectCount(new QueryWrapper<Company>().lambda()
                .eq(Company::getParentId,model.getId())
                .eq(Company::getIsdeleted,Constants.ZERO)) >0){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,该部门存在下级部门,不能进行删除操作!");
        }
        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                .eq(Member::getCompanyId,model.getId())
                .eq(Member::getIsdeleted,Constants.ZERO)) >0){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,该部门下存在人员信息,不能进行删除操作!");
        }
        Company company = new Company();
        company.setId(id);
        company.setEditDate(new Date());
@@ -211,7 +222,7 @@
        company.setHkDate(company.getHkDate());
        companyMapper.updateById(company);
        //下发海康安防平台
        if(!delHkOrg(model)){
        if(StringUtils.isBlank(model.getHkId()) && Constants.equalsInteger(Constants.ONE,model.getHkStatus()) && !delHkOrg(model)){
            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,组织删除下发失败,请确认该组织无下级组织或组织人员信息~");
        }
    }
@@ -429,7 +440,7 @@
    public void updateStatusById(Company company) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo==null){
            loginUserInfo = company.getLoginUserInfo()
            loginUserInfo = company.getLoginUserInfo();
        }
        company.setEditDate(new Date());
        company.setEditor(loginUserInfo.getId());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -1,43 +1,39 @@
package com.doumee.service.business.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.erp.model.openapi.request.RoleListRequest;
import com.doumee.core.erp.model.openapi.response.DeviceListResponse;
import com.doumee.core.erp.model.openapi.response.RoleListResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.admin.response.MemberInfoDTO;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.MemberRoleJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.DeviceRole;
import com.doumee.dao.business.model.Empower;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.MemberRole;
import com.doumee.dao.web.response.DeviceRoleVO;
import com.doumee.service.business.DeviceRoleService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * 门禁角色信息表Service实现
@@ -78,6 +74,9 @@
            newDeviceRole = getDeviceRole(deviceRole.getType());
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo ==null){
            loginUserInfo = deviceRole.getLoginUserInfo();
        }
        if(null != newDeviceRole && deviceRole.getIsDefault().equals(Constants.ZERO)) {
            DeviceRole updateDeviceRole = new DeviceRole();
            // 若现在新增数据设置默认门禁组;那么先把之前的默认门禁组状态改为不是默认的
@@ -140,6 +139,9 @@
            newDeviceRole = getDeviceRole(deviceRole.getType());
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo ==null){
            loginUserInfo = deviceRole.getLoginUserInfo();
        }
        if(null != newDeviceRole  && deviceRole.getIsDefault().equals(Constants.ZERO)) {
            DeviceRole update = new DeviceRole();
            update.setEdirot(loginUserInfo.getId().toString());
@@ -309,6 +311,9 @@
            newDeviceRole = getDeviceRole(deviceRole.getType());
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo ==null){
            loginUserInfo = deviceRole.getLoginUserInfo();
        }
        List<DeviceRole> deviceRoleList = new ArrayList<>();
        if(null != newDeviceRole) {
            DeviceRole update = new DeviceRole();
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
@@ -66,6 +66,9 @@
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(MemberCard memberCard) {
        LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(userInfo == null){
            userInfo = memberCard.getLoginUserInfo();
        }
        if(Objects.isNull(memberCard.getMemberId())
        || StringUtils.isBlank(memberCard.getCode())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -137,8 +140,7 @@
     */
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void updateByIdInBatch(List<MemberCard> memberCards,Integer type) {
        LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
    public void updateByIdInBatch(List<MemberCard> memberCards,Integer type,LoginUserInfo userInfo) {
        if (CollectionUtils.isEmpty(memberCards)) {
            return;
        }