Browse Source

Merge branch 'dev_v1.3.4_20220902' of http://git.dayaedu.com/yonge/cooleshow into dev_v1.3.4_20220902

Eric 2 years ago
parent
commit
7afee27fe4
15 changed files with 287 additions and 98 deletions
  1. 4 4
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductAttributeCategoryController.java
  2. 2 2
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductAttributeCategoryService.java
  3. 4 2
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsProductAttributeCategoryServiceImpl.java
  4. 2 1
      cooleshow-mall/mall-admin/src/main/resources/config/mybatis/PmsProductAttributeCategoryDao.xml
  5. 11 0
      cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/PmsProductAttributeCategory.java
  6. 2 1
      cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/PmsProductAttributeCategoryMapper.xml
  7. 1 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/HomeServiceImpl.java
  8. 1 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java
  9. 149 24
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponIssueVo.java
  10. 24 13
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/CouponIssueQueryInfo.java
  11. 39 11
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CouponIssueServiceImp.java
  12. 23 13
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/coupon/CouponIssueWrapper.java
  13. 21 24
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CouponIssueMapper.xml
  14. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/SysUserMapper.xml
  15. 3 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/io/request/CouponInfoVO.java

+ 4 - 4
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductAttributeCategoryController.java

@@ -27,8 +27,8 @@ public class PmsProductAttributeCategoryController {
     @ApiOperation("添加商品属性分类")
     @RequestMapping(value = "/create", method = RequestMethod.POST)
     @ResponseBody
-    public CommonResult create(@RequestParam String name) {
-        int count = productAttributeCategoryService.create(name);
+    public CommonResult create(@RequestParam String name,@RequestParam Integer sort) {
+        int count = productAttributeCategoryService.create(name,sort);
         if (count > 0) {
             return CommonResult.success(count);
         } else {
@@ -39,8 +39,8 @@ public class PmsProductAttributeCategoryController {
     @ApiOperation("修改商品属性分类")
     @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
     @ResponseBody
-    public CommonResult update(@PathVariable Long id, @RequestParam String name) {
-        int count = productAttributeCategoryService.update(id, name);
+    public CommonResult update(@PathVariable Long id, @RequestParam String name,@RequestParam Integer sort) {
+        int count = productAttributeCategoryService.update(id, name,sort);
         if (count > 0) {
             return CommonResult.success(count);
         } else {

+ 2 - 2
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductAttributeCategoryService.java

@@ -15,13 +15,13 @@ public interface PmsProductAttributeCategoryService {
      * 创建属性分类
      */
     @Transactional
-    int create(String name);
+    int create(String name, Integer sort);
 
     /**
      * 修改属性分类
      */
     @Transactional
-    int update(Long id, String name);
+    int update(Long id, String name, Integer sort);
 
     /**
      * 删除属性分类

+ 4 - 2
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsProductAttributeCategoryServiceImpl.java

@@ -24,17 +24,19 @@ public class PmsProductAttributeCategoryServiceImpl implements PmsProductAttribu
     private PmsProductAttributeCategoryDao productAttributeCategoryDao;
 
     @Override
-    public int create(String name) {
+    public int create(String name, Integer sort) {
         PmsProductAttributeCategory productAttributeCategory = new PmsProductAttributeCategory();
         productAttributeCategory.setName(name);
+        productAttributeCategory.setSort(sort);
         return productAttributeCategoryMapper.insertSelective(productAttributeCategory);
     }
 
     @Override
-    public int update(Long id, String name) {
+    public int update(Long id, String name, Integer sort) {
         PmsProductAttributeCategory productAttributeCategory = new PmsProductAttributeCategory();
         productAttributeCategory.setName(name);
         productAttributeCategory.setId(id);
+        productAttributeCategory.setSort(sort);
         return productAttributeCategoryMapper.updateByPrimaryKeySelective(productAttributeCategory);
     }
 

+ 2 - 1
cooleshow-mall/mall-admin/src/main/resources/config/mybatis/PmsProductAttributeCategoryDao.xml

@@ -10,7 +10,8 @@
             pac.id,
             pac.name,
             pa.id attr_id,
-            pa.name attr_name
+            pa.name attr_name,
+            pac.sort
         FROM
             pms_product_attribute_category pac
             LEFT JOIN pms_product_attribute pa ON pac.id = pa.product_attribute_category_id

+ 11 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/PmsProductAttributeCategory.java

@@ -16,8 +16,19 @@ public class PmsProductAttributeCategory implements Serializable {
     @ApiModelProperty(value = "参数数量")
     private Integer paramCount;
 
+    @ApiModelProperty("排序")
+    private Integer sort;
+
     private static final long serialVersionUID = 1L;
 
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
     public Long getId() {
         return id;
     }

+ 2 - 1
cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/PmsProductAttributeCategoryMapper.xml

@@ -6,6 +6,7 @@
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result column="attribute_count" jdbcType="INTEGER" property="attributeCount" />
     <result column="param_count" jdbcType="INTEGER" property="paramCount" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -66,7 +67,7 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, name, attribute_count, param_count
+    id, name, attribute_count, param_count,sort
   </sql>
   <select id="selectByExample" parameterType="com.yonge.cooleshow.mbg.model.PmsProductAttributeCategoryExample" resultMap="BaseResultMap">
     select

+ 1 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/HomeServiceImpl.java

@@ -103,7 +103,7 @@ public class HomeServiceImpl implements HomeService {
     private  List<PmsProductAttributeCategory>  getHomeProductAttributeCategory() {
         PageHelper.startPage(1, 10);
         PmsProductAttributeCategoryExample example = new PmsProductAttributeCategoryExample();
-        example.setOrderByClause("id desc");
+        example.setOrderByClause("sort desc,id desc");
         List<PmsProductAttributeCategory> pmsProductCategories = productAttributeCategoryMapper.selectByExample(example);
         if (CollectionUtils.isEmpty(pmsProductCategories)) {
             return new ArrayList<>();

+ 1 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java

@@ -217,7 +217,7 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
 
     private  List<PmsProductAttributeCategory>  getHomeProductAttributeCategory() {
         PmsProductAttributeCategoryExample example = new PmsProductAttributeCategoryExample();
-        example.setOrderByClause("id desc");
+        example.setOrderByClause("sort desc,id desc");
         List<PmsProductAttributeCategory> pmsProductCategories = productAttributeCategoryMapper.selectByExample(example);
         if (CollectionUtils.isEmpty(pmsProductCategories)) {
             return new ArrayList<>();

+ 149 - 24
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponIssueVo.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.io.request.coupon;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.dto.UserParam;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
@@ -48,7 +49,7 @@ public class CouponIssueVo {
         private ClientEnum clientType;
 
         // 发放方式 PLATFORM AVTIVITY
-        @ApiModelProperty("发放方式 PLATFORM:后台发放 AVTIVITY:活动领取")
+        @ApiModelProperty("发放方式 PLATFORM:后台发放 ACTIVITY:活动领取")
         private SendTypeEnum issueWay;
 
         //使用状态 USED:已使用 USABLE:未使用 EXPIRED:过期
@@ -57,27 +58,19 @@ public class CouponIssueVo {
 
         //  发放开始时间
         @ApiModelProperty("发放开始时间")
-        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-        private Date issueStartTime;
+        private Long issueStartTime;
 
         // 发放结束时间
         @ApiModelProperty("发放结束时间")
-        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-        private Date issueEndTime;
+        private Long issueEndTime;
 
         //  使用开始时间
         @ApiModelProperty("使用开始时间")
-        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-        private Date usedStartTime;
+        private Long usedStartTime;
 
         // 使用结束时间
         @ApiModelProperty("使用结束时间")
-        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-        private Date usedEndTime;
+        private Long usedEndTime;
 
         public Long getUserId() {
             return userId;
@@ -127,35 +120,35 @@ public class CouponIssueVo {
             this.useState = useState;
         }
 
-        public Date getIssueStartTime() {
+        public Long getIssueStartTime() {
             return issueStartTime;
         }
 
-        public void setIssueStartTime(Date issueStartTime) {
+        public void setIssueStartTime(Long issueStartTime) {
             this.issueStartTime = issueStartTime;
         }
 
-        public Date getIssueEndTime() {
+        public Long getIssueEndTime() {
             return issueEndTime;
         }
 
-        public void setIssueEndTime(Date issueEndTime) {
+        public void setIssueEndTime(Long issueEndTime) {
             this.issueEndTime = issueEndTime;
         }
 
-        public Date getUsedStartTime() {
+        public Long getUsedStartTime() {
             return usedStartTime;
         }
 
-        public void setUsedStartTime(Date usedStartTime) {
+        public void setUsedStartTime(Long usedStartTime) {
             this.usedStartTime = usedStartTime;
         }
 
-        public Date getUsedEndTime() {
+        public Long getUsedEndTime() {
             return usedEndTime;
         }
 
-        public void setUsedEndTime(Date usedEndTime) {
+        public void setUsedEndTime(Long usedEndTime) {
             this.usedEndTime = usedEndTime;
         }
 
@@ -167,9 +160,6 @@ public class CouponIssueVo {
 
 
 
-    @Data
-    @NoArgsConstructor
-    @AllArgsConstructor
     @ApiModel("优惠券发放信息分页信息")
     public static class CouponIssuePageInfo implements Serializable {
 
@@ -195,9 +185,11 @@ public class CouponIssueVo {
         private String orderNo;
 
         @ApiModelProperty("有效期开始时间")
+        @JSONField(format = "yyyy-MM-dd")
         private Date startTime;
 
         @ApiModelProperty("有效期结束时间")
+        @JSONField(format = "yyyy-MM-dd")
         private Date endTime;
 
         @ApiModelProperty("发放时间")
@@ -218,6 +210,137 @@ public class CouponIssueVo {
         @ApiModelProperty("备注")
         private String remark;
 
+
+        @ApiModelProperty("用户手机号")
+        private String phone;
+
+        public String getPhone() {
+            return phone;
+        }
+
+        public void setPhone(String phone) {
+            this.phone = phone;
+        }
+
+        public Long getUserId() {
+            return userId;
+        }
+
+        public void setUserId(Long userId) {
+            this.userId = userId;
+        }
+
+        public Long getCouponIssueId() {
+            return couponIssueId;
+        }
+
+        public void setCouponIssueId(Long couponIssueId) {
+            this.couponIssueId = couponIssueId;
+        }
+
+        public String getRealName() {
+            return realName;
+        }
+
+        public void setRealName(String realName) {
+            this.realName = realName;
+        }
+
+        public String getUsername() {
+            return username;
+        }
+
+        public void setUsername(String username) {
+            this.username = username;
+        }
+
+        public ClientEnum getClientType() {
+            return clientType;
+        }
+
+        public void setClientType(ClientEnum clientType) {
+            this.clientType = clientType;
+        }
+
+        public CouponUseStateEnum getUseState() {
+            return useState;
+        }
+
+        public void setUseState(CouponUseStateEnum useState) {
+            this.useState = useState;
+        }
+
+        public String getOrderNo() {
+            return orderNo;
+        }
+
+        public void setOrderNo(String orderNo) {
+            this.orderNo = orderNo;
+        }
+
+        public Date getStartTime() {
+            return startTime;
+        }
+
+        public void setStartTime(Date startTime) {
+            this.startTime = startTime;
+        }
+
+        public Date getEndTime() {
+            return endTime;
+        }
+
+        public void setEndTime(Date endTime) {
+            this.endTime = endTime;
+        }
+
+        public Date getIssueTime() {
+            return issueTime;
+        }
+
+        public void setIssueTime(Date issueTime) {
+            this.issueTime = issueTime;
+        }
+
+        public Date getUseTime() {
+            return useTime;
+        }
+
+        public void setUseTime(Date useTime) {
+            this.useTime = useTime;
+        }
+
+        public SendTypeEnum getIssueWay() {
+            return issueWay;
+        }
+
+        public void setIssueWay(SendTypeEnum issueWay) {
+            this.issueWay = issueWay;
+        }
+
+        public String getIssueUsername() {
+            return issueUsername;
+        }
+
+        public void setIssueUsername(String issueUsername) {
+            this.issueUsername = issueUsername;
+        }
+
+        public String getIssueRealName() {
+            return issueRealName;
+        }
+
+        public void setIssueRealName(String issueRealName) {
+            this.issueRealName = issueRealName;
+        }
+
+        public String getRemark() {
+            return remark;
+        }
+
+        public void setRemark(String remark) {
+            this.remark = remark;
+        }
     }
 
     @ApiModel("优惠券发放用户分页查询")
@@ -442,9 +565,11 @@ public class CouponIssueVo {
         private String orderNo;
 
         @ApiModelProperty("有效期开始时间")
+        @JSONField(format = "yyyy-MM-dd")
         private Date startTime;
 
         @ApiModelProperty("有效期结束时间")
+        @JSONField(format = "yyyy-MM-dd")
         private Date endTime;
 
         @ApiModelProperty("发放时间")

+ 24 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/CouponIssueQueryInfo.java

@@ -6,9 +6,9 @@ import com.yonge.cooleshow.biz.dal.enums.SendTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponCategoryEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
+import org.joda.time.DateTime;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * Description
@@ -36,16 +36,16 @@ public class CouponIssueQueryInfo implements Serializable {
     private CouponUseStateEnum useState;
 
     //  发放开始时间
-    private Date issueStartTime;
+    private Long issueStartTime;
 
     // 发放结束时间
-    private Date issueEndTime;
+    private Long issueEndTime;
 
     //  使用开始时间
-    private Date usedStartTime;
+    private Long usedStartTime;
 
     // 使用结束时间
-    private Date usedEndTime;
+    private Long usedEndTime;
 
 
     // 优惠券编号/名称
@@ -57,6 +57,17 @@ public class CouponIssueQueryInfo implements Serializable {
     // 可用品类 UNIVERSAL:全场通用 VIP:小酷Ai PIANO:云酷琴房 MALL:商场购物券 MUSIC:单曲点播券 SPARRING:陪练课购买券 LIVE:直播课购买券  VIDEO:视频课购买券
     private CouponCategoryEnum couponCategory;
 
+    // 过期时间
+    private Long expiredTime = DateTime.now().getMillis();
+
+    public Long getExpiredTime() {
+        return expiredTime;
+    }
+
+    public void setExpiredTime(Long expiredTime) {
+        this.expiredTime = expiredTime;
+    }
+
     public static CouponIssueQueryInfo from(String recv) {
 
         return JSON.parseObject(recv, CouponIssueQueryInfo.class);
@@ -134,35 +145,35 @@ public class CouponIssueQueryInfo implements Serializable {
         this.useState = useState;
     }
 
-    public Date getIssueStartTime() {
+    public Long getIssueStartTime() {
         return issueStartTime;
     }
 
-    public void setIssueStartTime(Date issueStartTime) {
+    public void setIssueStartTime(Long issueStartTime) {
         this.issueStartTime = issueStartTime;
     }
 
-    public Date getIssueEndTime() {
+    public Long getIssueEndTime() {
         return issueEndTime;
     }
 
-    public void setIssueEndTime(Date issueEndTime) {
+    public void setIssueEndTime(Long issueEndTime) {
         this.issueEndTime = issueEndTime;
     }
 
-    public Date getUsedStartTime() {
+    public Long getUsedStartTime() {
         return usedStartTime;
     }
 
-    public void setUsedStartTime(Date usedStartTime) {
+    public void setUsedStartTime(Long usedStartTime) {
         this.usedStartTime = usedStartTime;
     }
 
-    public Date getUsedEndTime() {
+    public Long getUsedEndTime() {
         return usedEndTime;
     }
 
-    public void setUsedEndTime(Date usedEndTime) {
+    public void setUsedEndTime(Long usedEndTime) {
         this.usedEndTime = usedEndTime;
     }
 }

+ 39 - 11
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CouponIssueServiceImp.java

@@ -35,8 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.time.LocalDateTime;
-import java.time.ZoneId;
+import java.time.*;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -73,23 +72,50 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
     public IPage<CouponIssueWrapper> queryCouponIssueInfo(IPage<CouponIssueWrapper> page, CouponIssueQueryInfo query) {
         List<CouponIssueWrapper> couponIssueWrappers = baseMapper.queryCouponIssueInfo(page, query);
 
+
+        // 优惠券过期状态
+        couponIssueWrappers = couponIssueWrappers.stream()
+                .peek(couponIssueWrapper -> {
+                    if (couponIssueWrapper.getEndTime().compareTo(query.getExpiredTime()) <0) {
+                        couponIssueWrapper.setUseState(CouponUseStateEnum.EXPIRED);
+                    }
+                }).collect(Collectors.toList());
+
+        // 查看人员信息
+        List<Long> userIdList = couponIssueWrappers.stream()
+                                                     .map(CouponIssueWrapper::getUserId)
+                                                     .collect(Collectors.toList());
+        List<SysUser> userList = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(userIdList)) {
+            userList = sysUserMapper.selectBatchIds(userIdList);
+        }
+        Map<Long, List<SysUser>> userMap = userList.stream().collect(Collectors.groupingBy(SysUser::getId));
+
+
         // 获取发放人信息
         List<Long> issuerIdList = couponIssueWrappers.stream()
                                                 .map(CouponIssueWrapper::getIssuer)
                                                 .collect(Collectors.toList());
-        List<SysUser> sysUsers = new ArrayList<>();
+        List<SysUser> issuerList = new ArrayList<>();
         if (!CollectionUtils.isEmpty(issuerIdList)) {
-            sysUsers = sysUserMapper.selectBatchIds(issuerIdList);
+            issuerList = sysUserMapper.selectBatchIds(issuerIdList);
         }
 
-        Map<Long, List<SysUser>> userIdMap = sysUsers.stream().collect(Collectors.groupingBy(SysUser::getId));
+        Map<Long, List<SysUser>> issuerMap = issuerList.stream().collect(Collectors.groupingBy(SysUser::getId));
 
 
         for (CouponIssueWrapper couponIssueWrapper : couponIssueWrappers) {
-            List<SysUser> issuerList = userIdMap.get(couponIssueWrapper.getIssuer());
-            if (!CollectionUtils.isEmpty(issuerList)) {
-                couponIssueWrapper.setIssueRealName(issuerList.get(0).getRealName());
-                couponIssueWrapper.setIssueUsername(issuerList.get(0).getUsername());
+            List<SysUser> issuer = issuerMap.get(couponIssueWrapper.getIssuer());
+            if (!CollectionUtils.isEmpty(issuer)) {
+                couponIssueWrapper.setIssueRealName(issuer.get(0).getRealName());
+                couponIssueWrapper.setIssueUsername(issuer.get(0).getUsername());
+            }
+
+            List<SysUser> users = userMap.get(couponIssueWrapper.getUserId());
+            if (!CollectionUtils.isEmpty(issuer)) {
+                couponIssueWrapper.setUsername(users.get(0).getUsername());
+                couponIssueWrapper.setRealName(users.get(0).getRealName());
+                couponIssueWrapper.setPhone(users.get(0).getPhone());
             }
         }
         return page.setRecords(couponIssueWrappers);
@@ -103,6 +129,7 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
         return this.lambdaUpdate()
                 .eq(CouponIssue::getId,couponIssueId)
                 .set(CouponIssue::getStatus, EStatus.DISABLE.getValue())
+                .set(CouponIssue::getUseState,CouponUseStateEnum.WITHDRAW)
                 .update();
     }
 
@@ -123,8 +150,9 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
         Long startTime = null;
         Long endTime = null;
         if (couponInfo.getValidDay() != null && couponInfo.getValidDay() >0) {
-            startTime = DateTime.now().getMillis();
-            endTime = DateTime.now().plusDays(couponInfo.getValidDay()).getMillis();
+            startTime =LocalDateTime.of(LocalDate.now(), LocalTime.MIN).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
+            endTime = LocalDateTime.of(LocalDate.now().plusDays(couponInfo.getValidDay()-1), LocalTime.MAX)
+                                   .atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         } else {
             startTime = couponInfo.getStartTime();
             endTime = couponInfo.getEndTime();

+ 23 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/coupon/CouponIssueWrapper.java

@@ -8,7 +8,6 @@ import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * Description
@@ -44,6 +43,9 @@ public class CouponIssueWrapper {
     @ApiModelProperty("用户昵称")
     private String username;
 
+    @ApiModelProperty("用户手机号")
+    private String phone;
+
     @ApiModelProperty("客户端类型 TEACHER :老师端 STUDENT:学生端")
     private ClientEnum clientType;
 
@@ -54,16 +56,16 @@ public class CouponIssueWrapper {
     private String orderNo;
 
     @ApiModelProperty("有效期开始时间")
-    private Date startTime;
+    private Long startTime;
 
     @ApiModelProperty("有效期结束时间")
-    private Date endTime;
+    private Long endTime;
 
     @ApiModelProperty("发放时间")
-    private Date issueTime;
+    private Long issueTime;
 
     @ApiModelProperty("使用时间")
-    private Date useTime;
+    private Long useTime;
 
     @ApiModelProperty("发放途径PLATFORM:后台发放 ACTIVITY:活动领取")
     private SendTypeEnum issueWay;
@@ -86,6 +88,14 @@ public class CouponIssueWrapper {
     @ApiModelProperty("备注")
     private String remark;
 
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
     public BigDecimal getUseLimit() {
         return useLimit;
     }
@@ -198,35 +208,35 @@ public class CouponIssueWrapper {
         this.orderNo = orderNo;
     }
 
-    public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getEndTime() {
+    public Long getEndTime() {
         return endTime;
     }
 
-    public void setEndTime(Date endTime) {
+    public void setEndTime(Long endTime) {
         this.endTime = endTime;
     }
 
-    public Date getIssueTime() {
+    public Long getIssueTime() {
         return issueTime;
     }
 
-    public void setIssueTime(Date issueTime) {
+    public void setIssueTime(Long issueTime) {
         this.issueTime = issueTime;
     }
 
-    public Date getUseTime() {
+    public Long getUseTime() {
         return useTime;
     }
 
-    public void setUseTime(Date useTime) {
+    public void setUseTime(Long useTime) {
         this.useTime = useTime;
     }
 

+ 21 - 24
cooleshow-user/user-biz/src/main/resources/config/mybatis/CouponIssueMapper.xml

@@ -28,18 +28,16 @@
 
     <select id="queryCouponIssueInfo" resultType="com.yonge.cooleshow.biz.dal.vo.coupon.CouponIssueWrapper">
         select
-            su.id_ as userId,
+            ci.user_id_ as userId,
             ci.id_ as couponIssueId,
-            su.real_name_ as realName,
-            su.username_ as username,
             ci.client_type_ as clientType,
             ci.issue_way_ as issueWay,
             ci.order_no_ as orderNo,
-        from_unixtime(ci.start_time_) as startTime,
-        from_unixtime(ci.end_time_) as endTime,
-        from_unixtime(ci.issue_time_) as issueTime,
-        from_unixtime(ci.use_time_) as useTime,
-            (case when ci.status_ = 0 then 'WITHDRAW' when  ci.end_time_ &lt; unix_timestamp(now()) and ci.use_state_  = 'USABLE' then 'EXPIRED' else ci.use_state_ end ) as useState,
+            ci.start_time_ as startTime,
+            ci.end_time_ as endTime,
+            ci.issue_time_ as issueTime,
+            ci.use_time_ as useTime,
+            ci.use_state_ as useState,
             ci.issuer_ as issuer,
             ci.remark_ as remark,
             cou.name_ as couponName,
@@ -49,7 +47,9 @@
             cou.use_limit_ as useLimit,
             cou.discount_price_ as discountPrice
         from coupon_issue ci
-        left join sys_user su on ci.user_id_ = su.id_
+        <if test="query.userId != null or (query.keyword != null  and query.keyword != '')">
+            left join sys_user su on ci.user_id_ = su.id_
+        </if>
         left join coupon_info cou on cou.id_ = ci.coupon_id_
         <where>
             <if test="query.userId != null">
@@ -69,20 +69,17 @@
             </if>
             <if test="query.couponKeyword != null and query.couponKeyword != ''">
                 and (
-                    cou.id_ like concat('%',#{query.couponKeyword},'%')
-                    or cou.name_ like concat('%',#{query.couponKeyword},'%')
+                    cou.id_ like '%${query.couponKeyword}%'
+                    or cou.name_ like '%${query.couponKeyword}%'
                 )
             </if>
             <if test="query.useState != null">
                 <choose>
                     <when test="query.useState.code == 'EXPIRED'">
-                        and ci.end_time_ &lt; unix_timestamp(now()) and ci.use_state_  = 'USABLE'
+                        and ci.end_time_ &lt; #{query.expiredTime} and ci.use_state_  = 'USABLE'
                     </when>
                     <when test="query.useState.code == 'USABLE'">
-                        and ci.end_time_ &gt;= unix_timestamp(now()) and ci.use_state_ = 'USABLE'
-                    </when>
-                    <when test="query.useState.code == 'WITHDRAW'">
-                        and ci.status_ = 0
+                        and ci.end_time_ &gt;= #{query.expiredTime} and ci.use_state_ = 'USABLE'
                     </when>
                     <otherwise>
                         and ci.use_state_ = #{query.useState}
@@ -93,23 +90,23 @@
                 and #{query.issueWay} = ci.issue_way_
             </if>
             <if test="query.issueStartTime != null">
-                and unix_timestamp( #{query.issueStartTime}) &lt;= ci.issue_time_
+                and  #{query.issueStartTime} &lt;= ci.issue_time_
             </if>
             <if test="query.issueEndTime != null">
-                and unix_timestamp(#{query.issueEndTime}) &gt;= ci.issue_time_
+                and #{query.issueEndTime} &gt;= ci.issue_time_
             </if>
             <if test="query.usedStartTime != null">
-                and unix_timestamp(#{query.usedStartTime}) &lt;= ci.use_time_
+                and #{query.usedStartTime} &lt;= ci.use_time_
             </if>
             <if test="query.usedEndTime != null">
-                and unix_timestamp(#{query.usedEndTime}) &gt;= ci.use_time_
+                and #{query.usedEndTime} &gt;= ci.use_time_
             </if>
             <if test="query.keyword !=null and query.keyword != ''">
                 and (
-                    su.real_name_ like concat('%',#{query.keyword},'%')
-                    or su.username_ like concat('%',#{query.keyword},'%')
-                    or su.phone_ like concat('%',#{query.keyword},'%')
-                    or su.id_ like concat('%',#{query.keyword},'%')
+                    su.real_name_ like '%${query.keyword}%'
+                    or su.username_ like '%${query.keyword}%'
+                    or su.phone_ like '%${query.keyword}%'
+                    or su.id_ like '%${query.keyword}%'
                 )
             </if>
         </where>

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -54,7 +54,7 @@
         </choose>
         left join sys_user su on su.id_ = t.user_id_
         <where>
-            t.lock_flag_ = 0
+            t.lock_flag_ = 0 and su.del_flag_ = 0
             <if test="keyword != null and keyword != ''">
                 and (
                 su.real_name_ like concat('%',#{keyword},'%')

+ 3 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/io/request/CouponInfoVO.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.teacher.io.request;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.annotation.JSONField;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
@@ -85,9 +86,11 @@ public class CouponInfoVO {
         private Long useTime;
 
         @ApiModelProperty("生效时间")
+        @JSONField(format = "yyyy-MM-dd")
         private Long startTime;
 
         @ApiModelProperty("失效时间")
+        @JSONField(format = "yyyy-MM-dd")
         private Long endTime;
     }