From 65948198a6dc5e808440ac6874db6df8aab6d9ab Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 23 十二月 2024 09:15:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java | 90 ++ manage/src/main/java/com/jilongda/manage/vo/TLensGoodsDetailVO.java | 21 manage/src/main/java/com/jilongda/manage/model/TInventory.java | 2 manage/src/main/java/com/jilongda/manage/utils/QRCodeUtil.java | 50 + manage/src/main/java/com/jilongda/manage/mapper/TCouponMapper.java | 10 manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParamLens.java | 24 manage/src/main/java/com/jilongda/manage/mapper/TLensGoodsMapper.java | 28 manage/src/main/java/com/jilongda/manage/service/TInventoryService.java | 5 manage/src/main/java/com/jilongda/manage/model/TCouponReceive.java | 5 manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java | 208 +++++ manage/src/main/java/com/jilongda/manage/vo/TInventoryInfoVO.java | 21 manage/src/main/java/com/jilongda/manage/mapper/TInventoryMapper.java | 9 manage/src/main/java/com/jilongda/manage/model/TInventoryFrameDetail.java | 2 manage/src/main/java/com/jilongda/manage/service/impl/TAppUserServiceImpl.java | 24 manage/src/main/java/com/jilongda/manage/service/impl/TLensSeriesServiceImpl.java | 9 applet/src/main/java/com/jilongda/applet/model/TAppUser.java | 4 manage/src/main/java/com/jilongda/manage/vo/TInventoryVO.java | 14 manage/src/main/resources/mapping/TFrameGoods.xml | 52 + manage/src/main/java/com/jilongda/manage/query/TInventoryQuery.java | 23 manage/src/main/java/com/jilongda/manage/mapper/TCouponReceiveMapper.java | 11 manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParam.java | 23 common/src/main/java/com/jilongda/common/pojo/BaseModel.java | 2 manage/src/main/java/com/jilongda/manage/query/TCouponQuery.java | 17 manage/src/main/java/com/jilongda/manage/service/TAppUserService.java | 4 manage/src/main/java/com/jilongda/manage/service/impl/TCouponServiceImpl.java | 50 + manage/src/main/resources/mapping/TCouponReceiveMapper.xml | 7 manage/src/main/java/com/jilongda/manage/vo/TLensGoodsVO.java | 27 manage/src/main/java/com/jilongda/manage/service/TCouponReceiveService.java | 5 manage/src/main/resources/mapping/TCouponMapper.xml | 14 manage/src/main/java/com/jilongda/manage/query/TOptometryQuery.java | 2 manage/src/main/java/com/jilongda/manage/service/TCouponService.java | 4 manage/src/main/resources/mapping/TOptometristMapper.xml | 3 manage/src/main/java/com/jilongda/manage/service/TLensGoodsService.java | 23 manage/src/main/java/com/jilongda/manage/service/impl/TLensGoodsServiceImpl.java | 49 + manage/src/main/resources/mapping/TAppUserMapper.xml | 19 manage/src/main/java/com/jilongda/manage/vo/TCouponInfoVO.java | 21 manage/src/main/java/com/jilongda/manage/service/impl/TInventoryServiceImpl.java | 14 manage/src/main/java/com/jilongda/manage/vo/TAppUserVO.java | 28 manage/src/main/java/com/jilongda/manage/model/TCoupon.java | 11 manage/src/main/java/com/jilongda/manage/vo/TFrameGoodsVO.java | 33 + manage/src/main/java/com/jilongda/manage/mapper/TAppUserMapper.java | 8 manage/src/main/resources/mapping/TLineUpMapper.xml | 2 manage/src/main/java/com/jilongda/manage/model/TAppUser.java | 10 manage/src/main/java/com/jilongda/manage/model/TLensGoods.java | 55 + manage/src/main/java/com/jilongda/manage/service/impl/TFrameGoodsServiceImpl.java | 54 + manage/src/main/java/com/jilongda/manage/vo/TLensSeriesVO.java | 2 manage/src/main/java/com/jilongda/manage/vo/TWarehousingLensVO.java | 4 manage/src/main/resources/mapping/TLensGoods.xml | 44 + manage/src/main/java/com/jilongda/manage/query/TFrameGoodsQuery.java | 34 + manage/src/main/java/com/jilongda/manage/service/TFrameGoodsService.java | 24 manage/src/main/java/com/jilongda/manage/vo/TCouponVO.java | 25 optometry/src/main/java/com/jilongda/optometry/model/TAppUser.java | 3 manage/pom.xml | 15 manage/src/main/java/com/jilongda/manage/dto/FrameInventoryDTO.java | 20 manage/src/main/java/com/jilongda/manage/controller/TInventoryController.java | 153 ++++ manage/src/main/java/com/jilongda/manage/mapper/TFrameGoodsMapper.java | 29 manage/src/main/java/com/jilongda/manage/controller/TLensSeriesController.java | 57 + manage/src/main/java/com/jilongda/manage/query/TAppUserQuery.java | 27 manage/src/main/resources/mapping/TInventoryMapper.xml | 23 manage/src/main/java/com/jilongda/manage/controller/TCouponController.java | 148 ++++ manage/src/main/java/com/jilongda/manage/vo/TAppUserCouponVO.java | 23 manage/src/main/java/com/jilongda/manage/query/TAppUserCouponQuery.java | 20 manage/src/main/java/com/jilongda/manage/query/TLensGoodsQuery.java | 28 manage/src/main/java/com/jilongda/manage/service/impl/TCouponReceiveServiceImpl.java | 41 + manage/src/main/java/com/jilongda/manage/model/TFrameGoods.java | 45 + 65 files changed, 1,823 insertions(+), 39 deletions(-) diff --git a/applet/src/main/java/com/jilongda/applet/model/TAppUser.java b/applet/src/main/java/com/jilongda/applet/model/TAppUser.java index e9fb36b..48e0bf6 100644 --- a/applet/src/main/java/com/jilongda/applet/model/TAppUser.java +++ b/applet/src/main/java/com/jilongda/applet/model/TAppUser.java @@ -57,9 +57,7 @@ @TableField("gender") private Integer gender; - @ApiModelProperty(value = "注册时间") - @TableField("registerTime") - private LocalDateTime registerTime; + @ApiModelProperty(value = "状态 1=启用 0=禁用") @TableField("status") diff --git a/common/src/main/java/com/jilongda/common/pojo/BaseModel.java b/common/src/main/java/com/jilongda/common/pojo/BaseModel.java index 8e038b8..39d85f6 100644 --- a/common/src/main/java/com/jilongda/common/pojo/BaseModel.java +++ b/common/src/main/java/com/jilongda/common/pojo/BaseModel.java @@ -32,7 +32,7 @@ /** * 新增执行 */ - @ApiModelProperty(value = "记录创建人,前端忽略") + @ApiModelProperty(value = "记录创建人(操作人),前端忽略") @TableField(value = "createBy", fill = FieldFill.INSERT) private String createBy; diff --git a/manage/pom.xml b/manage/pom.xml index 1989622..bfe00e3 100644 --- a/manage/pom.xml +++ b/manage/pom.xml @@ -18,6 +18,21 @@ <dependencies> <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>5.3.9</version> + </dependency> + <dependency> + <groupId>com.google.zxing</groupId> + <artifactId>core</artifactId> + <version>3.4.1</version> + </dependency> + <dependency> + <groupId>com.google.zxing</groupId> + <artifactId>javase</artifactId> + <version>3.4.1</version> + </dependency> + <dependency> <groupId>com</groupId> <artifactId>common</artifactId> <version>0.0.1-SNAPSHOT</version> diff --git a/manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java b/manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java index 366dd41..262af59 100644 --- a/manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java +++ b/manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java @@ -1,9 +1,31 @@ package com.jilongda.manage.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jilongda.common.basic.ApiResult; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TCouponReceive; +import com.jilongda.manage.model.TOptometry; +import com.jilongda.manage.model.TOrder; +import com.jilongda.manage.query.TAppUserCouponQuery; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.query.TOptometristQuery; +import com.jilongda.manage.service.TAppUserService; +import com.jilongda.manage.service.TCouponReceiveService; +import com.jilongda.manage.service.TOptometryService; +import com.jilongda.manage.service.TOrderService; +import com.jilongda.manage.vo.TAppUserCouponVO; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TOptometristVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import java.math.BigDecimal; /** * <p> @@ -14,8 +36,72 @@ * @since 2024-12-09 */ @RestController +@Api(tags = "用户管理") @RequestMapping("/t-app-user") public class TAppUserController { + @Resource + private TAppUserService appUserService; + @Resource + private TOrderService orderService; + @Resource + private TOptometryService tOptometryService; + @Resource + private TCouponReceiveService couponReceiveService; + @ApiOperation(value = "用户列表") + @PostMapping(value = "/pageList") + public ApiResult<PageInfo<TAppUserVO>> pageList(@RequestBody TAppUserQuery query) { + if (StringUtils.hasLength(query.getStartTime())){ + query.setStartTime(query.getStartTime()+" 00:00:00"); + query.setEndTime(query.getEndTime()+" 23:59:59"); + } + PageInfo<TAppUserVO> appUserVOPageInfo = appUserService.pageList(query); + return ApiResult.success(appUserVOPageInfo); + } + @ApiOperation(value = "启用/禁用") + @GetMapping(value = "/updateState") + public ApiResult updateState(Integer id) { + TAppUser byId = appUserService.getById(id); + if (byId.getStatus()==1){ + byId.setStatus(2); + }else{ + byId.setStatus(1); + } + appUserService.updateById(byId); + return ApiResult.success(); + } + @ApiOperation(value = "用户详情") + @GetMapping(value = "/getDetailById") + public ApiResult<TAppUserVO> getDetailById(Integer id) { + TAppUser byId = appUserService.getById(id); + TAppUserVO tAppUserVO = new TAppUserVO(); + BeanUtils.copyProperties(byId, tAppUserVO); + // 查询消费次数 + long l = orderService.count(new LambdaQueryWrapper<TOrder>() + .eq(TOrder::getUserId, tAppUserVO.getId())); + tAppUserVO.setSalesCount((int) l); + // 查询验光次数 + int size = tOptometryService.lambdaQuery().eq(TOptometry::getUserId, tAppUserVO.getId()) + .eq(TOptometry::getStatus, 3).list().size(); + tAppUserVO.setOptometryCount(size); + // 查询最后消费时间 + tAppUserVO.setSalesTime(orderService.lambdaQuery().eq(TOrder::getUserId, tAppUserVO.getId()) + .orderByDesc(TOrder::getCreateTime).last("limit 1").one().getCreateTime()); + // 查询最后验光时间 + tAppUserVO.setOptometryTime(tOptometryService.lambdaQuery().eq(TOptometry::getUserId, tAppUserVO.getId()) + .eq(TOptometry::getStatus, 3).orderByDesc(TOptometry::getCreateTime).last("limit 1").one().getCreateTime()); + // 查询订单总额 + BigDecimal reduce = orderService.lambdaQuery().eq(TOrder::getUserId, byId.getId()).list().stream().map(TOrder::getPayMoney) + .reduce(BigDecimal.ZERO, BigDecimal::add); + tAppUserVO.setSalesAmount(reduce); + + return ApiResult.success(tAppUserVO); + } + @ApiOperation(value = "用户详情-查看优惠券") + @GetMapping(value = "/getCouponDetailById") + public ApiResult<PageInfo<TAppUserCouponVO>> getCouponDetailById(@RequestBody TAppUserCouponQuery query) { + PageInfo<TAppUserCouponVO> appUserVOPageInfo = couponReceiveService.pageList(query); + return ApiResult.success(appUserVOPageInfo); + } } diff --git a/manage/src/main/java/com/jilongda/manage/controller/TCouponController.java b/manage/src/main/java/com/jilongda/manage/controller/TCouponController.java index 026a948..920f049 100644 --- a/manage/src/main/java/com/jilongda/manage/controller/TCouponController.java +++ b/manage/src/main/java/com/jilongda/manage/controller/TCouponController.java @@ -1,9 +1,49 @@ package com.jilongda.manage.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jilongda.common.basic.ApiResult; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.common.utils.UUIDUtil; +import com.jilongda.manage.dto.TModelDTO; +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TCoupon; +import com.jilongda.manage.model.TCouponReceive; +import com.jilongda.manage.model.TModel; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.query.TCouponQuery; +import com.jilongda.manage.service.TAppUserService; +import com.jilongda.manage.service.TCouponReceiveService; +import com.jilongda.manage.service.TCouponService; +import com.jilongda.manage.utils.QRCodeUtil; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TCouponInfoVO; +import com.jilongda.manage.vo.TCouponVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream; +import org.springframework.beans.BeanUtils; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.util.StringUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -14,8 +54,116 @@ * @since 2024-12-09 */ @RestController +@Api(tags = "优惠券管理") @RequestMapping("/t-coupon") public class TCouponController { + @Resource + private TCouponService couponService; + @Resource + private TCouponReceiveService couponReceiveService; + @Resource + private TAppUserService appUserService; + @ApiOperation(value = "优惠券列表") + @PostMapping(value = "/pageList") + public ApiResult<PageInfo<TCouponVO>> pageList(@RequestBody TCouponQuery query) { + PageInfo<TCouponVO> appUserVOPageInfo = couponService.pageList(query); + return ApiResult.success(appUserVOPageInfo); + } + @ApiOperation(value = "添加优惠券") + @PostMapping(value = "/add") + public ApiResult<String> add( @RequestBody TCoupon dto) throws Exception { + couponService.save(dto); + switch (dto.getType()){ + case 2: + // 全局发放 + List<Integer> collect = appUserService.lambdaQuery().list().stream() + .map(TAppUser::getId).collect(Collectors.toList()); + List<TCouponReceive> tCouponReceives = new ArrayList<>(); + for (Integer i : collect) { + TCouponReceive tCouponReceive = new TCouponReceive(); + tCouponReceive.setCouponId(dto.getId()); + tCouponReceive.setUserId(i); + tCouponReceive.setType(2); + tCouponReceive.setAmount(dto.getAmount()); + tCouponReceive.setStoreId(dto.getStoreId()); + if (dto.getTime()!=0){ + tCouponReceive.setEndTime(LocalDateTime.now().plusDays(dto.getTime())); + } + tCouponReceive.setAmountCondition(dto.getAmountCondition()); + tCouponReceive.setStatus(1); + tCouponReceives.add(tCouponReceive); + } + couponReceiveService.saveBatch(tCouponReceives); + break; + case 3: + List<TCouponReceive> tCouponReceives1 = new ArrayList<>(); + for (Integer userId : dto.getUserIds()) { + TCouponReceive tCouponReceive = new TCouponReceive(); + tCouponReceive.setCouponId(dto.getId()); + tCouponReceive.setUserId(userId); + tCouponReceive.setType(2); + tCouponReceive.setAmount(dto.getAmount()); + tCouponReceive.setStoreId(dto.getStoreId()); + if (dto.getTime()!=0){ + tCouponReceive.setEndTime(LocalDateTime.now().plusDays(dto.getTime())); + } + tCouponReceive.setAmountCondition(dto.getAmountCondition()); + tCouponReceive.setStatus(1); + tCouponReceives1.add(tCouponReceive); + } + couponReceiveService.saveBatch(tCouponReceives1); + break; + case 4: + String code = "{\"id\": "+dto.getId()+ "}"; + BufferedImage blueImage = QRCodeUtil.createImage(code); + MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); + // todo 没有云存储 +// String s = OssUploadUtil.ossUpload("img/", blueFile); + break; + } + return ApiResult.success(); + } + @ApiOperation(value = "修改优惠券") + @PostMapping(value = "/update") + public ApiResult<String> update( @RequestBody TCoupon dto) throws Exception { + couponService.updateById(dto); + return ApiResult.success(); + } + @ApiOperation(value = "优惠券详情") + @PostMapping(value = "/getDetail") + public ApiResult<TCouponInfoVO> getDetail(Integer id) { + TCouponInfoVO tCouponInfoVO = new TCouponInfoVO(); + TCoupon byId = couponService.getById(id); + BeanUtils.copyProperties(byId, tCouponInfoVO); + int size = couponReceiveService.list(new LambdaQueryWrapper<TCouponReceive>() + .eq(TCouponReceive::getCouponId, id)).size(); + tCouponInfoVO.setGrantCout(size); + int size1 = couponReceiveService.list(new LambdaQueryWrapper<TCouponReceive>() + .eq(TCouponReceive::getCouponId, id) + .eq(TCouponReceive::getStatus, 2)).size(); + tCouponInfoVO.setUseCount(size1); + + return ApiResult.success(tCouponInfoVO); + } + public static MultipartFile convert(BufferedImage bufferedImage, String fileName) throws IOException { + // 将 BufferedImage 转换为字节数组 + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ImageIO.write(bufferedImage, "png", baos); + byte[] bytes = baos.toByteArray(); + + // 创建 ByteArrayResource + ByteArrayResource resource = new ByteArrayResource(bytes); + + // 创建 MockMultipartFile + MockMultipartFile multipartFile = new MockMultipartFile( + "file", + fileName, + "image/png", + resource.getInputStream() + ); + + return multipartFile; + } } diff --git a/manage/src/main/java/com/jilongda/manage/controller/TInventoryController.java b/manage/src/main/java/com/jilongda/manage/controller/TInventoryController.java index db4c761..57ddd4c 100644 --- a/manage/src/main/java/com/jilongda/manage/controller/TInventoryController.java +++ b/manage/src/main/java/com/jilongda/manage/controller/TInventoryController.java @@ -1,9 +1,29 @@ package com.jilongda.manage.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import com.jilongda.common.basic.ApiResult; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.dto.FrameInventoryDTO; +import com.jilongda.manage.dto.GetCurrentByParam; +import com.jilongda.manage.dto.GetCurrentByParamLens; +import com.jilongda.manage.model.*; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.query.TInventoryQuery; +import com.jilongda.manage.service.*; +import com.jilongda.manage.utils.LoginInfoUtil; +import com.jilongda.manage.vo.TFrameGoodsVO; +import com.jilongda.manage.vo.TInventoryInfoVO; +import com.jilongda.manage.vo.TInventoryVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; +import org.springframework.beans.BeanUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -14,8 +34,137 @@ * @since 2024-12-09 */ @RestController +@Api(tags = "盘点管理") @RequestMapping("/t-inventory") public class TInventoryController { + @Resource + private TInventoryService inventoryService; + @Resource + private TInventoryFrameDetailService inventoryFrameDetailService; + @Resource + private TInventoryLensDetailService inventoryLensDetailService; + @Resource + private LoginInfoUtil loginInfoUtil; + @Resource + private TFrameGoodsService frameGoodsService; + @Resource + private TLensGoodsService lensGoodsService; + @Resource + private TLensSeriesService lensSeriesService; + @Resource + private TModelService modelService; + @Resource + private TStoreService storeService; + @ApiOperation(value = "盘点分页列表") + @PostMapping(value = "/pageList") + public ApiResult<PageInfo<TInventoryVO>> pageList(@RequestBody TInventoryQuery query) { + if (StringUtils.hasLength(query.getStartTime())){ + query.setStartTime(query.getStartTime()+" 00:00:00"); + query.setEndTime(query.getEndTime()+" 23:59:59"); + } + return ApiResult.success(inventoryService.pageList(query)); + } + @ApiOperation(value = "镜架添加盘点") + @PostMapping(value = "/addFrameInventory") + public ApiResult<PageInfo<TInventoryVO>> addFrameInventory(@RequestBody TInventoryQuery query) { + if (StringUtils.hasLength(query.getStartTime())){ + query.setStartTime(query.getStartTime()+" 00:00:00"); + query.setEndTime(query.getEndTime()+" 23:59:59"); + } + return ApiResult.success(inventoryService.pageList(query)); + } + @ApiOperation(value = "镜片添加盘点") + @PostMapping(value = "/addLensInventory") + public ApiResult addLensInventory(@RequestBody FrameInventoryDTO query) { + TInventory tInventory = new TInventory(); + BeanUtils.copyProperties(query, tInventory); + inventoryService.save(tInventory); + for (TInventoryFrameDetail tInventoryFrameDetail : query.getList()) { + tInventoryFrameDetail.setInventoryId(tInventory.getId()); + } + inventoryFrameDetailService.saveBatch(query.getList()); + return ApiResult.success(); + } + + @ApiOperation(value = "镜架-根据品牌id查询对应库存") + @PostMapping(value = "/getCountByBrandId") + public ApiResult getCountByBrandId(Integer id) { + List<Integer> collect = modelService.lambdaQuery().eq(TModel::getBrandId, id) + .list().stream().map(TModel::getId).distinct().collect(Collectors.toList()); + if (collect.isEmpty())collect.add(-1); + List<TFrameGoods> list = frameGoodsService.lambdaQuery().in(TFrameGoods::getModelId, collect).list(); + if (list.isEmpty())return ApiResult.success("0"); + int i = 0; + for (TFrameGoods tFrameGoods : list) { + i+=tFrameGoods.getTotal(); + } + return ApiResult.success(i); + } + @ApiOperation(value = "镜架-根据材质id查询对应库存") + @PostMapping(value = "/getCountByMaterialId") + public ApiResult getCountByMaterialId(Integer id) { + List<Integer> collect = modelService.lambdaQuery().eq(TModel::getMaterialId, id) + .list().stream().map(TModel::getId).distinct().collect(Collectors.toList()); + if (collect.isEmpty())collect.add(-1); + List<TFrameGoods> list = frameGoodsService.lambdaQuery().in(TFrameGoods::getModelId, collect).list(); + if (list.isEmpty())return ApiResult.success("0"); + int i = 0; + for (TFrameGoods tFrameGoods : list) { + i+=tFrameGoods.getTotal(); + } + return ApiResult.success(i); + } + @ApiOperation(value = "镜架-根据品牌id、型号名称、色号名称、材质id查询当前库存") + @PostMapping(value = "/getCurrentByParamFrame") + public ApiResult<Integer> getCurrentByParamFrame(@RequestBody GetCurrentByParam getCurrentByParam) { + // 根据型号名称 查询型号列表ids + List<Integer> collect = modelService.lambdaQuery().eq(TModel::getName, getCurrentByParam.getModel()) + .eq(TModel::getColor,getCurrentByParam.getColor()) + .eq(TModel::getMaterialId,getCurrentByParam.getMaterialId()) + .eq(TModel::getBrandId,getCurrentByParam.getBrandId()) + .list().stream().map(TModel::getId).collect(Collectors.toList()); + TFrameGoods one = frameGoodsService.lambdaQuery().in(TFrameGoods::getModelId, collect) + .eq(TFrameGoods::getColor, getCurrentByParam.getColor()).one(); + if (one!=null){ + return ApiResult.success(one.getTotal()); + + } + return ApiResult.success(0); + } + @ApiOperation(value = "镜片-根据品牌id、型号名称、色号名称、材质id查询当前库存") + @PostMapping(value = "/getCurrentByParamLens") + public ApiResult<Integer> getCurrentByParamLens(@RequestBody GetCurrentByParamLens dto) { + TLensGoods one = lensGoodsService.lambdaQuery().in(TLensGoods::getSeriesId, dto.getSeriesId()) + .eq(dto.getLensType()!=null,TLensGoods::getLensType, dto.getLensType()) + .eq(dto.getRefractiveIndex()!=null,TLensGoods::getRefractiveIndex, dto.getRefractiveIndex()) + .eq(dto.getBallMirror()!=null,TLensGoods::getBallMirror, dto.getBallMirror()) + .eq(dto.getColumnMirror()!=null,TLensGoods::getColumnMirror, dto.getColumnMirror()) + .one(); + if (one!=null){ + return ApiResult.success(one.getTotal()); + } + return ApiResult.success(0); + } + @ApiOperation(value = "查看详情") + @GetMapping(value = "/getDetailById") + public ApiResult<TInventoryInfoVO> getDetailById(Integer id) { + TInventoryInfoVO tInventoryInfoVO = new TInventoryInfoVO(); + + TInventory byId = inventoryService.getById(id); + switch (byId.getType()){ + case 1: + List<TInventoryFrameDetail> list = inventoryFrameDetailService.lambdaQuery().eq(TInventoryFrameDetail::getInventoryId, id).list(); + tInventoryInfoVO.setFrameList(list); + break; + case 2: + List<TInventoryLensDetail> list2 = inventoryLensDetailService.lambdaQuery().eq(TInventoryLensDetail::getInventoryId, id).list(); + tInventoryInfoVO.setLensList(list2); + break; + } + TStore byId1 = storeService.getById(byId.getStoreId()); + if (byId1!=null)tInventoryInfoVO.setStore(byId1.getName()); + return ApiResult.success(tInventoryInfoVO); + } } diff --git a/manage/src/main/java/com/jilongda/manage/controller/TLensSeriesController.java b/manage/src/main/java/com/jilongda/manage/controller/TLensSeriesController.java index a5c7a3e..992f4bd 100644 --- a/manage/src/main/java/com/jilongda/manage/controller/TLensSeriesController.java +++ b/manage/src/main/java/com/jilongda/manage/controller/TLensSeriesController.java @@ -1,6 +1,8 @@ package com.jilongda.manage.controller; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.JsonArray; import com.jilongda.common.basic.ApiResult; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TLensSeries; @@ -15,6 +17,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; /** * <p> @@ -69,5 +74,57 @@ lensSeriesService.updateById(byId); return ApiResult.success(); } + @ApiOperation(value = "通过品牌id查询镜片系列列表") + @GetMapping(value = "/seriesList") + public ApiResult<List<TLensSeries>> seriesList(Integer brandId) { + return ApiResult.success(lensSeriesService.lambdaQuery().eq(TLensSeries::getBrandId,brandId).list()); + } + @ApiOperation(value = "通过系列id查询球/非球 返回参数1为球 2非球 3双飞") + @GetMapping(value = "/lensTypeList") + public ApiResult<List<Integer>> lensTypeList(Integer id) { + TLensSeries byId = lensSeriesService.getById(id); + List<Integer> integers = new ArrayList<>(); + if (StringUtils.hasLength(byId.getSphere())){ + integers.add(1); + } + if (StringUtils.hasLength(byId.getAsphericSurface())){ + integers.add(2); + } + if (StringUtils.hasLength(byId.getDoubleNon())){ + integers.add(3); + } + return ApiResult.success(integers); + } + @ApiOperation(value = "根据系列id + 球/非球查询折射率列表 球/非球入参数1为球 2非球 3双飞") + @GetMapping(value = "/refractiveIndexList") + public ApiResult<List<String>> refractiveIndexList(Integer id, Integer lensType) { + TLensSeries byId = lensSeriesService.getById(id); + if (lensType==1){ + String sphere = byId.getSphere(); + // 将字符串化为jsonArray + if (StringUtils.hasLength(sphere)) { + JSONObject.parseArray(sphere); + } else { + return ApiResult.success(new ArrayList<String>()); + } + } + if (lensType==2){ + String asphericSurface = byId.getAsphericSurface(); + if (StringUtils.hasLength(asphericSurface)) { + JSONObject.parseArray(asphericSurface); + } else { + return ApiResult.success(new ArrayList<String>()); + } + } + if (lensType==3){ + String doubleNon = byId.getDoubleNon(); + if (StringUtils.hasLength(doubleNon)) { + JSONObject.parseArray(doubleNon); + } else { + return ApiResult.success(new ArrayList<String>()); + } + } + return ApiResult.success(new ArrayList<String>()); + } } diff --git a/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java b/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java index bba637a..0945238 100644 --- a/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java +++ b/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java @@ -8,20 +8,17 @@ import com.jilongda.common.enums.WarehousingTypeEnum; import com.jilongda.common.security.JwtTokenUtils; import com.jilongda.common.utils.CodeGenerateUtils; +import com.jilongda.manage.dto.GetCurrentByParam; +import com.jilongda.manage.dto.GetCurrentByParamLens; import com.jilongda.manage.dto.TWarehousingDTO; import com.jilongda.manage.dto.TWarehousingLensDTO; -import com.jilongda.manage.model.TFrameWarehousingDetail; -import com.jilongda.manage.model.TLensWarehousingDetail; -import com.jilongda.manage.model.TWarehousing; +import com.jilongda.manage.model.*; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.query.TLensGoodsQuery; import com.jilongda.manage.query.TWarehousingDetailLensQuery; import com.jilongda.manage.query.TWarehousingDetailQuery; -import com.jilongda.manage.service.TFrameWarehousingDetailService; -import com.jilongda.manage.service.TLensWarehousingDetailService; -import com.jilongda.manage.service.TWarehousingService; -import com.jilongda.manage.vo.TFrameWarehousingDetailVO; -import com.jilongda.manage.vo.TLensWarehousingDetailVO; -import com.jilongda.manage.vo.TWarehousingLensVO; -import com.jilongda.manage.vo.TWarehousingVO; +import com.jilongda.manage.service.*; +import com.jilongda.manage.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; @@ -30,7 +27,9 @@ import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -51,7 +50,62 @@ private TFrameWarehousingDetailService frameWarehousingDetailService; @Autowired private TLensWarehousingDetailService lensWarehousingDetailService; + @Autowired + private TFrameGoodsService frameGoodsService; + @Autowired + private TLensGoodsService lensGoodsService; + @Autowired + private TModelService modelService; + @Autowired + private TLensSeriesService lensSeriesService; + @Autowired + private TStoreService storeService; + @Autowired + private TBrandService brandService; + /** + * 通过型号查询色号列表 + */ + @ApiOperation(value = "镜架-根据品牌id、型号名称、色号名称查询当前库存") + @PostMapping(value = "/getCurrentByParamFrame") + public ApiResult<Integer> getCurrentByParamFrame(@RequestBody GetCurrentByParam getCurrentByParam) { + // 根据型号名称 查询型号列表ids + List<Integer> collect = modelService.lambdaQuery().eq(TModel::getName, getCurrentByParam.getModel()) + .eq(TModel::getMaterialId,getCurrentByParam.getMaterialId()) + .eq(TModel::getColor,getCurrentByParam.getColor()) + .eq(TModel::getBrandId,getCurrentByParam.getBrandId()) + .list().stream().map(TModel::getId).collect(Collectors.toList()); + TFrameGoods one = frameGoodsService.lambdaQuery().in(TFrameGoods::getModelId, collect) + .eq(TFrameGoods::getColor, getCurrentByParam.getColor()).one(); + if (one!=null){ + return ApiResult.success(one.getTotal()); + } + return ApiResult.success(0); + } + @ApiOperation(value = "镜片-根据品牌id、型号名称、色号名称、材质id查询当前库存") + @PostMapping(value = "/getCurrentByParamLens") + public ApiResult<Integer> getCurrentByParamLens(@RequestBody GetCurrentByParamLens dto) { + TLensGoods one = lensGoodsService.lambdaQuery().in(TLensGoods::getSeriesId, dto.getSeriesId()) + .eq(dto.getLensType()!=null,TLensGoods::getLensType, dto.getLensType()) + .eq(dto.getRefractiveIndex()!=null,TLensGoods::getRefractiveIndex, dto.getRefractiveIndex()) + .eq(dto.getBallMirror()!=null,TLensGoods::getBallMirror, dto.getBallMirror()) + .eq(dto.getColumnMirror()!=null,TLensGoods::getColumnMirror, dto.getColumnMirror()) + .one(); + if (one!=null){ + return ApiResult.success(one.getTotal()); + } + return ApiResult.success(0); + } + @ApiOperation(value = "镜架库存分页列表") + @PostMapping(value = "/frameReceiptList") + public ApiResult<PageInfo<TFrameGoodsVO>> frameReceiptList(@RequestBody TFrameGoodsQuery query) { + return ApiResult.success(frameGoodsService.lensReceiptList(query)); + } + @ApiOperation(value = "镜片库存分页列表") + @PostMapping(value = "/lensReceiptList") + public ApiResult<PageInfo<TLensGoodsVO>> lensReceiptList(@RequestBody TLensGoodsQuery query) { + return ApiResult.success(lensGoodsService.lensReceiptList(query)); + } /** * 出入库单列表 */ @@ -78,11 +132,38 @@ /** * 库存明细记录列表 */ - @ApiOperation(value = "镜片库存明细记录列表") + @ApiOperation(value = "镜片库存明细记录列表--库存详情") @PostMapping(value = "/detailLensList") - public ApiResult<PageInfo<TLensWarehousingDetailVO>> detailLensList(@RequestBody TWarehousingDetailLensQuery query) { - PageInfo<TLensWarehousingDetailVO> frameWarehousingDetailVOPageInfo = warehousingService.detailListLens(query); - return ApiResult.success(frameWarehousingDetailVOPageInfo); + public ApiResult<TLensGoodsDetailVO> detailLensList(Integer id) { + TLensGoodsDetailVO tLensGoodsDetailVO = new TLensGoodsDetailVO(); + TLensGoods byId = lensGoodsService.getById(id); + TStore byId1 = storeService.getById(byId.getStoreId()); + if (byId1!=null){ + tLensGoodsDetailVO.setStoreName(byId1.getName()); + } + TLensSeries byId2 = lensSeriesService.getById(byId.getSeriesId()); + if (byId2!=null){ + Integer brandId = byId2.getBrandId(); + TBrand byId3 = brandService.getById(brandId); + String t1 = ""; + switch (byId.getLensType()){ + case 1: + t1="球面"; + break; + case 2: + t1="非球面"; + break; + case 3: + t1="双非"; + break; + } + tLensGoodsDetailVO.setTitle(byId3.getName()+byId2.getName()+t1+" "+byId.getRefractiveIndex()); + } + // 查询这个商品的库存明细 + List<TLensWarehousingDetail> list = lensWarehousingDetailService.lambdaQuery().eq(TLensWarehousingDetail::getSeriesId, byId.getSeriesId()) + .eq(TLensWarehousingDetail::getRefractiveIndex, byId.getRefractiveIndex()).list(); + tLensGoodsDetailVO.setList(list); + return ApiResult.success(tLensGoodsDetailVO); } /** @@ -90,7 +171,7 @@ */ @ApiOperation(value = "添加镜架出库,入库,作废,退货") @PostMapping(value = "/outBound") - public ApiResult<Integer> outBound(@Validated @RequestBody TWarehousingDTO dto) { + public ApiResult outBound(@Validated @RequestBody TWarehousingDTO dto) { // 获取当前用户 String username = JwtTokenUtils.getUsername(); dto.setCreateBy(username); @@ -104,7 +185,48 @@ detail.setWarehousingId(dto.getId()); detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn()); }); + if (dto.getStatus()==1||dto.getStatus()==3){ + List<TFrameGoods> list1 = new ArrayList<>(); + for (TFrameWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) { + TFrameGoods one = frameGoodsService.lambdaQuery().eq(TFrameGoods::getModelId, frameWarehousingDetail.getModelId()) + .eq(TFrameGoods::getColor, frameWarehousingDetail.getColor()).one(); + if (one!=null){ + if (one.getTotal()-frameWarehousingDetail.getTotal()<0){ + return ApiResult.failed("库存不足"); + } + // 增加对应库存 + one.setTotal(one.getTotal()-frameWarehousingDetail.getTotal()); + list1.add(one); + } + } + if (!list1.isEmpty())frameGoodsService.updateBatchById(list1); + } frameWarehousingDetailService.saveBatch(frameWarehousingDetails); + + if (dto.getStatus()==2 || dto.getStatus()==4){ + List<TFrameGoods> list1 = new ArrayList<>(); + List<TFrameGoods> list2 = new ArrayList<>(); + for (TFrameWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) { + TFrameGoods one = frameGoodsService.lambdaQuery().eq(TFrameGoods::getModelId, frameWarehousingDetail.getModelId()) + .eq(TFrameGoods::getColor, frameWarehousingDetail.getColor()).one(); + if (one!=null){ + // 增加对应库存 + one.setTotal(one.getTotal()+frameWarehousingDetail.getTotal()); + list1.add(one); + }else { + // 新增 + TFrameGoods tFrameGoods = new TFrameGoods(); + tFrameGoods.setColor(frameWarehousingDetail.getColor()); + tFrameGoods.setTotal(frameWarehousingDetail.getTotal()); + tFrameGoods.setModelId(frameWarehousingDetail.getModelId()); + tFrameGoods.setStoreId(dto.getStoreId()); + list2.add(tFrameGoods); + } + } + if (!list1.isEmpty())frameGoodsService.updateBatchById(list1); + if (!list2.isEmpty())frameGoodsService.saveBatch(list2); + } + return ApiResult.success(dto.getId()); } /** @@ -112,7 +234,7 @@ */ @ApiOperation(value = "添加镜片出库,入库,作废,退货") @PostMapping(value = "/outBoundLens") - public ApiResult<String> outBoundLens(@Validated @RequestBody TWarehousingLensDTO dto) { + public ApiResult outBoundLens(@Validated @RequestBody TWarehousingLensDTO dto) { // 获取当前用户 String username = JwtTokenUtils.getUsername(); dto.setCreateBy(username); @@ -125,8 +247,60 @@ detail.setWarehousingId(dto.getId()); detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn()); }); + if (dto.getStatus()==1||dto.getStatus()==3){ + List<TLensGoods> list1 = new ArrayList<>(); + for (TLensWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) { + TLensGoods one = lensGoodsService.lambdaQuery().eq(TLensGoods::getSeriesId, frameWarehousingDetail.getSeriesId()) + .eq(TLensGoods::getRefractiveIndex, frameWarehousingDetail.getRefractiveIndex()) + .eq(TLensGoods::getLensType, frameWarehousingDetail.getType()) + .eq(TLensGoods::getBallMirror, frameWarehousingDetail.getBallMirror()) + .eq(TLensGoods::getColumnMirror, frameWarehousingDetail.getColumnMirror()) + .one(); + if (one!=null){ + if (one.getTotal()-frameWarehousingDetail.getTotal()<0){ + return ApiResult.failed("库存不足"); + } + // 减少对应库存 + one.setTotal(one.getTotal()-frameWarehousingDetail.getTotal()); + list1.add(one); + } + } + if (!list1.isEmpty())lensGoodsService.updateBatchById(list1); + } lensWarehousingDetailService.saveBatch(frameWarehousingDetails); - return ApiResult.success(); + + if (dto.getStatus()==2 || dto.getStatus()==4){ + List<TLensGoods> list1 = new ArrayList<>(); + List<TLensGoods> list2 = new ArrayList<>(); + for (TLensWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) { + TLensGoods one = lensGoodsService.lambdaQuery().eq(TLensGoods::getSeriesId, frameWarehousingDetail.getSeriesId()) + .eq(TLensGoods::getRefractiveIndex, frameWarehousingDetail.getRefractiveIndex()) + .eq(TLensGoods::getBallMirror, frameWarehousingDetail.getBallMirror()) + .eq(TLensGoods::getLensType, frameWarehousingDetail.getType()) + + .eq(TLensGoods::getColumnMirror, frameWarehousingDetail.getColumnMirror()) + .one(); + if (one!=null){ + // 增加对应库存 + one.setTotal(one.getTotal()+frameWarehousingDetail.getTotal()); + list1.add(one); + }else { + // 新增 + TLensGoods tFrameGoods = new TLensGoods(); + tFrameGoods.setLensType(frameWarehousingDetail.getType()); + tFrameGoods.setSeriesId(frameWarehousingDetail.getSeriesId()); + tFrameGoods.setBallMirror(frameWarehousingDetail.getBallMirror()); + tFrameGoods.setColumnMirror(frameWarehousingDetail.getColumnMirror()); + tFrameGoods.setRefractiveIndex(frameWarehousingDetail.getRefractiveIndex()); + tFrameGoods.setTotal(frameWarehousingDetail.getTotal()); + tFrameGoods.setStoreId(dto.getStoreId()); + list2.add(tFrameGoods); + } + } + if (!list1.isEmpty())lensGoodsService.updateBatchById(list1); + if (!list2.isEmpty())lensGoodsService.saveBatch(list2); + } + return ApiResult.success(dto.getId()); } /** diff --git a/manage/src/main/java/com/jilongda/manage/dto/FrameInventoryDTO.java b/manage/src/main/java/com/jilongda/manage/dto/FrameInventoryDTO.java new file mode 100644 index 0000000..ff1de09 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/dto/FrameInventoryDTO.java @@ -0,0 +1,20 @@ +package com.jilongda.manage.dto; + +import com.jilongda.manage.model.TInventory; +import com.jilongda.manage.model.TInventoryFrameDetail; +import com.jilongda.manage.model.TModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +@ApiModel(value = "镜架型号DTO") +public class FrameInventoryDTO extends TInventory { + + @ApiModelProperty(value = "镜架明细") + private List<TInventoryFrameDetail> list; + +} diff --git a/manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParam.java b/manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParam.java new file mode 100644 index 0000000..44e2873 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParam.java @@ -0,0 +1,23 @@ +package com.jilongda.manage.dto; + +import com.jilongda.manage.model.TModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +@ApiModel(value = "镜架查询当前库存DTO") +public class GetCurrentByParam { + @ApiModelProperty(value = "镜架型号名称") + private String model; + @ApiModelProperty(value = "色号") + private String color; + @ApiModelProperty(value = "品牌id") + private Integer brandId; + @ApiModelProperty(value = "材质id") + private Integer materialId; + +} diff --git a/manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParamLens.java b/manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParamLens.java new file mode 100644 index 0000000..dde83f5 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/dto/GetCurrentByParamLens.java @@ -0,0 +1,24 @@ +package com.jilongda.manage.dto; + +import com.jilongda.manage.model.TModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "镜片查询当前库存DTO") +public class GetCurrentByParamLens { + @ApiModelProperty(value = "系列id") + private Integer seriesId; + @ApiModelProperty(value = "1球2非球3双非") + private Integer lensType; + @ApiModelProperty(value = "品牌id") + private Integer brandId; + @ApiModelProperty(value = "折射率") + private String refractiveIndex; + @ApiModelProperty(value = "球镜") + private String ballMirror; + @ApiModelProperty(value = "柱镜") + private String columnMirror; + +} diff --git a/manage/src/main/java/com/jilongda/manage/mapper/TAppUserMapper.java b/manage/src/main/java/com/jilongda/manage/mapper/TAppUserMapper.java index 48912d1..5b9a2df 100644 --- a/manage/src/main/java/com/jilongda/manage/mapper/TAppUserMapper.java +++ b/manage/src/main/java/com/jilongda/manage/mapper/TAppUserMapper.java @@ -1,7 +1,13 @@ package com.jilongda.manage.mapper; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TAppUser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.vo.TAppUserVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +19,6 @@ */ public interface TAppUserMapper extends BaseMapper<TAppUser> { + List<TAppUserVO> pageList(@Param("query")TAppUserQuery query, @Param("pageInfo")PageInfo<TAppUserVO> pageInfo); + } diff --git a/manage/src/main/java/com/jilongda/manage/mapper/TCouponMapper.java b/manage/src/main/java/com/jilongda/manage/mapper/TCouponMapper.java index e8185ff..b5136e6 100644 --- a/manage/src/main/java/com/jilongda/manage/mapper/TCouponMapper.java +++ b/manage/src/main/java/com/jilongda/manage/mapper/TCouponMapper.java @@ -1,7 +1,15 @@ package com.jilongda.manage.mapper; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TCoupon; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.query.TCouponQuery; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TCouponVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +21,6 @@ */ public interface TCouponMapper extends BaseMapper<TCoupon> { + List<TCouponVO> pageList(@Param("query")TCouponQuery query,@Param("pageInfo") PageInfo<TCouponVO> pageInfo); + } diff --git a/manage/src/main/java/com/jilongda/manage/mapper/TCouponReceiveMapper.java b/manage/src/main/java/com/jilongda/manage/mapper/TCouponReceiveMapper.java index d4661fb..ba0e4db 100644 --- a/manage/src/main/java/com/jilongda/manage/mapper/TCouponReceiveMapper.java +++ b/manage/src/main/java/com/jilongda/manage/mapper/TCouponReceiveMapper.java @@ -1,7 +1,15 @@ package com.jilongda.manage.mapper; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TCouponReceive; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jilongda.manage.query.TAppUserCouponQuery; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.vo.TAppUserCouponVO; +import com.jilongda.manage.vo.TAppUserVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +21,7 @@ */ public interface TCouponReceiveMapper extends BaseMapper<TCouponReceive> { + List<TAppUserCouponVO> pageList(@Param("query")TAppUserCouponQuery query, @Param("pageInfo")PageInfo<TAppUserCouponVO> pageInfo); + + } diff --git a/manage/src/main/java/com/jilongda/manage/mapper/TFrameGoodsMapper.java b/manage/src/main/java/com/jilongda/manage/mapper/TFrameGoodsMapper.java new file mode 100644 index 0000000..8b530cb --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/mapper/TFrameGoodsMapper.java @@ -0,0 +1,29 @@ +package com.jilongda.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.query.TOptometryQuery; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TFrameGoodsVO; +import com.jilongda.manage.vo.TOptometryVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 用户表 Mapper 接口 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +public interface TFrameGoodsMapper extends BaseMapper<TFrameGoods> { + + + List<TFrameGoodsVO> lensReceiptList(@Param("query")TFrameGoodsQuery query, @Param("pageInfo")PageInfo<TFrameGoodsVO> pageInfo); +} diff --git a/manage/src/main/java/com/jilongda/manage/mapper/TInventoryMapper.java b/manage/src/main/java/com/jilongda/manage/mapper/TInventoryMapper.java index 6eec37f..c85a43a 100644 --- a/manage/src/main/java/com/jilongda/manage/mapper/TInventoryMapper.java +++ b/manage/src/main/java/com/jilongda/manage/mapper/TInventoryMapper.java @@ -1,7 +1,15 @@ package com.jilongda.manage.mapper; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TInventory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jilongda.manage.query.TInventoryQuery; +import com.jilongda.manage.query.TLensGoodsQuery; +import com.jilongda.manage.vo.TInventoryVO; +import com.jilongda.manage.vo.TLensGoodsVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +21,5 @@ */ public interface TInventoryMapper extends BaseMapper<TInventory> { + List<TInventoryVO> pageList(@Param("query")TInventoryQuery query, @Param("pageInfo")PageInfo<TInventoryVO> pageInfo); } diff --git a/manage/src/main/java/com/jilongda/manage/mapper/TLensGoodsMapper.java b/manage/src/main/java/com/jilongda/manage/mapper/TLensGoodsMapper.java new file mode 100644 index 0000000..e3e9175 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/mapper/TLensGoodsMapper.java @@ -0,0 +1,28 @@ +package com.jilongda.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.model.TLensGoods; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.query.TLensGoodsQuery; +import com.jilongda.manage.vo.TFrameGoodsVO; +import com.jilongda.manage.vo.TLensGoodsVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 用户表 Mapper 接口 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +public interface TLensGoodsMapper extends BaseMapper<TLensGoods> { + + + List<TLensGoodsVO> lensReceiptList(@Param("query")TLensGoodsQuery query, @Param("pageInfo")PageInfo<TLensGoodsVO> pageInfo); + +} diff --git a/manage/src/main/java/com/jilongda/manage/model/TAppUser.java b/manage/src/main/java/com/jilongda/manage/model/TAppUser.java index 01b5596..65575c2 100644 --- a/manage/src/main/java/com/jilongda/manage/model/TAppUser.java +++ b/manage/src/main/java/com/jilongda/manage/model/TAppUser.java @@ -55,10 +55,14 @@ @ApiModelProperty(value = "性别1男2女3保密") @TableField("gender") private Integer gender; + @ApiModelProperty(value = "状态 1=启用 0=禁用") + @TableField("status") + private Integer status; + @ApiModelProperty(value = "头像") + @TableField("avatar") + private String avatar; - @ApiModelProperty(value = "注册时间") - @TableField("registerTime") - private LocalDateTime registerTime; + } diff --git a/manage/src/main/java/com/jilongda/manage/model/TCoupon.java b/manage/src/main/java/com/jilongda/manage/model/TCoupon.java index d3296f8..80f4f3e 100644 --- a/manage/src/main/java/com/jilongda/manage/model/TCoupon.java +++ b/manage/src/main/java/com/jilongda/manage/model/TCoupon.java @@ -7,6 +7,7 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; +import java.util.List; import com.jilongda.common.pojo.BaseModel; import io.swagger.annotations.ApiModel; @@ -46,11 +47,11 @@ @TableField("amount") private BigDecimal amount; - @ApiModelProperty(value = "门店id 字段为null表示全部") + @ApiModelProperty(value = "门店id 空字符串表示不限门店") @TableField("storeId") - private Integer storeId; + private String storeId; - @ApiModelProperty(value = "有效期(天)最高365") + @ApiModelProperty(value = " 有效期(天)最高365 0表示无期限") @TableField("time") private Integer time; @@ -62,5 +63,7 @@ @TableField("grantStatus") private Integer grantStatus; - + @ApiModelProperty(value = "指定发放时传 用户id集合") + @TableField(exist = false) + private List<Integer> userIds; } diff --git a/manage/src/main/java/com/jilongda/manage/model/TCouponReceive.java b/manage/src/main/java/com/jilongda/manage/model/TCouponReceive.java index 8cbcd7f..3355c0c 100644 --- a/manage/src/main/java/com/jilongda/manage/model/TCouponReceive.java +++ b/manage/src/main/java/com/jilongda/manage/model/TCouponReceive.java @@ -52,11 +52,14 @@ @ApiModelProperty(value = "门店id 字段为null表示全部") @TableField("storeId") - private Integer storeId; + private String storeId; @ApiModelProperty(value = "有效期截止日期") @TableField("endTime") private LocalDateTime endTime; + @ApiModelProperty(value = "使用时间") + @TableField("useTime") + private LocalDateTime useTime; @ApiModelProperty(value = "优惠条件金额 为0则表示通用券") @TableField("amountCondition") diff --git a/manage/src/main/java/com/jilongda/manage/model/TFrameGoods.java b/manage/src/main/java/com/jilongda/manage/model/TFrameGoods.java new file mode 100644 index 0000000..7f7f2d6 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/model/TFrameGoods.java @@ -0,0 +1,45 @@ +package com.jilongda.manage.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.jilongda.common.pojo.BaseModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * 用户表 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_frame_goods") +@ApiModel(value="TFrameGoods对象", description="用户表") +public class TFrameGoods extends BaseModel { + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "主键id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + @ApiModelProperty(value = "色号") + @TableField("color") + private String color; + @ApiModelProperty(value = "库存") + @TableField("total") + private Integer total; + @ApiModelProperty(value = "型号id") + @TableField("modelId") + private Integer modelId; + @ApiModelProperty(value = "门店id") + @TableField("storeId") + private Integer storeId; + @ApiModelProperty(value = "1启用2禁用") + @TableField("status") + private Integer status; +} diff --git a/manage/src/main/java/com/jilongda/manage/model/TInventory.java b/manage/src/main/java/com/jilongda/manage/model/TInventory.java index 214eeae..7c5af5c 100644 --- a/manage/src/main/java/com/jilongda/manage/model/TInventory.java +++ b/manage/src/main/java/com/jilongda/manage/model/TInventory.java @@ -33,7 +33,7 @@ @TableId(value = "id", type = IdType.AUTO) private Integer id; - @ApiModelProperty(value = "1型号2品牌3材质4球/柱镜5折射率6系列") + @ApiModelProperty(value = "盘点类型1型号2品牌3材质4球/柱镜5折射率6系列") @TableField("status") private Integer status; diff --git a/manage/src/main/java/com/jilongda/manage/model/TInventoryFrameDetail.java b/manage/src/main/java/com/jilongda/manage/model/TInventoryFrameDetail.java index 2235f9d..2830b4d 100644 --- a/manage/src/main/java/com/jilongda/manage/model/TInventoryFrameDetail.java +++ b/manage/src/main/java/com/jilongda/manage/model/TInventoryFrameDetail.java @@ -33,7 +33,7 @@ @TableId(value = "id", type = IdType.AUTO) private Integer id; - @ApiModelProperty(value = "盘点表id") + @ApiModelProperty(value = "盘点表id 前端忽略") @TableField("inventoryId") private Integer inventoryId; diff --git a/manage/src/main/java/com/jilongda/manage/model/TLensGoods.java b/manage/src/main/java/com/jilongda/manage/model/TLensGoods.java new file mode 100644 index 0000000..cd1c5a8 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/model/TLensGoods.java @@ -0,0 +1,55 @@ +package com.jilongda.manage.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.jilongda.common.pojo.BaseModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * 用户表 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_lens_goods") +@ApiModel(value="TLensGoods对象", description="用户表") +public class TLensGoods extends BaseModel { + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "主键id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + @ApiModelProperty(value = "系列id") + @TableField("seriesId") + private Integer seriesId; + @ApiModelProperty(value = "球镜") + @TableField("ballMirror") + private String ballMirror; + @ApiModelProperty(value = "柱镜") + @TableField("columnMirror") + private String columnMirror; + @ApiModelProperty(value = "折射率") + @TableField("refractiveIndex") + private String refractiveIndex; + @ApiModelProperty(value = "库存") + @TableField("total") + private Integer total; + @ApiModelProperty(value = "门店id") + @TableField("storeId") + private Integer storeId; + @ApiModelProperty(value = "1启用2禁用") + @TableField("status") + private Integer status; + @ApiModelProperty(value = "1球2非球3双非") + @TableField("lensType") + private Integer lensType; + +} diff --git a/manage/src/main/java/com/jilongda/manage/query/TAppUserCouponQuery.java b/manage/src/main/java/com/jilongda/manage/query/TAppUserCouponQuery.java new file mode 100644 index 0000000..6e8efa3 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/query/TAppUserCouponQuery.java @@ -0,0 +1,20 @@ +package com.jilongda.manage.query; + +import com.jilongda.common.pojo.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; +import lombok.Data; + +@Data +@ApiModel(value = "用户详情-查看优惠券") +public class TAppUserCouponQuery extends BasePage { + + @ApiModelProperty(value = "用户id") + private Integer id; + + + + + +} diff --git a/manage/src/main/java/com/jilongda/manage/query/TAppUserQuery.java b/manage/src/main/java/com/jilongda/manage/query/TAppUserQuery.java new file mode 100644 index 0000000..8c05187 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/query/TAppUserQuery.java @@ -0,0 +1,27 @@ +package com.jilongda.manage.query; + +import com.jilongda.common.pojo.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "用户管理查询条件") +public class TAppUserQuery extends BasePage { + + @ApiModelProperty(value = "微信昵称") + private String name; + + @ApiModelProperty(value = "手机号") + private String phone; + @ApiModelProperty(value = "姓名") + private String realName; + + @ApiModelProperty(value = "注册起始时间 例:2022-11-11") + private String startTime; + @ApiModelProperty(value = "注册结束时间 例:2022-11-11") + private String endTime; + + + +} diff --git a/manage/src/main/java/com/jilongda/manage/query/TCouponQuery.java b/manage/src/main/java/com/jilongda/manage/query/TCouponQuery.java new file mode 100644 index 0000000..c7d924b --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/query/TCouponQuery.java @@ -0,0 +1,17 @@ +package com.jilongda.manage.query; + +import com.jilongda.common.pojo.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "用户管理查询条件") +public class TCouponQuery extends BasePage { + @ApiModelProperty(value = "优惠券名称") + private String name; + @ApiModelProperty(value = "发放方式 发放方式 1注册发放 2全局发放 3指定发放 4扫码发放") + private String type; + @ApiModelProperty(value = "发放状态1发放中 2暂停发放 只有发放方式为1和4的时候存储") + private String grantStatus; +} diff --git a/manage/src/main/java/com/jilongda/manage/query/TFrameGoodsQuery.java b/manage/src/main/java/com/jilongda/manage/query/TFrameGoodsQuery.java new file mode 100644 index 0000000..78df898 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/query/TFrameGoodsQuery.java @@ -0,0 +1,34 @@ +package com.jilongda.manage.query; + +import com.jilongda.common.dto.TimeRangePageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "镜架库存Query") +public class TFrameGoodsQuery extends TimeRangePageDTO { + + @ApiModelProperty(value = "品牌id") + private String brandId; + + @ApiModelProperty(value = "供应商") + private String supplierId; + + @ApiModelProperty(value = "色号") + private String color; + @ApiModelProperty(value = "店铺id") + private Integer storeId; + @ApiModelProperty(value = "镜架型号") + private String model; + @ApiModelProperty(value = "材质id") + private String materialId; + @ApiModelProperty(value = "状态1启用 2禁用") + private Integer status; + @ApiModelProperty(value = "是否低库存 1是2否") + private Integer isWarning; + @ApiModelProperty(value = "库存起始数量") + private Integer startCount; + @ApiModelProperty(value = "库存结束数量") + private Integer endCount; +} diff --git a/manage/src/main/java/com/jilongda/manage/query/TInventoryQuery.java b/manage/src/main/java/com/jilongda/manage/query/TInventoryQuery.java new file mode 100644 index 0000000..cc6879c --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/query/TInventoryQuery.java @@ -0,0 +1,23 @@ +package com.jilongda.manage.query; + +import com.jilongda.common.dto.TimeRangePageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "盘点Query") +public class TInventoryQuery extends TimeRangePageDTO { + @ApiModelProperty(value = "盘点品类 1镜架2镜片") + private Integer type; + @ApiModelProperty(value = "盘点类型 1型号2品牌3材质4球/柱镜5折射率6系列 123属于镜架 456属于镜片") + private Integer status; + @ApiModelProperty(value = "店铺id") + private Integer storeId; + @ApiModelProperty(value = "操作人") + private String createBy; + @ApiModelProperty(value = "盘点日期起始时间2022-11-11") + private String startTime; + @ApiModelProperty(value = "盘点日期结束时间2023-11-11") + private String endTime; +} diff --git a/manage/src/main/java/com/jilongda/manage/query/TLensGoodsQuery.java b/manage/src/main/java/com/jilongda/manage/query/TLensGoodsQuery.java new file mode 100644 index 0000000..b72a94d --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/query/TLensGoodsQuery.java @@ -0,0 +1,28 @@ +package com.jilongda.manage.query; + +import com.jilongda.common.dto.TimeRangePageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "镜片库存Query") +public class TLensGoodsQuery extends TimeRangePageDTO { + @ApiModelProperty(value = "品牌id") + private String brandId; + @ApiModelProperty(value = "系列id") + private String seriesId; + @ApiModelProperty(value = "1球2非球3双非") + private Integer lensType; + @ApiModelProperty(value = "店铺id") + private Integer storeId; + @ApiModelProperty(value = "折射率") + private String refractiveIndex; + @ApiModelProperty(value = "库存类型 1库存 2非库存") + private Integer type; + @ApiModelProperty(value = "状态1启用 2禁用") + private Integer status; + @ApiModelProperty(value = "是否低库存 1是2否") + private Integer isWarning; + +} diff --git a/manage/src/main/java/com/jilongda/manage/query/TOptometryQuery.java b/manage/src/main/java/com/jilongda/manage/query/TOptometryQuery.java index c1d7998..0ee3fff 100644 --- a/manage/src/main/java/com/jilongda/manage/query/TOptometryQuery.java +++ b/manage/src/main/java/com/jilongda/manage/query/TOptometryQuery.java @@ -21,6 +21,8 @@ private Integer storeId; @ApiModelProperty(value = "验光师id") private Integer optometristId; + @ApiModelProperty(value = "用户id") + private Integer userId; @ApiModelProperty(value = "开始时间 前端忽略") private String startTime; @ApiModelProperty(value = "结束时间 前端忽略") diff --git a/manage/src/main/java/com/jilongda/manage/service/TAppUserService.java b/manage/src/main/java/com/jilongda/manage/service/TAppUserService.java index d50c187..3d97a93 100644 --- a/manage/src/main/java/com/jilongda/manage/service/TAppUserService.java +++ b/manage/src/main/java/com/jilongda/manage/service/TAppUserService.java @@ -1,7 +1,10 @@ package com.jilongda.manage.service; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TAppUser; import com.baomidou.mybatisplus.extension.service.IService; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.vo.TAppUserVO; /** * <p> @@ -13,4 +16,5 @@ */ public interface TAppUserService extends IService<TAppUser> { + PageInfo<TAppUserVO> pageList(TAppUserQuery query); } diff --git a/manage/src/main/java/com/jilongda/manage/service/TCouponReceiveService.java b/manage/src/main/java/com/jilongda/manage/service/TCouponReceiveService.java index 34a6f7d..84c3c0b 100644 --- a/manage/src/main/java/com/jilongda/manage/service/TCouponReceiveService.java +++ b/manage/src/main/java/com/jilongda/manage/service/TCouponReceiveService.java @@ -1,7 +1,10 @@ package com.jilongda.manage.service; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TCouponReceive; import com.baomidou.mybatisplus.extension.service.IService; +import com.jilongda.manage.query.TAppUserCouponQuery; +import com.jilongda.manage.vo.TAppUserCouponVO; /** * <p> @@ -13,4 +16,6 @@ */ public interface TCouponReceiveService extends IService<TCouponReceive> { + PageInfo<TAppUserCouponVO> pageList(TAppUserCouponQuery query); + } diff --git a/manage/src/main/java/com/jilongda/manage/service/TCouponService.java b/manage/src/main/java/com/jilongda/manage/service/TCouponService.java index 0889bde..33232f6 100644 --- a/manage/src/main/java/com/jilongda/manage/service/TCouponService.java +++ b/manage/src/main/java/com/jilongda/manage/service/TCouponService.java @@ -1,7 +1,10 @@ package com.jilongda.manage.service; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TCoupon; import com.baomidou.mybatisplus.extension.service.IService; +import com.jilongda.manage.query.TCouponQuery; +import com.jilongda.manage.vo.TCouponVO; /** * <p> @@ -13,4 +16,5 @@ */ public interface TCouponService extends IService<TCoupon> { + PageInfo<TCouponVO> pageList(TCouponQuery query); } diff --git a/manage/src/main/java/com/jilongda/manage/service/TFrameGoodsService.java b/manage/src/main/java/com/jilongda/manage/service/TFrameGoodsService.java new file mode 100644 index 0000000..193bd30 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/service/TFrameGoodsService.java @@ -0,0 +1,24 @@ +package com.jilongda.manage.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TFrameGoodsVO; + +/** + * <p> + * 用户表 服务类 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +public interface TFrameGoodsService extends IService<TFrameGoods> { + + PageInfo<TFrameGoodsVO> lensReceiptList(TFrameGoodsQuery query); + +} diff --git a/manage/src/main/java/com/jilongda/manage/service/TInventoryService.java b/manage/src/main/java/com/jilongda/manage/service/TInventoryService.java index 0dd5892..35e9501 100644 --- a/manage/src/main/java/com/jilongda/manage/service/TInventoryService.java +++ b/manage/src/main/java/com/jilongda/manage/service/TInventoryService.java @@ -1,7 +1,10 @@ package com.jilongda.manage.service; +import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TInventory; import com.baomidou.mybatisplus.extension.service.IService; +import com.jilongda.manage.query.TInventoryQuery; +import com.jilongda.manage.vo.TInventoryVO; /** * <p> @@ -13,4 +16,6 @@ */ public interface TInventoryService extends IService<TInventory> { + PageInfo<TInventoryVO> pageList(TInventoryQuery query); + } diff --git a/manage/src/main/java/com/jilongda/manage/service/TLensGoodsService.java b/manage/src/main/java/com/jilongda/manage/service/TLensGoodsService.java new file mode 100644 index 0000000..a812734 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/service/TLensGoodsService.java @@ -0,0 +1,23 @@ +package com.jilongda.manage.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.model.TLensGoods; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.query.TLensGoodsQuery; +import com.jilongda.manage.vo.TLensGoodsVO; + +/** + * <p> + * 用户表 服务类 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +public interface TLensGoodsService extends IService<TLensGoods> { + + PageInfo<TLensGoodsVO> lensReceiptList(TLensGoodsQuery query); + +} diff --git a/manage/src/main/java/com/jilongda/manage/service/impl/TAppUserServiceImpl.java b/manage/src/main/java/com/jilongda/manage/service/impl/TAppUserServiceImpl.java index 8f27bda..e99cc85 100644 --- a/manage/src/main/java/com/jilongda/manage/service/impl/TAppUserServiceImpl.java +++ b/manage/src/main/java/com/jilongda/manage/service/impl/TAppUserServiceImpl.java @@ -1,10 +1,20 @@ package com.jilongda.manage.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.mapper.TOrderMapper; import com.jilongda.manage.model.TAppUser; import com.jilongda.manage.mapper.TAppUserMapper; +import com.jilongda.manage.model.TOrder; +import com.jilongda.manage.query.TAppUserQuery; import com.jilongda.manage.service.TAppUserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TOptometryVO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +27,18 @@ @Service public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService { + @Autowired + private TOrderMapper orderMapper; + @Override + public PageInfo<TAppUserVO> pageList(TAppUserQuery query) { + PageInfo<TAppUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TAppUserVO> list = this.baseMapper.pageList(query,pageInfo); + for (TAppUserVO tAppUserVO : list) { + Long l = orderMapper.selectCount(new LambdaQueryWrapper<TOrder>() + .eq(TOrder::getUserId, tAppUserVO.getId())); + tAppUserVO.setSalesCount(l.intValue()); + } + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/manage/src/main/java/com/jilongda/manage/service/impl/TCouponReceiveServiceImpl.java b/manage/src/main/java/com/jilongda/manage/service/impl/TCouponReceiveServiceImpl.java index b41fded..4de7cc0 100644 --- a/manage/src/main/java/com/jilongda/manage/service/impl/TCouponReceiveServiceImpl.java +++ b/manage/src/main/java/com/jilongda/manage/service/impl/TCouponReceiveServiceImpl.java @@ -1,10 +1,25 @@ package com.jilongda.manage.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.mapper.TCouponMapper; +import com.jilongda.manage.mapper.TStoreMapper; import com.jilongda.manage.model.TCouponReceive; import com.jilongda.manage.mapper.TCouponReceiveMapper; +import com.jilongda.manage.model.TStore; +import com.jilongda.manage.query.TAppUserCouponQuery; import com.jilongda.manage.service.TCouponReceiveService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jilongda.manage.service.TCouponService; +import com.jilongda.manage.service.TStoreService; +import com.jilongda.manage.vo.TAppUserCouponVO; +import com.jilongda.manage.vo.TStoreVO; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * <p> @@ -17,4 +32,30 @@ @Service public class TCouponReceiveServiceImpl extends ServiceImpl<TCouponReceiveMapper, TCouponReceive> implements TCouponReceiveService { + @Resource + private TCouponMapper couponMapper; + @Resource + private TStoreMapper storeMapper; + @Resource + private TCouponReceiveMapper couponReceiveMapper; + @Override + public PageInfo<TAppUserCouponVO> pageList(TAppUserCouponQuery query) { + PageInfo<TAppUserCouponVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TAppUserCouponVO> list = couponReceiveMapper.pageList(query,pageInfo); + for (TAppUserCouponVO tAppUserCouponVO : list) { + StringBuilder stringBuilder = new StringBuilder(); + if (StringUtils.hasLength(tAppUserCouponVO.getStoreId())) { + List<TStore> tStores = storeMapper.selectList(new LambdaQueryWrapper<TStore>() + .in(TStore::getId, Arrays.asList(tAppUserCouponVO.getStoreId().split(",")))); + for (TStore tStoreVO : tStores) { + stringBuilder.append(tStoreVO.getName()).append(","); + } + tAppUserCouponVO.setStoreName(stringBuilder.substring(0, stringBuilder.length() - 1)); + } else { + tAppUserCouponVO.setStoreName("不限"); + } + } + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/manage/src/main/java/com/jilongda/manage/service/impl/TCouponServiceImpl.java b/manage/src/main/java/com/jilongda/manage/service/impl/TCouponServiceImpl.java index c4e2be2..551cb1b 100644 --- a/manage/src/main/java/com/jilongda/manage/service/impl/TCouponServiceImpl.java +++ b/manage/src/main/java/com/jilongda/manage/service/impl/TCouponServiceImpl.java @@ -1,10 +1,26 @@ package com.jilongda.manage.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.mapper.TCouponReceiveMapper; +import com.jilongda.manage.mapper.TStoreMapper; import com.jilongda.manage.model.TCoupon; import com.jilongda.manage.mapper.TCouponMapper; +import com.jilongda.manage.model.TCouponReceive; +import com.jilongda.manage.model.TOrder; +import com.jilongda.manage.model.TStore; +import com.jilongda.manage.query.TCouponQuery; import com.jilongda.manage.service.TCouponService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TCouponVO; +import org.apache.ibatis.annotations.ResultType; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * <p> @@ -17,4 +33,38 @@ @Service public class TCouponServiceImpl extends ServiceImpl<TCouponMapper, TCoupon> implements TCouponService { + @Resource + private TStoreMapper storeMapper; + @Resource + private TCouponReceiveMapper couponReceiveMapper; + @Override + public PageInfo<TCouponVO> pageList(TCouponQuery query) { + PageInfo<TCouponVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TCouponVO> list = this.baseMapper.pageList(query,pageInfo); + StringBuilder stringBuilder = new StringBuilder(); + for (TCouponVO tAppUserCouponVO : list) { + if (StringUtils.hasLength(tAppUserCouponVO.getStoreId())) { + List<TStore> tStores = storeMapper.selectList(new LambdaQueryWrapper<TStore>() + .in(TStore::getId, Arrays.asList(tAppUserCouponVO.getStoreId().split(",")))); + for (TStore tStoreVO : tStores) { + stringBuilder.append(tStoreVO.getName()).append(","); + } + tAppUserCouponVO.setStoreName(stringBuilder.substring(0, stringBuilder.length() - 1)); + } else { + tAppUserCouponVO.setStoreName("不限"); + } + // 查询发放数量和使用数量 + int size = couponReceiveMapper.selectList(new LambdaQueryWrapper<TCouponReceive>() + .eq(TCouponReceive::getCouponId, tAppUserCouponVO.getId())).size(); + tAppUserCouponVO.setGrantCout(size); + int size1 = couponReceiveMapper.selectList(new LambdaQueryWrapper<TCouponReceive>() + .eq(TCouponReceive::getCouponId, tAppUserCouponVO.getId()) + .eq(TCouponReceive::getStatus, 2)).size(); + tAppUserCouponVO.setUseCount(size1); + } + + pageInfo.setRecords(list); + return pageInfo; + + } } diff --git a/manage/src/main/java/com/jilongda/manage/service/impl/TFrameGoodsServiceImpl.java b/manage/src/main/java/com/jilongda/manage/service/impl/TFrameGoodsServiceImpl.java new file mode 100644 index 0000000..e9c8022 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/service/impl/TFrameGoodsServiceImpl.java @@ -0,0 +1,54 @@ +package com.jilongda.manage.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.mapper.SecSettingMapper; +import com.jilongda.manage.mapper.TAppUserMapper; +import com.jilongda.manage.mapper.TFrameGoodsMapper; +import com.jilongda.manage.mapper.TOrderMapper; +import com.jilongda.manage.model.SecSetting; +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.model.TOrder; +import com.jilongda.manage.query.TAppUserQuery; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.service.TAppUserService; +import com.jilongda.manage.service.TFrameGoodsService; +import com.jilongda.manage.vo.TAppUserVO; +import com.jilongda.manage.vo.TFrameGoodsVO; +import com.jilongda.manage.vo.TOptometryVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * <p> + * 用户表 服务实现类 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +@Service +public class TFrameGoodsServiceImpl extends ServiceImpl<TFrameGoodsMapper, TFrameGoods> implements TFrameGoodsService { + + + @Resource + private SecSettingMapper secSettingMapper; + @Override + public PageInfo<TFrameGoodsVO> lensReceiptList(TFrameGoodsQuery query) { + PageInfo<TFrameGoodsVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TFrameGoodsVO> list = this.baseMapper.lensReceiptList(query,pageInfo); + SecSetting secSetting = secSettingMapper.selectOne(null); + for (TFrameGoodsVO tFrameGoodsVO : list) { + if (tFrameGoodsVO.getTotal()<secSetting.getFrameThreshold()){ + tFrameGoodsVO.setIsWarning(1); + } + } + pageInfo.setRecords(list); + return pageInfo; + } +} diff --git a/manage/src/main/java/com/jilongda/manage/service/impl/TInventoryServiceImpl.java b/manage/src/main/java/com/jilongda/manage/service/impl/TInventoryServiceImpl.java index b1036d2..2814f7f 100644 --- a/manage/src/main/java/com/jilongda/manage/service/impl/TInventoryServiceImpl.java +++ b/manage/src/main/java/com/jilongda/manage/service/impl/TInventoryServiceImpl.java @@ -1,10 +1,17 @@ package com.jilongda.manage.service.impl; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.model.SecSetting; import com.jilongda.manage.model.TInventory; import com.jilongda.manage.mapper.TInventoryMapper; +import com.jilongda.manage.query.TInventoryQuery; import com.jilongda.manage.service.TInventoryService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jilongda.manage.vo.TInventoryVO; +import com.jilongda.manage.vo.TLensGoodsVO; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +24,11 @@ @Service public class TInventoryServiceImpl extends ServiceImpl<TInventoryMapper, TInventory> implements TInventoryService { + @Override + public PageInfo<TInventoryVO> pageList(TInventoryQuery query) { + PageInfo<TInventoryVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TInventoryVO> list = this.baseMapper.pageList(query, pageInfo); + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/manage/src/main/java/com/jilongda/manage/service/impl/TLensGoodsServiceImpl.java b/manage/src/main/java/com/jilongda/manage/service/impl/TLensGoodsServiceImpl.java new file mode 100644 index 0000000..a790454 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/service/impl/TLensGoodsServiceImpl.java @@ -0,0 +1,49 @@ +package com.jilongda.manage.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.mapper.SecSettingMapper; +import com.jilongda.manage.mapper.TFrameGoodsMapper; +import com.jilongda.manage.mapper.TLensGoodsMapper; +import com.jilongda.manage.model.SecSetting; +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.model.TLensGoods; +import com.jilongda.manage.query.TFrameGoodsQuery; +import com.jilongda.manage.query.TLensGoodsQuery; +import com.jilongda.manage.service.TFrameGoodsService; +import com.jilongda.manage.service.TLensGoodsService; +import com.jilongda.manage.vo.TFrameGoodsVO; +import com.jilongda.manage.vo.TLensGoodsVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * <p> + * 用户表 服务实现类 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +@Service +public class TLensGoodsServiceImpl extends ServiceImpl<TLensGoodsMapper, TLensGoods> implements TLensGoodsService { + + + @Resource + private SecSettingMapper secSettingMapper; + @Override + public PageInfo<TLensGoodsVO> lensReceiptList(TLensGoodsQuery query) { + PageInfo<TLensGoodsVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TLensGoodsVO> list = this.baseMapper.lensReceiptList(query, pageInfo); + SecSetting secSetting = secSettingMapper.selectOne(null); + for (TLensGoodsVO tFrameGoodsVO : list) { + if (tFrameGoodsVO.getTotal() < secSetting.getLensThreshold()) { + tFrameGoodsVO.setIsWarning(1); + } + } + pageInfo.setRecords(list); + return pageInfo; + } +} diff --git a/manage/src/main/java/com/jilongda/manage/service/impl/TLensSeriesServiceImpl.java b/manage/src/main/java/com/jilongda/manage/service/impl/TLensSeriesServiceImpl.java index 2f72a63..0b25a2b 100644 --- a/manage/src/main/java/com/jilongda/manage/service/impl/TLensSeriesServiceImpl.java +++ b/manage/src/main/java/com/jilongda/manage/service/impl/TLensSeriesServiceImpl.java @@ -1,8 +1,10 @@ package com.jilongda.manage.service.impl; import com.jilongda.common.basic.PageInfo; +import com.jilongda.manage.mapper.TSupplierMapper; import com.jilongda.manage.model.TLensSeries; import com.jilongda.manage.mapper.TLensSeriesMapper; +import com.jilongda.manage.model.TSupplier; import com.jilongda.manage.query.TLensSeriesQuery; import com.jilongda.manage.service.TLensSeriesService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,6 +12,7 @@ import com.jilongda.manage.vo.TOptometristVO; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; /** @@ -23,10 +26,16 @@ @Service public class TLensSeriesServiceImpl extends ServiceImpl<TLensSeriesMapper, TLensSeries> implements TLensSeriesService { + @Resource + private TSupplierMapper supplierMapper; @Override public PageInfo<TLensSeriesVO> pageList(TLensSeriesQuery query) { PageInfo<TLensSeriesVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TLensSeriesVO> list = this.baseMapper.pageList(query,pageInfo); + for (TLensSeriesVO tLensSeriesVO : list) { + TSupplier tSupplier = supplierMapper.selectById(tLensSeriesVO.getSupplierId()); + if (tSupplier!=null)tLensSeriesVO.setSupplier(tSupplier.getName()); + } pageInfo.setRecords(list); return pageInfo; } diff --git a/manage/src/main/java/com/jilongda/manage/utils/QRCodeUtil.java b/manage/src/main/java/com/jilongda/manage/utils/QRCodeUtil.java new file mode 100644 index 0000000..f974d39 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/utils/QRCodeUtil.java @@ -0,0 +1,50 @@ +package com.jilongda.manage.utils; + +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.MultiFormatWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; + +import java.awt.image.BufferedImage; +import java.util.Hashtable; + +/** + * @author chengst + * @date 2019/11/4 + **/ +public class QRCodeUtil { + + private final static String CHARSET = "utf-8"; + + private final static int QRSIZEE = 300; + + // 二维码颜色 + private static final int BLACK = 0xFF000000; + // 二维码颜色 + private static final int WHITE = 0xFFFFFFFF; + + public static BufferedImage createImage(String content){ + Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); + hints.put(EncodeHintType.CHARACTER_SET, CHARSET); + hints.put(EncodeHintType.MARGIN, 1); + BitMatrix bitMatrix = null; + try { + bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRSIZEE, QRSIZEE,hints); + }catch (Exception e){ + e.printStackTrace(); + } + int width = bitMatrix.getWidth(); + int height = bitMatrix.getHeight(); + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE); + } + } + return image; + } +} + diff --git a/manage/src/main/java/com/jilongda/manage/vo/TAppUserCouponVO.java b/manage/src/main/java/com/jilongda/manage/vo/TAppUserCouponVO.java new file mode 100644 index 0000000..472190b --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TAppUserCouponVO.java @@ -0,0 +1,23 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TCouponReceive; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "用户VO") +public class TAppUserCouponVO extends TCouponReceive { + + @ApiModelProperty(value = "优惠券名称") + private String couponName; + @ApiModelProperty(value = "门店名称") + private String storeName; + + + +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TAppUserVO.java b/manage/src/main/java/com/jilongda/manage/vo/TAppUserVO.java new file mode 100644 index 0000000..c2b5236 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TAppUserVO.java @@ -0,0 +1,28 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TOptometrist; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "用户VO") +public class TAppUserVO extends TAppUser { + + @ApiModelProperty(value = "消费次数") + private Integer salesCount; + @ApiModelProperty(value = "验光次数") + private Integer optometryCount; + @ApiModelProperty(value = "最后消费时间") + private LocalDateTime salesTime; + @ApiModelProperty(value = "最后验光时间") + private LocalDateTime optometryTime; + @ApiModelProperty(value = "消费总金额") + private BigDecimal salesAmount; + + +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TCouponInfoVO.java b/manage/src/main/java/com/jilongda/manage/vo/TCouponInfoVO.java new file mode 100644 index 0000000..9d37dea --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TCouponInfoVO.java @@ -0,0 +1,21 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TCoupon; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "优惠券详情VO") +public class TCouponInfoVO extends TCoupon { + + @ApiModelProperty(value = "门店名称") + private String storeName; + @ApiModelProperty(value = "领取数量") + private Integer grantCout; + @ApiModelProperty(value = "使用数量") + private Integer useCount; + + + +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TCouponVO.java b/manage/src/main/java/com/jilongda/manage/vo/TCouponVO.java new file mode 100644 index 0000000..e5d9fe6 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TCouponVO.java @@ -0,0 +1,25 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TAppUser; +import com.jilongda.manage.model.TCoupon; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "优惠券VO") +public class TCouponVO extends TCoupon { + + @ApiModelProperty(value = "门店名称") + private String storeName; + @ApiModelProperty(value = "发放数量") + private Integer grantCout; + @ApiModelProperty(value = "使用数量") + private Integer useCount; + + + +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TFrameGoodsVO.java b/manage/src/main/java/com/jilongda/manage/vo/TFrameGoodsVO.java new file mode 100644 index 0000000..8b3eef0 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TFrameGoodsVO.java @@ -0,0 +1,33 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.model.TFrameWarehousingDetail; +import com.jilongda.manage.model.TWarehousing; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(value = "镜架库存VO") +public class TFrameGoodsVO extends TFrameGoods { + + @ApiModelProperty(value = "品牌名称") + private String brand; + @ApiModelProperty(value = "供应商名称") + private String supplier; + @ApiModelProperty(value = "材质名称") + private String material; + @ApiModelProperty(value = "型号名称") + private String model; + @ApiModelProperty(value = "单价/副") + private String sales; + @ApiModelProperty(value = "成本价/副") + private String cost; + @ApiModelProperty(value = "店铺名称") + private String store; + @ApiModelProperty(value = "是否低库存") + private Integer isWarning; + +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TInventoryInfoVO.java b/manage/src/main/java/com/jilongda/manage/vo/TInventoryInfoVO.java new file mode 100644 index 0000000..30e5424 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TInventoryInfoVO.java @@ -0,0 +1,21 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TInventory; +import com.jilongda.manage.model.TInventoryFrameDetail; +import com.jilongda.manage.model.TInventoryLensDetail; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(value = "盘点详情VO") +public class TInventoryInfoVO extends TInventory { + @ApiModelProperty(value = "店铺名称") + private String store; + @ApiModelProperty(value = "镜片盘点明细") + private List<TInventoryLensDetail> lensList; + @ApiModelProperty(value = "镜片盘点明细") + private List<TInventoryFrameDetail> frameList; +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TInventoryVO.java b/manage/src/main/java/com/jilongda/manage/vo/TInventoryVO.java new file mode 100644 index 0000000..8421b57 --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TInventoryVO.java @@ -0,0 +1,14 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.model.TInventory; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "盘点VO") +public class TInventoryVO extends TInventory { + @ApiModelProperty(value = "店铺名称") + private String store; +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TLensGoodsDetailVO.java b/manage/src/main/java/com/jilongda/manage/vo/TLensGoodsDetailVO.java new file mode 100644 index 0000000..85704fa --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TLensGoodsDetailVO.java @@ -0,0 +1,21 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TLensGoods; +import com.jilongda.manage.model.TLensWarehousingDetail; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(value = "镜片库存详情VO") +public class TLensGoodsDetailVO{ + @ApiModelProperty(value = "品牌名称+系列名称+球/飞球+折射率") + private String title; + @ApiModelProperty(value = "门店名称") + private String storeName; + @ApiModelProperty(value = "库存数据") + private List<TLensWarehousingDetail> list; + +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TLensGoodsVO.java b/manage/src/main/java/com/jilongda/manage/vo/TLensGoodsVO.java new file mode 100644 index 0000000..8d80a6f --- /dev/null +++ b/manage/src/main/java/com/jilongda/manage/vo/TLensGoodsVO.java @@ -0,0 +1,27 @@ +package com.jilongda.manage.vo; + +import com.jilongda.manage.model.TFrameGoods; +import com.jilongda.manage.model.TLensGoods; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "镜片库存VO") +public class TLensGoodsVO extends TLensGoods { + + @ApiModelProperty(value = "品牌名称") + private String brand; + @ApiModelProperty(value = "系列名称") + private String series; + @ApiModelProperty(value = "单价/片") + private String sale; + @ApiModelProperty(value = "成本/片") + private String cost; + + @ApiModelProperty(value = "库存类型 1库存 2非库存") + private Integer type; + @ApiModelProperty(value = "是否低库存") + private Integer isWarning; + +} diff --git a/manage/src/main/java/com/jilongda/manage/vo/TLensSeriesVO.java b/manage/src/main/java/com/jilongda/manage/vo/TLensSeriesVO.java index a2654fe..d81cd18 100644 --- a/manage/src/main/java/com/jilongda/manage/vo/TLensSeriesVO.java +++ b/manage/src/main/java/com/jilongda/manage/vo/TLensSeriesVO.java @@ -16,5 +16,7 @@ private String typeName; @ApiModelProperty(value = "折射率") private String refractiveIndex; + @ApiModelProperty(value = "供应商名称") + private String supplier; } diff --git a/manage/src/main/java/com/jilongda/manage/vo/TWarehousingLensVO.java b/manage/src/main/java/com/jilongda/manage/vo/TWarehousingLensVO.java index 208014c..42acded 100644 --- a/manage/src/main/java/com/jilongda/manage/vo/TWarehousingLensVO.java +++ b/manage/src/main/java/com/jilongda/manage/vo/TWarehousingLensVO.java @@ -10,11 +10,13 @@ import java.util.List; @Data -@ApiModel(value = "镜架/镜片出库入库VO") +@ApiModel(value = "镜片出库入库VO") public class TWarehousingLensVO extends TWarehousing { @ApiModelProperty(value = "出库/入库合计数量") private Integer totalNum=0; + @ApiModelProperty(value = "门店名称") + private String storeName; @ApiModelProperty(value = "出库/入库明细") private List<TLensWarehousingDetail> lensWarehousingDetails; diff --git a/manage/src/main/resources/mapping/TAppUserMapper.xml b/manage/src/main/resources/mapping/TAppUserMapper.xml index 0d5dd6b..fe615ff 100644 --- a/manage/src/main/resources/mapping/TAppUserMapper.xml +++ b/manage/src/main/resources/mapping/TAppUserMapper.xml @@ -22,5 +22,24 @@ <sql id="Base_Column_List"> id, name, phone, realName, age, gender, registerTime, createTime, updateTime, createBy, updateBy, isDelete </sql> + <select id="pageList" resultType="com.jilongda.manage.vo.TAppUserVO"> + select * from + t_app_user + where 1=1 + <if test="query.name != null and query.name != ''"> + and name like concat('%',#{query.name},'%') + </if> + <if test="query.phone != null and query.phone != ''"> + and phone like concat('%',#{query.phone},'%') + </if> + <if test="query.realName != null and query.realName != ''"> + and realName like concat('%',#{query.realName},'%') + </if> + <if test="query.startTime != null and query.startTime != ''"> + and (createTime between #{query.startTime} and #{query.endTime}) + </if> + and isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} + + </select> </mapper> diff --git a/manage/src/main/resources/mapping/TCouponMapper.xml b/manage/src/main/resources/mapping/TCouponMapper.xml index 65ca5d7..47faa83 100644 --- a/manage/src/main/resources/mapping/TCouponMapper.xml +++ b/manage/src/main/resources/mapping/TCouponMapper.xml @@ -23,5 +23,19 @@ <sql id="Base_Column_List"> id, name, type, amount, storeId, time, amountCondition, createTime, updateTime, createBy, updateBy, isDelete, grantStatus </sql> + <select id="pageList" resultType="com.jilongda.manage.vo.TCouponVO"> + select t1.* from + t_coupon t1 + where 1=1 + <if test="query.name != null and query.name != ''"> + and t1.name like concat('%',#{query.name},'%') + </if> + <if test="query.type != null and query.type != ''"> + and t1.type =#{query.type} + </if> + <if test="query.grantStatus != null and query.grantStatus != ''"> + and t1.grantStatus =#{query.grantStatus} + </if> + </select> </mapper> diff --git a/manage/src/main/resources/mapping/TCouponReceiveMapper.xml b/manage/src/main/resources/mapping/TCouponReceiveMapper.xml index 1962194..b6e84ef 100644 --- a/manage/src/main/resources/mapping/TCouponReceiveMapper.xml +++ b/manage/src/main/resources/mapping/TCouponReceiveMapper.xml @@ -24,5 +24,12 @@ <sql id="Base_Column_List"> id, couponId, userId, type, amount, storeId, endTime, amountCondition, status, createTime, updateTime, createBy, updateBy, isDelete </sql> + <select id="pageList" resultType="com.jilongda.manage.vo.TAppUserCouponVO"> + select t1.* ,t2.name as couponName from + t_coupon_receive t1 + left join t_coupon t2 on t1.couponId = t2.id + where t1.userId = #{query.id} + and t1.isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} + </select> </mapper> diff --git a/manage/src/main/resources/mapping/TFrameGoods.xml b/manage/src/main/resources/mapping/TFrameGoods.xml new file mode 100644 index 0000000..c2957ae --- /dev/null +++ b/manage/src/main/resources/mapping/TFrameGoods.xml @@ -0,0 +1,52 @@ +<?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.jilongda.manage.mapper.TFrameGoodsMapper"> + + + <select id="lensReceiptList" resultType="com.jilongda.manage.vo.TFrameGoodsVO"> + select t1.*,t2.name as model,t5.name as supplier,t3.name as material,t4.name as store, + t2.sale as sale,t2.cost as cost,t6.name as brand,t7.frameThreshold + from + t_frame_goods t1 + left join t_model t2 on t1.modelId=t2.id + left join t_material t3 on t2.materialId = t3.id + left join t_store t4 on t1.storeId = t4.id + left join t_supplier t5 on t2.supplierId = t5.id + left join t_brand t6 on t2.brandId=t6.id + left join sec_setting t7 on 1=1 + where 1=1 + <if test="query.brandId != null "> + and t2.brandId = #{query.brandId} + </if> + <if test="query.supplierId != null "> + and t2.supplierId = #{query.supplierId} + </if> + <if test="query.color != null and query.color != ''"> + and t1.color = #{query.color} + </if> + <if test="query.storeId != null "> + and t1.storeId = #{query.storeId} + </if> + <if test="query.model != null and query.model != ''"> + and t2.name = #{query.model} + </if> + <if test="query.materialId != null "> + and t2.materialId = #{query.materialId} + </if> + <if test="query.status != null "> + and t1.status = #{query.status} + </if> + <if test="query.isWarning != null and query.isWarning = 1"> + and t1.total < t7.frameThreshold + </if> + <if test="query.isWarning != null and query.isWarning = 2"> + and t1.total >= t7.frameThreshold + </if> + <if test="query.startCount != null and query.endCount != null"> + and t1.total between #{query.startCount} and #{query.endCount} + </if> + and t1.isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} + + order by t1.id + </select> +</mapper> diff --git a/manage/src/main/resources/mapping/TInventoryMapper.xml b/manage/src/main/resources/mapping/TInventoryMapper.xml index 4654405..07fe3d3 100644 --- a/manage/src/main/resources/mapping/TInventoryMapper.xml +++ b/manage/src/main/resources/mapping/TInventoryMapper.xml @@ -20,5 +20,28 @@ <sql id="Base_Column_List"> id, status, type, storeId, remark, createTime, updateTime, createBy, updateBy, isDelete </sql> + <select id="pageList" resultType="com.jilongda.manage.vo.TInventoryVO"> + select t1.*,t2.name as store from + t_inventory t1 + left join t_store t2 on t1.storeId = t2.id + where 1=1 + <if test="query.status != null "> + and t1.status = #{query.status} + </if> + <if test="query.createBy != null "> + and t1.createBy = #{query.createBy} + </if> + <if test="query.type != null "> + and t1.type = #{query.type} + </if> + <if test="query.storeId != null "> + and t1.storeId = #{query.storeId} + </if> + <if test="query.startTime != null and query.startTime != ''"> + and t1.createTime between #{query.startTime} and #{query.endTime} + </if> + and t1.isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} + + </select> </mapper> diff --git a/manage/src/main/resources/mapping/TLensGoods.xml b/manage/src/main/resources/mapping/TLensGoods.xml new file mode 100644 index 0000000..3ee1be9 --- /dev/null +++ b/manage/src/main/resources/mapping/TLensGoods.xml @@ -0,0 +1,44 @@ +<?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.jilongda.manage.mapper.TLensGoodsMapper"> + + + <select id="lensReceiptList" resultType="com.jilongda.manage.vo.TLensGoodsVO"> + select t1.*,t2.name as series,t4.name as store, + t2.sale as sale,t2.cost as cost,t6.name as brand,t7.frameThreshold + from + t_lens_goods t1 + left join t_lens_series t2 on t1.seriesId=t2.id + left join t_store t4 on t1.storeId = t4.id + left join t_brand t6 on t2.brandId=t6.id + left join sec_setting t7 on 1=1 + where 1=1 + <if test="query.brandId != null "> + and t2.brandId = #{query.brandId} + </if> + <if test="query.seriesId != null "> + and t2.id = #{query.seriesId} + </if> + <if test="query.lensType != null "> + and t1.lensType = #{query.lensType} + </if> + <if test="query.storeId != null "> + and t1.storeId = #{query.storeId} + </if> + <if test="query.refractiveIndex != null and query.refractiveIndex != ''"> + and t1.refractiveIndex = #{query.refractiveIndex} + </if> + <if test="query.type != null "> + and t2.type = #{query.type} + </if> + <if test="query.isWarning != null and query.isWarning = 1"> + and t1.total < t7.lensThreshold + </if> + <if test="query.isWarning != null and query.isWarning = 2"> + and t1.total >= t7.lensThreshold + </if> + and t1.isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} + + order by t1.id + </select> +</mapper> diff --git a/manage/src/main/resources/mapping/TLineUpMapper.xml b/manage/src/main/resources/mapping/TLineUpMapper.xml index 0a2778c..3f2d9ef 100644 --- a/manage/src/main/resources/mapping/TLineUpMapper.xml +++ b/manage/src/main/resources/mapping/TLineUpMapper.xml @@ -40,6 +40,8 @@ <if test="query.storeId != null"> and s.id = #{query.storeId} </if> + and t1.isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} + </where> order by t.createTime desc </select> diff --git a/manage/src/main/resources/mapping/TOptometristMapper.xml b/manage/src/main/resources/mapping/TOptometristMapper.xml index 8381406..cc7051e 100644 --- a/manage/src/main/resources/mapping/TOptometristMapper.xml +++ b/manage/src/main/resources/mapping/TOptometristMapper.xml @@ -37,6 +37,9 @@ <if test="query.name != null and query.name != ''"> and t2.`name` like concat('%',#{query.name},'%') </if> + <if test="query.userId != null and query.userId != ''"> + and t2.id like concat('%',#{query.userId},'%') + </if> <if test="query.realName != null and query.realName != ''"> and t1.`name` like concat('%',#{query.realName},'%') </if> diff --git a/optometry/src/main/java/com/jilongda/optometry/model/TAppUser.java b/optometry/src/main/java/com/jilongda/optometry/model/TAppUser.java index 3dd6328..caedc88 100644 --- a/optometry/src/main/java/com/jilongda/optometry/model/TAppUser.java +++ b/optometry/src/main/java/com/jilongda/optometry/model/TAppUser.java @@ -53,9 +53,6 @@ @TableField("gender") private Integer gender; - @ApiModelProperty(value = "注册时间") - @TableField("registerTime") - private LocalDateTime registerTime; @ApiModelProperty(value = "创建时间") @TableField("createTime") -- Gitblit v1.7.1