From 8b4b4eb2a6d06469d0e2a61ec0f8ce4d5953c375 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 20 十二月 2024 16:59:27 +0800
Subject: [PATCH] 代码

---
 manage/src/main/resources/mapping/TAppUserMapper.xml                                 |    1 
 manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java          |   12 +
 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/vo/TCouponInfoVO.java                       |   21 ++
 manage/src/main/java/com/jilongda/manage/model/TCoupon.java                          |   11 
 manage/src/main/java/com/jilongda/manage/model/TCouponReceive.java                   |    5 
 manage/src/main/resources/mapping/TLineUpMapper.xml                                  |    2 
 manage/src/main/resources/mapping/TLensGoods.xml                                     |    2 
 manage/src/main/java/com/jilongda/manage/vo/TCouponVO.java                           |   25 ++
 manage/src/main/resources/mapping/TFrameGoods.xml                                    |    2 
 manage/src/main/java/com/jilongda/manage/mapper/TCouponReceiveMapper.java            |   11 +
 manage/pom.xml                                                                       |   15 +
 manage/src/main/java/com/jilongda/manage/query/TCouponQuery.java                     |   17 +
 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/service/TCouponReceiveService.java          |    5 
 manage/src/main/java/com/jilongda/manage/query/TAppUserQuery.java                    |    2 
 manage/src/main/resources/mapping/TInventoryMapper.xml                               |    2 
 manage/src/main/java/com/jilongda/manage/controller/TCouponController.java           |  148 ++++++++++++++++
 manage/src/main/resources/mapping/TCouponMapper.xml                                  |   14 +
 manage/src/main/java/com/jilongda/manage/service/TCouponService.java                 |    4 
 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/service/impl/TCouponReceiveServiceImpl.java |   41 ++++
 25 files changed, 494 insertions(+), 6 deletions(-)

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 23f26e3..262af59 100644
--- a/manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java
+++ b/manage/src/main/java/com/jilongda/manage/controller/TAppUserController.java
@@ -5,13 +5,17 @@
 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;
@@ -42,6 +46,8 @@
     private TOrderService orderService;
     @Resource
     private TOptometryService tOptometryService;
+    @Resource
+    private TCouponReceiveService couponReceiveService;
     @ApiOperation(value = "用户列表")
     @PostMapping(value = "/pageList")
     public ApiResult<PageInfo<TAppUserVO>> pageList(@RequestBody TAppUserQuery query) {
@@ -91,5 +97,11 @@
 
         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/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/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/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
index 89e6690..8c05187 100644
--- a/manage/src/main/java/com/jilongda/manage/query/TAppUserQuery.java
+++ b/manage/src/main/java/com/jilongda/manage/query/TAppUserQuery.java
@@ -6,7 +6,7 @@
 import lombok.Data;
 
 @Data
-@ApiModel(value = "验光师查询条件")
+@ApiModel(value = "用户管理查询条件")
 public class TAppUserQuery extends BasePage {
 
     @ApiModelProperty(value = "微信昵称")
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/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/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/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/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/resources/mapping/TAppUserMapper.xml b/manage/src/main/resources/mapping/TAppUserMapper.xml
index 9338aa1..fe615ff 100644
--- a/manage/src/main/resources/mapping/TAppUserMapper.xml
+++ b/manage/src/main/resources/mapping/TAppUserMapper.xml
@@ -38,6 +38,7 @@
           <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>
 
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
index da7b145..c2957ae 100644
--- a/manage/src/main/resources/mapping/TFrameGoods.xml
+++ b/manage/src/main/resources/mapping/TFrameGoods.xml
@@ -45,6 +45,8 @@
         <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 418dcba..07fe3d3 100644
--- a/manage/src/main/resources/mapping/TInventoryMapper.xml
+++ b/manage/src/main/resources/mapping/TInventoryMapper.xml
@@ -40,6 +40,8 @@
         <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
index f34ad05..3ee1be9 100644
--- a/manage/src/main/resources/mapping/TLensGoods.xml
+++ b/manage/src/main/resources/mapping/TLensGoods.xml
@@ -37,6 +37,8 @@
         <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>

--
Gitblit v1.7.1