diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index 25b5b6d5..c479a845 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -23,7 +23,6 @@ import org.springframework.data.domain.Pageable; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; @@ -46,7 +45,6 @@ public class TbShopUserController { @Log("导出数据") @ApiOperation("导出数据") @GetMapping(value = "/download") - @PreAuthorize("@el.check('tbShopUser:list')") public void exportTbShopUser(HttpServletResponse response, TbShopUserQueryCriteria criteria) throws IOException { tbShopUserService.download(tbShopUserService.queryAll(criteria), response); } @@ -54,15 +52,21 @@ public class TbShopUserController { @GetMapping @Log("查询/shop/user") @ApiOperation("查询/shop/user") - @PreAuthorize("@el.check('tbShopUser:list')") public ResponseEntity queryTbShopUser(TbShopUserQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(tbShopUserService.queryAll(criteria,pageable),HttpStatus.OK); } + @GetMapping("queryAllShopUser") + @Log("查询商家用户") + @ApiOperation("查询商家用户") + public ResponseEntity queryAllShopUser(TbShopUserQueryCriteria criteria, Pageable pageable){ + return new ResponseEntity<>(tbShopUserService.queryAllShopUser(criteria,pageable),HttpStatus.OK); + } + + @PostMapping @Log("新增/shop/user") @ApiOperation("新增/shop/user") - @PreAuthorize("@el.check('tbShopUser:add')") public ResponseEntity createTbShopUser(@Validated @RequestBody TbShopUser resources){ return new ResponseEntity<>(tbShopUserService.create(resources),HttpStatus.CREATED); } @@ -70,7 +74,6 @@ public class TbShopUserController { @PutMapping @Log("修改/shop/user") @ApiOperation("修改/shop/user") - @PreAuthorize("@el.check('tbShopUser:edit')") public ResponseEntity updateTbShopUser(@Validated @RequestBody TbShopUser resources){ tbShopUserService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -79,7 +82,6 @@ public class TbShopUserController { @DeleteMapping @Log("删除/shop/user") @ApiOperation("删除/shop/user") - @PreAuthorize("@el.check('tbShopUser:del')") public ResponseEntity deleteTbShopUser(@RequestBody Integer[] ids) { tbShopUserService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopVideoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopVideoController.java index 55fb1f48..89e12cad 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopVideoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopVideoController.java @@ -17,8 +17,8 @@ import io.swagger.annotations.*; **/ @RestController @RequiredArgsConstructor -@Api(tags = "商户视频号管理") -@RequestMapping("/api/tbShopVideo") +@Api(tags = "商户视频号/公众号管理") +@RequestMapping("/api/tbShopSource") public class TbShopVideoController { private final TbShopVideoService tbShopVideoService; @@ -27,6 +27,15 @@ public class TbShopVideoController { @Log("查询商户视频号") @ApiOperation("查询商户视频号") public ResponseEntity queryTbShopVideo(TbShopVideoQueryCriteria criteria){ + criteria.setType(3); + return new ResponseEntity<>(tbShopVideoService.queryAllPage(criteria), HttpStatus.OK); + } + + @GetMapping("media") + @Log("查询公众号") + @ApiOperation("查询公众号") + public ResponseEntity queryMediaPlatform(TbShopVideoQueryCriteria criteria){ + criteria.setType(1); return new ResponseEntity<>(tbShopVideoService.queryAllPage(criteria), HttpStatus.OK); } @@ -38,10 +47,19 @@ public class TbShopVideoController { return tbShopVideoService.findById(id); } + @PostMapping("media") + @Log("新增公众号") + @ApiOperation("新增公众号") + public ResponseEntity createMediaPlatform(@Validated @RequestBody TbShopVideo resources){ + resources.setType(1); + return new ResponseEntity<>(tbShopVideoService.create(resources),HttpStatus.CREATED); + } + @PostMapping @Log("新增商户视频号") @ApiOperation("新增商户视频号") public ResponseEntity createTbShopVideo(@Validated @RequestBody TbShopVideo resources){ + resources.setType(3); return new ResponseEntity<>(tbShopVideoService.create(resources),HttpStatus.CREATED); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopUserQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopUserQueryCriteria.java index baef7e17..47fe9b85 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopUserQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopUserQueryCriteria.java @@ -37,5 +37,5 @@ public class TbShopUserQueryCriteria{ @Query private String shopId; @Query - private Integer isVip=1; + private Integer isVip; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoDto.java index c7123271..9beb70da 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoDto.java @@ -21,11 +21,17 @@ public class TbShopVideoDto implements Serializable { /** 视频号id */ private Integer channelId; - /** 视频id */ - private Integer videoId; + /** 1-公众号;2-小程序;3-视频号 */ + private Integer type; - /** 视频地址 */ - private String videoUrl; + /** 资源Id(视频号id)(公众号id) */ + private Integer sourceId; + + /** 资源地址 */ + private String sourceUrl; + + /** 0:关闭;1:开启; */ + private Integer status; /** 创建时间 */ private Timestamp createdTime; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoQueryCriteria.java index 66b44590..45a5a30e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopVideoQueryCriteria.java @@ -8,6 +8,10 @@ public class TbShopVideoQueryCriteria { @Query private Integer shopId; + @Query + private Integer type; + @Query + private Integer status; private Integer pageSize = 10; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopVideo.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopVideo.java index 79f72136..7410b17b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopVideo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopVideo.java @@ -32,16 +32,24 @@ public class TbShopVideo implements Serializable { private String name; @Column(name = "`channel_id`") - @ApiModelProperty(value = "视频号id") + @ApiModelProperty(value = "渠道id(视频号id)") private Integer channelId; - @Column(name = "`video_id`") - @ApiModelProperty(value = "视频id") - private Integer videoId; + @Column(name = "`type`") + @ApiModelProperty(value = "1-公众号;2-小程序;3-视频号;") + private Integer type; - @Column(name = "`video_url`") - @ApiModelProperty(value = "视频地址") - private String videoUrl; + @Column(name = "`source_id`") + @ApiModelProperty(value = "资源Id(视频号id)(公众号id)") + private Integer sourceId; + + @Column(name = "`source_url`") + @ApiModelProperty(value = "资源地址") + private String sourceUrl; + + @Column(name = "`status`") + @ApiModelProperty(value = "0:关闭;1:开启;") + private Integer status; @Column(name = "`created_time`") @ApiModelProperty(value = "创建时间") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java index 4afa2893..27b94b0a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java @@ -16,7 +16,10 @@ package cn.ysk.cashier.repository.shop; import cn.ysk.cashier.pojo.shop.TbShopUser; +import cn.ysk.cashier.vo.ShopUserInfoVo; import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; @@ -32,6 +35,16 @@ import java.util.List; **/ public interface TbShopUserRepository extends JpaRepository,JpaSpecificationExecutor { + + @Query("SELECT NEW cn.ysk.cashier.vo.ShopUserInfoVo(su.id, su.isVip, u.nickName, u.headImg, u.telephone, su.updatedAt) " + + "FROM TbShopUser su " + + "LEFT JOIN TbUserInfo u " + + "on su.userId = CAST(u.id AS string) " + + "WHERE su.isVip = IFNULL(:isVip, su.isVip)" + + "AND (u.telephone = IFNULL(:phone, u.telephone))" + + "AND su.shopId = :shopId") + Page findShopUserJoinUserInfo(String shopId,Integer isVip,String phone, Pageable pageable); + @Query("SELECT count(0) from TbShopUser user where user.shopId = :shopId") Tuple searchByCount(@Param("shopId") String shopId); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java index 70feb788..5e83979e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java @@ -192,8 +192,8 @@ public class TbProductServiceImpl implements TbProductService { TbProduct tbProduct = tbProductRepository.findById(id).orElseGet(TbProduct::new); //单位 - CompletableFuture tbShopUnits = CompletableFuture.supplyAsync(() -> - tbShopUnitRepository.searchUnit(Integer.valueOf(StringUtils.isEmpty(tbProduct.getUnitId()) ? null : tbProduct.getUnitId()))); +// CompletableFuture tbShopUnits = CompletableFuture.supplyAsync(() -> +// tbShopUnitRepository.searchUnit(Integer.valueOf(StringUtils.isEmpty(tbProduct.getUnitId()) ? null : tbProduct.getUnitId()))); //sku CompletableFuture> tbProductSkus = CompletableFuture.supplyAsync(() -> tbProductSkuRepository.searchSku(tbProduct.getId().toString())); @@ -201,15 +201,16 @@ public class TbProductServiceImpl implements TbProductService { CompletableFuture tbProductSpec = CompletableFuture.supplyAsync(() -> tbProductSpecRepository.searchSpec(tbProduct.getSpecId())); - Threads.call(tbShopUnits, tbProductSkus, tbProductSpec); +// Threads.call(tbShopUnits, tbProductSkus, tbProductSpec); + Threads.call(tbProductSkus, tbProductSpec); //组装 TbProductVo tbProductVo = new TbProductVo(); tbProductVo.setCategoryId(tbProduct.getCategoryId()); //单位 - if (tbProduct.getUnitId() == null) { - tbProductVo.setUnitId(null); - tbProductVo.setUnitName(null); - } +// if (tbProduct.getUnitId() == null) { +// tbProductVo.setUnitId(null); +// tbProductVo.setUnitName(null); +// } //套餐 if (tbProduct.getGroupSnap() == null) { tbProductVo.setGroupSnap(new JSONArray()); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index 98c481b2..aa03ca35 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -15,34 +15,36 @@ */ package cn.ysk.cashier.service.impl.shopimpl; -import cn.ysk.cashier.pojo.shop.TbShopUser; -import cn.ysk.cashier.utils.ValidationUtil; -import cn.ysk.cashier.utils.FileUtil; -import lombok.RequiredArgsConstructor; -import cn.ysk.cashier.repository.shop.TbShopUserRepository; -import cn.ysk.cashier.service.shop.TbShopUserService; import cn.ysk.cashier.dto.shop.TbShopUserDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; import cn.ysk.cashier.mapper.shop.TbShopUserMapper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; +import cn.ysk.cashier.pojo.shop.TbShopUser; +import cn.ysk.cashier.repository.shop.TbShopUserRepository; +import cn.ysk.cashier.service.shop.TbShopUserService; +import cn.ysk.cashier.utils.FileUtil; import cn.ysk.cashier.utils.PageUtil; import cn.ysk.cashier.utils.QueryHelp; -import java.util.List; -import java.util.Map; -import java.io.IOException; +import cn.ysk.cashier.utils.ValidationUtil; +import cn.ysk.cashier.vo.ShopUserInfoVo; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; /** -* @website https://eladmin.vip -* @description 服务实现 -* @author lyf -* @date 2024-03-01 -**/ + * @author lyf + * @website https://eladmin.vip + * @description 服务实现 + * @date 2024-03-01 + **/ @Service @RequiredArgsConstructor public class TbShopUserServiceImpl implements TbShopUserService { @@ -51,21 +53,33 @@ public class TbShopUserServiceImpl implements TbShopUserService { private final TbShopUserMapper tbShopUserMapper; @Override - public Map queryAll(TbShopUserQueryCriteria criteria, Pageable pageable){ - Page page = tbShopUserRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); + public Map queryAllShopUser(TbShopUserQueryCriteria criteria, Pageable pageable) { + Page shopUserJoinUserInfo = + tbShopUserRepository.findShopUserJoinUserInfo( + criteria.getShopId(), + criteria.getIsVip(), + criteria.getTelephone(), + pageable); + return PageUtil.toPage(shopUserJoinUserInfo); + } + + @Override + public Map queryAll(TbShopUserQueryCriteria criteria, Pageable pageable) { + criteria.setIsVip(1); + Page page = tbShopUserRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); return PageUtil.toPage(page.map(tbShopUserMapper::toDto)); } @Override - public List queryAll(TbShopUserQueryCriteria criteria){ - return tbShopUserMapper.toDto(tbShopUserRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); + public List queryAll(TbShopUserQueryCriteria criteria) { + return tbShopUserMapper.toDto(tbShopUserRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); } @Override @Transactional public TbShopUserDto findById(Integer id) { TbShopUser tbShopUser = tbShopUserRepository.findById(id).orElseGet(TbShopUser::new); - ValidationUtil.isNull(tbShopUser.getId(),"TbShopUser","id",id); + ValidationUtil.isNull(tbShopUser.getId(), "TbShopUser", "id", id); return tbShopUserMapper.toDto(tbShopUser); } @@ -79,7 +93,7 @@ public class TbShopUserServiceImpl implements TbShopUserService { @Transactional(rollbackFor = Exception.class) public void update(TbShopUser resources) { TbShopUser tbShopUser = tbShopUserRepository.findById(resources.getId()).orElseGet(TbShopUser::new); - ValidationUtil.isNull( tbShopUser.getId(),"TbShopUser","id",resources.getId()); + ValidationUtil.isNull(tbShopUser.getId(), "TbShopUser", "id", resources.getId()); tbShopUser.copy(resources); tbShopUserRepository.save(tbShopUser); } @@ -95,7 +109,7 @@ public class TbShopUserServiceImpl implements TbShopUserService { public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (TbShopUserDto tbShopUser : all) { - Map map = new LinkedHashMap<>(); + Map map = new LinkedHashMap<>(); map.put("钱包余额", tbShopUser.getAmount()); map.put("授权金额", tbShopUser.getCreditAmount()); map.put("消费累计", tbShopUser.getConsumeAmount()); @@ -108,7 +122,7 @@ public class TbShopUserServiceImpl implements TbShopUserService { map.put("上级Id", tbShopUser.getParentId()); map.put("上级的层级", tbShopUser.getParentLevel()); map.put("真实名字", tbShopUser.getName()); - map.put(" headImg", tbShopUser.getHeadImg()); + map.put(" headImg", tbShopUser.getHeadImg()); map.put("性别", tbShopUser.getSex()); map.put("生日", tbShopUser.getBirthDay()); map.put("联系电话", tbShopUser.getTelephone()); @@ -120,8 +134,8 @@ public class TbShopUserServiceImpl implements TbShopUserService { map.put("层级1-顶级 2-次级 3最低", tbShopUser.getLevel()); map.put("分销类型 auto-自动获取 set手动设置 charge充值", tbShopUser.getDistributeType()); map.put("排序", tbShopUser.getSort()); - map.put(" createdAt", tbShopUser.getCreatedAt()); - map.put(" updatedAt", tbShopUser.getUpdatedAt()); + map.put(" createdAt", tbShopUser.getCreatedAt()); + map.put(" updatedAt", tbShopUser.getUpdatedAt()); map.put("小程序openId", tbShopUser.getMiniOpenId()); list.add(map); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java index 21636264..0d41711c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java @@ -32,8 +32,17 @@ import javax.servlet.http.HttpServletResponse; **/ public interface TbShopUserService { + /** - * 查询数据分页 + * 商家后台 用户管理 + * @param criteria 条件 + * @param pageable 分页参数 + * @return Map + */ + Map queryAllShopUser(TbShopUserQueryCriteria criteria, Pageable pageable); + + /** + * 会员管理 * @param criteria 条件 * @param pageable 分页参数 * @return Map diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/system/domain/DictDetail.java b/eladmin-system/src/main/java/cn/ysk/cashier/system/domain/DictDetail.java index f5f285f9..b6a2bc0f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/system/domain/DictDetail.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/system/domain/DictDetail.java @@ -47,7 +47,11 @@ public class DictDetail extends BaseEntity implements Serializable { @ApiModelProperty(value = "字典", hidden = true) private Dict dict; - @ApiModelProperty(value = "字典标签") + @Column(name = "dict_name") + @ApiModelProperty(value = "字典标识") + private String dictName; + + @ApiModelProperty(value = "字典名称") private String label; @ApiModelProperty(value = "字典值") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/system/service/dto/DictDetailDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/system/service/dto/DictDetailDto.java index 01565255..cd4cde57 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/system/service/dto/DictDetailDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/system/service/dto/DictDetailDto.java @@ -32,6 +32,8 @@ public class DictDetailDto extends BaseDTO implements Serializable { private DictSmallDto dict; + private String dictName; + private String label; private String value; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/system/service/impl/DictDetailServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/system/service/impl/DictDetailServiceImpl.java index 79d41a84..c0478d96 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/system/service/impl/DictDetailServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/system/service/impl/DictDetailServiceImpl.java @@ -64,6 +64,7 @@ public class DictDetailServiceImpl implements DictDetailService { Dict dict = dictRepository.findById(resources.getDict().getId()).orElseGet(Dict::new); dict.setIsChild(1); dictRepository.save(dict); + resources.setDictName(dict.getDictName()); // 清理缓存 delCaches(resources); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/ShopUserInfoVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/ShopUserInfoVo.java new file mode 100644 index 00000000..13008ad2 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/ShopUserInfoVo.java @@ -0,0 +1,51 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.ysk.cashier.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** +* @author Zheng Jie +* @date 2019-6-10 16:32:18 +*/ +@Data +public class ShopUserInfoVo implements Serializable { + private Integer id; + + private Integer isVip; + + private String nickName; + + private String headImg; + + private String telephone; + + private Long updatedAt; + + public ShopUserInfoVo() { + } + + public ShopUserInfoVo(Integer id, Integer isVip, String nickName, String headImg, String telephone, Long updatedAt) { + this.id = id; + this.isVip = isVip; + this.nickName = nickName; + this.headImg = headImg; + this.telephone = telephone; + this.updatedAt = updatedAt; + } +} \ No newline at end of file