jin vor 1 Monat
Ursprung
Commit
3153580e0f
25 geänderte Dateien mit 208 neuen und 455 gelöschten Zeilen
  1. 1 1
      ruoyi-admin/src/main/resources/application.yml
  2. 1 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  3. 1 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/controller/WxUserController.java
  4. 4 71
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/RecBrand.java
  5. 5 108
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/RecCommodity.java
  6. 4 66
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/RecContent.java
  7. 18 86
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/WxRecharge.java
  8. 7 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/vo/WxContent.java
  9. 8 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/mapper/RecContentMapper.java
  10. 17 8
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/mapper/WxRechargeMapper.java
  11. 9 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/IRecContentService.java
  12. 16 8
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/IWxRechargeService.java
  13. 3 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/CommonServiceImpl.java
  14. 3 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/RecBrandServiceImpl.java
  15. 3 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/RecCommodityServiceImpl.java
  16. 8 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/RecContentServiceImpl.java
  17. 5 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/WxRechargeServiceImpl.java
  18. 18 2
      ruoyi-system/src/main/resources/mapper/system/RecContentMapper.xml
  19. 25 6
      ruoyi-system/src/main/resources/mapper/system/WxRechargeMapper.xml
  20. 1 1
      ruoyi-system/src/main/resources/mapper/system/WxUserMapper.xml
  21. 19 12
      ruoyi-wx/src/main/java/com/ruoyi/wx/web/controller/WxPayController.java
  22. 4 71
      ruoyi-wx/src/main/java/com/ruoyi/wx/web/domain/vo/GoodsInfoVo.java
  23. 8 2
      ruoyi-wx/src/main/java/com/ruoyi/wx/web/domain/vo/WxContentVo.java
  24. 17 3
      ruoyi-wx/src/main/java/com/ruoyi/wx/web/service/impl/WxHomeServiceImpl.java
  25. 3 3
      ruoyi-wx/src/main/java/com/ruoyi/wx/web/service/impl/WxPersonCenterServiceImpl.java

+ 1 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -151,5 +151,5 @@ wx:
   mch-id: 1697678898
   api-key: A7tG5wZ3vM9sY2LxQ8kW4bJ6rD1F0Pz1
   domain: https://api.mch.weixin.qq.com
-  notify-domain: http://49.235.117.140:8080/wx/pay/notify
+  notify-domain: http://8.152.217.177:8080/wx/pay/notify
   msgDataFormat: JSON

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -110,7 +110,7 @@ public class SecurityConfig {
                     // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                     requests.requestMatchers("/login", "/wx/login","/register", "/captchaImage", "/common/**",
                                     "/wx/home/index", "/wx/home/sale/**", "/wx/recycle/**", "/wx/quotation/**",
-                                    "/wx/common/**", "/wx/home/thumbs/**", "/wx/person/info").permitAll()
+                                    "/wx/common/**", "/wx/home/thumbs/**", "/wx/recycle/info", "/wx/pay/notify").permitAll()
                             // 静态资源,可匿名访问
                             .requestMatchers(HttpMethod.GET, "/", "/*.html", "/**.html", "/**.css", "/**.js", "/profile/**").permitAll()
                             .requestMatchers("/swagger-ui.html", "/v3/api-docs/**", "/swagger-ui/**", "/druid/**").permitAll()

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/controller/WxUserController.java

@@ -38,7 +38,7 @@ public class WxUserController extends BaseController
     /**
      * 查询用户列表
      */
-    @PreAuthorize("@ss.hasPermi('recovery:user:list')")
+//    @PreAuthorize("@ss.hasPermi('recovery:user:list')")
     @GetMapping("/list")
     public TableDataInfo list(WxUser wxUser)
     {

+ 4 - 71
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/RecBrand.java

@@ -4,7 +4,9 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -15,6 +17,7 @@ import java.util.List;
  * @author jin
  * @date 2024-11-16
  */
+@Data
 @Schema(description = "用户实体")
 public class RecBrand extends BaseEntity
 {
@@ -40,7 +43,7 @@ public class RecBrand extends BaseEntity
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Schema(title = "创建时间")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date createDate;
+    private LocalDateTime createDate;
 
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd")
@@ -53,74 +56,4 @@ public class RecBrand extends BaseEntity
      */
     @Schema(title = "子节点")
     private List<RecBrand> children = new ArrayList<RecBrand>();
-
-    public void setId(Long id)
-    {
-        this.id = id;
-    }
-
-    public Long getId()
-    {
-        return id;
-    }
-    public void setBrand(String brand)
-    {
-        this.brand = brand;
-    }
-
-    public String getBrand()
-    {
-        return brand;
-    }
-    public void setCreateDate(Date createDate)
-    {
-        this.createDate = createDate;
-    }
-
-    public Date getCreateDate()
-    {
-        return createDate;
-    }
-    public void setUpdateDate(Date updateDate)
-    {
-        this.updateDate = updateDate;
-    }
-
-    public Date getUdateDate()
-    {
-        return updateDate;
-    }
-
-    public Long getParentId() {
-        return parentId;
-    }
-
-    public void setParentId(Long parentId) {
-        this.parentId = parentId;
-    }
-
-    public Date getUpdateDate() {
-        return updateDate;
-    }
-
-    public List<RecBrand> getChildren() {
-        return children;
-    }
-
-    public void setChildren(List<RecBrand> children) {
-        this.children = children;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuffer sb = new StringBuffer("RecBrand{");
-        sb.append("id=").append(id);
-        sb.append(", brand='").append(brand).append('\'');
-        sb.append(", parentId=").append(parentId);
-        sb.append(", createDate=").append(createDate);
-        sb.append(", updateDate=").append(updateDate);
-        sb.append(", children=").append(children);
-        sb.append('}');
-        return sb.toString();
-    }
 }

+ 5 - 108
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/RecCommodity.java

@@ -1,8 +1,10 @@
 package com.ruoyi.framework.recovery.domain;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
@@ -14,6 +16,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
  * @author jin
  * @date 2024-11-16
  */
+@Data
 public class RecCommodity extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -44,12 +47,12 @@ public class RecCommodity extends BaseEntity
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date createDate;
+    private LocalDateTime createDate;
 
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date updateDate;
+    private LocalDateTime updateDate;
 
     /**
      * 商品规格
@@ -62,110 +65,4 @@ public class RecCommodity extends BaseEntity
      */
     @Excel(name = "商品图片地址")
     private String images;
-
-    public void setId(Long id)
-    {
-        this.id = id;
-    }
-
-    public Long getId()
-    {
-        return id;
-    }
-    public void setBrandId(Long brandId)
-    {
-        this.brandId = brandId;
-    }
-
-    public Long getBrandId()
-    {
-        return brandId;
-    }
-    public void setModel(String model)
-    {
-        this.model = model;
-    }
-
-    public String getModel()
-    {
-        return model;
-    }
-    public void setCatalog(String catalog)
-    {
-        this.catalog = catalog;
-    }
-
-    public String getCatalog()
-    {
-        return catalog;
-    }
-    public void setSale(BigDecimal sale)
-    {
-        this.sale = sale;
-    }
-
-    public BigDecimal getSale()
-    {
-        return sale;
-    }
-    public void setMarket(BigDecimal market)
-    {
-        this.market = market;
-    }
-
-    public BigDecimal getMarket()
-    {
-        return market;
-    }
-    public void setCreateDate(Date createDate)
-    {
-        this.createDate = createDate;
-    }
-
-    public Date getCreateDate()
-    {
-        return createDate;
-    }
-    public void setUpdateDate(Date updateDate)
-    {
-        this.updateDate = updateDate;
-    }
-
-    public Date getUpdateDate()
-    {
-        return updateDate;
-    }
-
-    public String getSpecs() {
-        return specs;
-    }
-
-    public void setSpecs(String specs) {
-        this.specs = specs;
-    }
-
-    public String getImages() {
-        return images;
-    }
-
-    public void setImages(String images) {
-        this.images = images;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuffer sb = new StringBuffer("RecCommodity{");
-        sb.append("id=").append(id);
-        sb.append(", brandId=").append(brandId);
-        sb.append(", model='").append(model).append('\'');
-        sb.append(", catalog='").append(catalog).append('\'');
-        sb.append(", sale=").append(sale);
-        sb.append(", market=").append(market);
-        sb.append(", createDate=").append(createDate);
-        sb.append(", updateDate=").append(updateDate);
-        sb.append(", specs='").append(specs).append('\'');
-        sb.append(", images='").append(images).append('\'');
-        sb.append('}');
-        return sb.toString();
-    }
 }

+ 4 - 66
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/RecContent.java

@@ -1,9 +1,11 @@
 package com.ruoyi.framework.recovery.domain;
 
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
@@ -15,6 +17,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
  * @author jin
  * @date 2024-11-16
  */
+@Data
 public class RecContent extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -32,7 +35,7 @@ public class RecContent extends BaseEntity
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date createDate;
+    private LocalDateTime createDate;
 
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -41,69 +44,4 @@ public class RecContent extends BaseEntity
 
     private String images;
 
-    public void setId(Long id)
-    {
-        this.id = id;
-    }
-
-    public Long getId()
-    {
-        return id;
-    }
-    public void setContent(String content)
-    {
-        this.content = content;
-    }
-
-    public String getContent()
-    {
-        return content;
-    }
-    public void setCreateDate(Date createDate)
-    {
-        this.createDate = createDate;
-    }
-
-    public Date getCreateDate()
-    {
-        return createDate;
-    }
-    public void setUpdateDate(Date updateDate)
-    {
-        this.updateDate = updateDate;
-    }
-
-    public Date getUpdateDate()
-    {
-        return updateDate;
-    }
-
-    public Long getThumbs() {
-        return thumbs;
-    }
-
-    public void setThumbs(Long thumbs) {
-        this.thumbs = thumbs;
-    }
-
-    public String getImages() {
-        return images;
-    }
-
-    public void setImages(String images) {
-        this.images = images;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuffer sb = new StringBuffer("RecContent{");
-        sb.append("id=").append(id);
-        sb.append(", content='").append(content).append('\'');
-        sb.append(", thumbs=").append(thumbs);
-        sb.append(", createDate=").append(createDate);
-        sb.append(", updateDate=").append(updateDate);
-        sb.append(", images='").append(images).append('\'');
-        sb.append('}');
-        return sb.toString();
-    }
 }

+ 18 - 86
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/WxRecharge.java

@@ -3,6 +3,7 @@ package com.ruoyi.framework.recovery.domain;
 import java.math.BigDecimal;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
@@ -10,10 +11,11 @@ import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
  * 充值对象 wx_recharge
- * 
+ *
  * @author jin
  * @date 2024-12-01
  */
+@Data
 public class WxRecharge extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -48,89 +50,19 @@ public class WxRecharge extends BaseEntity
 
     private Long couponsId;
 
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-    public void setUserId(Long userId) 
-    {
-        this.userId = userId;
-    }
-
-    public Long getUserId() 
-    {
-        return userId;
-    }
-    public void setUserName(String userName) 
-    {
-        this.userName = userName;
-    }
-
-    public String getUserName() 
-    {
-        return userName;
-    }
-    public void setPrice(BigDecimal price) 
-    {
-        this.price = price;
-    }
-
-    public BigDecimal getPrice() 
-    {
-        return price;
-    }
-    public void setPoints(Long points) 
-    {
-        this.points = points;
-    }
-
-    public Long getPoints() 
-    {
-        return points;
-    }
-    public void setPayTime(Date payTime) 
-    {
-        this.payTime = payTime;
-    }
-
-    public Date getPayTime() 
-    {
-        return payTime;
-    }
-    public void setIsDel(String isDel) 
-    {
-        this.isDel = isDel;
-    }
-
-    public String getIsDel() 
-    {
-        return isDel;
-    }
-
-    public Long getCouponsId() {
-        return couponsId;
-    }
-
-    public void setCouponsId(Long couponsId) {
-        this.couponsId = couponsId;
-    }
-
-    @Override
-    public String toString() {
-        return "WxRecharge{" +
-                "id=" + id +
-                ", userId=" + userId +
-                ", userName='" + userName + '\'' +
-                ", price=" + price +
-                ", points=" + points +
-                ", payTime=" + payTime +
-                ", isDel='" + isDel + '\'' +
-                ", couponsId=" + couponsId +
-                '}';
-    }
+    /**
+     * 充值状态:1.正在充值,2.已完成
+     *
+     */
+    private String payStat;
+
+    /**
+     * 工单编号
+     */
+    private String orderNo;
+
+    /**
+     * 会员等级:1.月卡,2.季卡,3.年卡
+     */
+    private Integer vipLv;
 }

+ 7 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/vo/WxContent.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
@@ -29,10 +30,15 @@ public class WxContent {
      */
     private String avatar;
 
+    /**
+     * 是否点过赞
+     */
+    private String access;
+
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date createDate;
+    private LocalDateTime createDate;
 
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 8 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/mapper/RecContentMapper.java

@@ -87,4 +87,12 @@ public interface RecContentMapper
      * @return 结果集
      */
     List<WxContent> selectWxContentList(@Param("dto") WxContent wxContentVo);
+
+    /**
+     * 查询当前登录人是否点过赞
+     *
+     * @param wxOpenid 登录人编号
+     * @return 结果集
+     */
+    List<WxContent> selectRecContentByOpenId(@Param("openId") String wxOpenid);
 }

+ 17 - 8
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/mapper/WxRechargeMapper.java

@@ -2,18 +2,19 @@ package com.ruoyi.framework.recovery.mapper;
 
 import java.util.List;
 import com.ruoyi.framework.recovery.domain.WxRecharge;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 充值Mapper接口
- * 
+ *
  * @author jin
  * @date 2024-12-01
  */
-public interface WxRechargeMapper 
+public interface WxRechargeMapper
 {
     /**
      * 查询充值
-     * 
+     *
      * @param id 充值主键
      * @return 充值
      */
@@ -21,7 +22,7 @@ public interface WxRechargeMapper
 
     /**
      * 查询充值列表
-     * 
+     *
      * @param wxRecharge 充值
      * @return 充值集合
      */
@@ -29,7 +30,7 @@ public interface WxRechargeMapper
 
     /**
      * 新增充值
-     * 
+     *
      * @param wxRecharge 充值
      * @return 结果
      */
@@ -37,7 +38,7 @@ public interface WxRechargeMapper
 
     /**
      * 修改充值
-     * 
+     *
      * @param wxRecharge 充值
      * @return 结果
      */
@@ -45,7 +46,7 @@ public interface WxRechargeMapper
 
     /**
      * 删除充值
-     * 
+     *
      * @param id 充值主键
      * @return 结果
      */
@@ -53,9 +54,17 @@ public interface WxRechargeMapper
 
     /**
      * 批量删除充值
-     * 
+     *
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
     public int deleteWxRechargeByIds(Long[] ids);
+
+    /**
+     * 根据工单编号查询工单
+     *
+     * @param orderNo 入参
+     * @return  结果集
+     */
+    WxRecharge selectWxRechargeByOrderNo(@Param("orderNo") String orderNo);
 }

+ 9 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/IRecContentService.java

@@ -2,6 +2,7 @@ package com.ruoyi.framework.recovery.service;
 
 import com.ruoyi.framework.recovery.domain.RecContent;
 import com.ruoyi.framework.recovery.domain.vo.WxContent;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -77,4 +78,12 @@ public interface IRecContentService
      * @return 结果集
      */
     List<WxContent> selectWxContentList(WxContent wxContentVo);
+
+    /**
+     * 查询当前用户点过赞
+     *
+     * @param wxOpenid 用户Id
+     * @return 结果集
+     */
+    List<WxContent> selectRecContentByOpenId(String wxOpenid);
 }

+ 16 - 8
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/IWxRechargeService.java

@@ -5,15 +5,15 @@ import com.ruoyi.framework.recovery.domain.WxRecharge;
 
 /**
  * 充值Service接口
- * 
+ *
  * @author jin
  * @date 2024-12-01
  */
-public interface IWxRechargeService 
+public interface IWxRechargeService
 {
     /**
      * 查询充值
-     * 
+     *
      * @param id 充值主键
      * @return 充值
      */
@@ -21,7 +21,7 @@ public interface IWxRechargeService
 
     /**
      * 查询充值列表
-     * 
+     *
      * @param wxRecharge 充值
      * @return 充值集合
      */
@@ -29,7 +29,7 @@ public interface IWxRechargeService
 
     /**
      * 新增充值
-     * 
+     *
      * @param wxRecharge 充值
      * @return 结果
      */
@@ -37,7 +37,7 @@ public interface IWxRechargeService
 
     /**
      * 修改充值
-     * 
+     *
      * @param wxRecharge 充值
      * @return 结果
      */
@@ -45,7 +45,7 @@ public interface IWxRechargeService
 
     /**
      * 批量删除充值
-     * 
+     *
      * @param ids 需要删除的充值主键集合
      * @return 结果
      */
@@ -53,9 +53,17 @@ public interface IWxRechargeService
 
     /**
      * 删除充值信息
-     * 
+     *
      * @param id 充值主键
      * @return 结果
      */
     public int deleteWxRechargeById(Long id);
+
+    /**
+     * 根据工单编号查询工单
+     *
+     * @param orderNo 工单编号
+     * @return 结果集
+     */
+    WxRecharge selectWxRechargeByOrderId(String orderNo);
 }

+ 3 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/CommonServiceImpl.java

@@ -28,6 +28,8 @@ import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.*;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
 import java.util.Objects;
 
@@ -164,7 +166,7 @@ public class CommonServiceImpl implements ICommonService {
                 RecCommodity commodity = new RecCommodity();
                 commodity.setId(id);
                 commodity.setImages(hdUrl + ";" + thuUrl);
-                commodity.setUpdateDate(new Date());
+                commodity.setUpdateDate(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
                 commodityMapper.updateRecCommodity(commodity);
                 break;
             case "store":

+ 3 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/RecBrandServiceImpl.java

@@ -8,6 +8,8 @@ import com.ruoyi.framework.recovery.service.IRecBrandService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Iterator;
@@ -59,7 +61,7 @@ public class RecBrandServiceImpl implements IRecBrandService
     @Override
     public int insertRecBrand(RecBrand recBrand)
     {
-        recBrand.setCreateDate(new Date());
+        recBrand.setCreateDate(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
         return recBrandMapper.insertRecBrand(recBrand);
     }
 

+ 3 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/RecCommodityServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ruoyi.framework.recovery.service.impl;
 
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,7 +55,7 @@ public class RecCommodityServiceImpl implements IRecCommodityService
     @Override
     public int insertRecCommodity(RecCommodity recCommodity)
     {
-        recCommodity.setCreateDate(new Date());
+        recCommodity.setCreateDate(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
         return recCommodityMapper.insertRecCommodity(recCommodity);
     }
 

+ 8 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/RecContentServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ruoyi.framework.recovery.service.impl;
 
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
 import java.util.List;
 
@@ -56,7 +58,7 @@ public class RecContentServiceImpl implements IRecContentService
     @Override
     public int insertRecContent(RecContent recContent)
     {
-        recContent.setCreateDate(new Date());
+        recContent.setCreateDate(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
         return recContentMapper.insertRecContent(recContent);
     }
 
@@ -109,4 +111,9 @@ public class RecContentServiceImpl implements IRecContentService
     public List<WxContent> selectWxContentList(WxContent wxContentVo) {
         return recContentMapper.selectWxContentList(wxContentVo);
     }
+
+    @Override
+    public List<WxContent> selectRecContentByOpenId(String wxOpenid) {
+        return recContentMapper.selectRecContentByOpenId(wxOpenid);
+    }
 }

+ 5 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/WxRechargeServiceImpl.java

@@ -92,4 +92,9 @@ public class WxRechargeServiceImpl implements IWxRechargeService
     {
         return wxRechargeMapper.deleteWxRechargeById(id);
     }
+
+    @Override
+    public WxRecharge selectWxRechargeByOrderId(String orderNo) {
+        return wxRechargeMapper.selectWxRechargeByOrderNo(orderNo);
+    }
 }

+ 18 - 2
ruoyi-system/src/main/resources/mapper/system/RecContentMapper.xml

@@ -57,10 +57,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             rc.create_date as createDate
         FROM
             rec_content rc
-                LEFT JOIN wx_content_user wcu ON rc.id = wcu.content_id
-                LEFT JOIN wx_user wu on wcu.open_id = wu.wx_openid
+                LEFT JOIN wx_user wu on rc.create_by = wu.wx_openid
         order by rc.create_date desc
     </select>
+    <select id="selectRecContentByOpenId" resultType="com.ruoyi.framework.recovery.domain.vo.WxContent">
+        SELECT
+            rc.id as id,
+            rc.content as content,
+            rc.create_date as createDate,
+            rc.thumbs as thumbs,
+            rc.images as images,
+            (case when wcu.open_id = #{openId} then '1' else '0' end) as access,
+            wu.username as username,
+            wu.avatar as avatar
+        FROM
+            rec_content rc
+                LEFT JOIN wx_content_user wcu ON rc.id = wcu.content_id
+                LEFT JOIN wx_user wu on wu.wx_openid = rc.create_by
+        ORDER BY
+            rc.create_date DESC
+    </select>
 
     <insert id="insertRecContent" parameterType="RecContent">
         insert into rec_content

+ 25 - 6
ruoyi-system/src/main/resources/mapper/system/WxRechargeMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.framework.recovery.mapper.WxRechargeMapper">
-    
+
     <resultMap type="WxRecharge" id="WxRechargeResult">
         <result property="id"    column="id"    />
         <result property="userId"    column="user_id"    />
@@ -13,15 +13,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="payTime"    column="pay_time"    />
         <result property="isDel"    column="is_del"    />
         <result property="couponsId"    column="coupons_id"    />
+        <result property="payStat"    column="pay_stat"    />
+        <result property="orderNo"    column="order_no"    />
+        <result property="vipLv"    column="vip_lv"    />
     </resultMap>
 
     <sql id="selectWxRechargeVo">
-        select id, user_id, user_name, price, points, pay_time, is_del, coupons_id from wx_recharge
+        select id, user_id, user_name, price, points, pay_time, is_del, coupons_id, pay_stat, order_no, vip_lv from wx_recharge
     </sql>
 
     <select id="selectWxRechargeList" parameterType="WxRecharge" resultMap="WxRechargeResult">
         <include refid="selectWxRechargeVo"/>
-        <where>  
+        <where>
             <if test="userId != null "> and user_id = #{userId}</if>
             <if test="userName != null  and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
             <if test="price != null "> and price = #{price}</if>
@@ -29,13 +32,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="payTime != null "> and pay_time = #{payTime}</if>
             <if test="isDel != null  and isDel != ''"> and is_del = #{isDel}</if>
             <if test="couponsId != null  and couponsId != ''"> and coupons_id = #{couponsId}</if>
+            <if test="payStat != null  and payStat != ''"> and pay_stat = #{payStat}</if>
+            <if test="orderNo != null  and orderNo != ''"> and order_no = #{orderNo}</if>
+            <if test="vipLv != null  and vipLv != ''"> and vip_lv = #{vipLv}</if>
         </where>
     </select>
-    
+
     <select id="selectWxRechargeById" parameterType="Long" resultMap="WxRechargeResult">
         <include refid="selectWxRechargeVo"/>
         where id = #{id}
     </select>
+    <select id="selectWxRechargeByOrderNo" resultMap="WxRechargeResult">
+        <include refid="selectWxRechargeVo"/>
+        where order_no = #{orderNo}
+    </select>
 
     <insert id="insertWxRecharge" parameterType="WxRecharge">
         insert into wx_recharge
@@ -48,6 +58,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="payTime != null">pay_time,</if>
             <if test="isDel != null">is_del,</if>
             <if test="couponsId != null">coupons_id,</if>
+            <if test="payStat != null">pay_stat,</if>
+            <if test="orderNo != null">order_no,</if>
+            <if test="vipLv != null">vip_lv,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -58,6 +71,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="payTime != null">#{payTime},</if>
             <if test="isDel != null">#{isDel},</if>
             <if test="couponsId != null">#{couponsId},</if>
+            <if test="payStat != null">#{payStat},</if>
+            <if test="orderNo != null">#{orderNo},</if>
+            <if test="vipLv != null">#{vipLv},</if>
          </trim>
     </insert>
 
@@ -71,6 +87,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="payTime != null">pay_time = #{payTime},</if>
             <if test="isDel != null">is_del = #{isDel},</if>
             <if test="couponsId != null">coupons_id = #{couponsId},</if>
+            <if test="payStat != null">pay_stat = #{payStat},</if>
+            <if test="orderNo != null">order_no = #{orderNo},</if>
+            <if test="vipLv != null">vip_lv = #{vipLv},</if>
         </trim>
         where id = #{id}
     </update>
@@ -80,9 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteWxRechargeByIds" parameterType="String">
-        delete from wx_recharge where id in 
+        delete from wx_recharge where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
-</mapper>
+</mapper>

+ 1 - 1
ruoyi-system/src/main/resources/mapper/system/WxUserMapper.xml

@@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="points != null "> and points = #{points}</if>
             <if test="vipStartTime != null "> and vip_start_time = #{vipStartTime}</if>
             <if test="vipEndTime != null "> and vip_end_time = #{vipEndTime}</if>
-            <if test="vipIv != null "> and vip_lv = #{vipIv}</if>
+            <if test="vipLv != null "> and vip_lv = #{vipLv}</if>
         </where>
     </select>
 

+ 19 - 12
ruoyi-wx/src/main/java/com/ruoyi/wx/web/controller/WxPayController.java

@@ -1,8 +1,6 @@
 package com.ruoyi.wx.web.controller;
 
 
-import cn.hutool.core.date.DateField;
-import cn.hutool.core.date.DateUtil;
 import com.github.binarywang.wxpay.bean.notify.OriginNotifyResponse;
 import com.github.binarywang.wxpay.bean.notify.SignatureHeader;
 import com.github.binarywang.wxpay.bean.notify.WxPayNotifyV3Result;
@@ -35,12 +33,10 @@ import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Objects;
 import java.util.concurrent.locks.ReentrantLock;
 
 /**
@@ -131,7 +127,7 @@ public class WxPayController {
         WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request();
         request.setDescription("购买会员");
         // 商品订单号
-        String orderNo = "ORDER_" + System.currentTimeMillis();
+        String orderNo = "ORDER_" + (System.currentTimeMillis() + 1);
         request.setOutTradeNo(orderNo);
         // 订单金额
         WxPayUnifiedOrderV3Request.Amount amount = new WxPayUnifiedOrderV3Request.Amount();
@@ -142,31 +138,32 @@ public class WxPayController {
         } else if (StringUtils.isNotEmpty(dto.getDiscount())) {
             total = total.multiply(new BigDecimal(dto.getDiscount()).divide(new BigDecimal(10)));
         }
-        log.info("用户:{},支付总金额为:{}, 订单Id为:{}", dto.getOpenId(), amount, orderNo);
         amount.setTotal(total.intValue() * 100);
         request.setAmount(amount);
+        log.info("用户:{},支付总金额为:{}, 订单Id为:{}", dto.getOpenId(), amount, orderNo);
         WxPayUnifiedOrderV3Request.Payer payer = new WxPayUnifiedOrderV3Request.Payer();
         payer.setOpenid(dto.getOpenId());
         request.setPayer(payer);
         WxPayUnifiedOrderV3Result.JsapiResult orderV3 = this.wxPayService.createOrderV3(TradeTypeEnum.JSAPI, request);
+        log.info("支付内容:{}", orderV3);
         WxRecharge wxRecharge = new WxRecharge();
         wxRecharge.setPoints(dto.getPoints());
-        wxRecharge.setPrice(total.divide(new BigDecimal(100)));
+        wxRecharge.setPrice(total);
         wxRecharge.setPayTime(new Date());
         WxUser wxUser = wxUserService.selectWxUSerByOpenid(dto.getOpenId());
         wxRecharge.setUserId(wxUser.getId());
         wxRecharge.setUserName(wxUser.getUsername());
+        wxRecharge.setPayStat("1");
+        wxRecharge.setOrderNo(orderNo);
+        wxRecharge.setVipLv(dto.getVipLv());
         wxRechargeService.insertWxRecharge(wxRecharge);
-        wxUser.setUserLevel(dto.getVipLv());
-        wxUser.setVipStartTime(null == wxUser.getVipStartTime() ? LocalDate.now(ZoneId.of("Asia/Shanghai")) : wxUser.getVipStartTime());
-        wxUser.setVipEndTime(defDate(wxUser.getVipStartTime(), dto.getVipLv()));
-        wxUserService.updateWxUser(wxUser);
         Map<String, Object> resultMap = new HashMap<>();
         resultMap.put("appId", orderV3.getAppId());
         resultMap.put("timeStamp", orderV3.getTimeStamp());
         resultMap.put("nonceStr", orderV3.getNonceStr());
         resultMap.put("packageValue", orderV3.getPackageValue());
         resultMap.put("signType", orderV3.getSignType());
+        resultMap.put("paySign", orderV3.getPaySign());
         resultMap.put("outTradeNo", orderNo);
         return AjaxResult.success(resultMap);
     }
@@ -202,7 +199,17 @@ public class WxPayController {
                 try {
                     // 解析支付结果通知
                     WxPayNotifyV3Result result = wxPayService.parseOrderNotifyV3Result(notifyData, signatureHeader);
-                    // TODO 此处根据返回结果处理订单信息
+                    String orderNo = result.getResult().getOutTradeNo();
+                    WxRecharge wxRecharge = wxRechargeService.selectWxRechargeByOrderId(orderNo);
+                    wxRecharge.setPayStat("2");
+                    wxRechargeService.updateWxRecharge(wxRecharge);
+                    log.info("查询支付信息:{}", wxRecharge);
+                    WxUser wxUser = wxUserService.selectWxUserById(wxRecharge.getUserId());
+                    wxUser.setVipLv(wxRecharge.getVipLv());
+                    wxUser.setVipStartTime(null == wxUser.getVipStartTime() ? LocalDate.now(ZoneId.of("Asia/Shanghai")) : wxUser.getVipStartTime());
+                    wxUser.setVipEndTime(defDate(null == wxUser.getVipEndTime() ? wxUser.getVipStartTime() : wxUser.getVipEndTime(), wxUser.getVipLv()));
+                    log.info("用户信息:{}", wxUser);
+                    wxUserService.updateWxUser(wxUser);
                     log.debug("支付成功 ---> orderNo:" + result.getResult().getOutTradeNo());
                     // 返回成功(无需数据,系统状态码为200即可)
                     return AjaxResult.success();

+ 4 - 71
ruoyi-wx/src/main/java/com/ruoyi/wx/web/domain/vo/GoodsInfoVo.java

@@ -4,10 +4,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Date;
 
+@Data
 @Schema(description = "用户实体")
 @ApiModel(value = "物品详情实体类")
 public class GoodsInfoVo {
@@ -49,75 +52,5 @@ public class GoodsInfoVo {
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date updateDate;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getModel() {
-        return model;
-    }
-
-    public void setModel(String model) {
-        this.model = model;
-    }
-
-    public BigDecimal getSale() {
-        return sale;
-    }
-
-    public void setSale(BigDecimal sale) {
-        this.sale = sale;
-    }
-
-    public BigDecimal getMarket() {
-        return market;
-    }
-
-    public void setMarket(BigDecimal market) {
-        this.market = market;
-    }
-
-    public String getSpecs() {
-        return specs;
-    }
-
-    public void setSpecs(String specs) {
-        this.specs = specs;
-    }
-
-    public BigDecimal getArbitrage() {
-        return arbitrage;
-    }
-
-    public void setArbitrage(BigDecimal arbitrage) {
-        this.arbitrage = arbitrage;
-    }
-
-    public Date getUpdateDate() {
-        return updateDate;
-    }
-
-    public void setUpdateDate(Date updateDate) {
-        this.updateDate = updateDate;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuffer sb = new StringBuffer("GoodsInfoVo{");
-        sb.append("id=").append(id);
-        sb.append(", model='").append(model).append('\'');
-        sb.append(", sale=").append(sale);
-        sb.append(", market=").append(market);
-        sb.append(", specs='").append(specs).append('\'');
-        sb.append(", arbitrage=").append(arbitrage);
-        sb.append(", updateDate=").append(updateDate);
-        sb.append('}');
-        return sb.toString();
-    }
+    private LocalDateTime updateDate;
 }

+ 8 - 2
ruoyi-wx/src/main/java/com/ruoyi/wx/web/domain/vo/WxContentVo.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
@@ -29,15 +30,20 @@ public class WxContentVo {
      */
     private String avatar;
 
+    /**
+     * 当前人是否点赞
+     */
+    private String access;
+
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date createDate;
+    private LocalDateTime createDate;
 
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date updateDate;
+    private LocalDateTime updateDate;
 
     private List<String> imageList;
 }

+ 17 - 3
ruoyi-wx/src/main/java/com/ruoyi/wx/web/service/impl/WxHomeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.wx.web.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
@@ -7,6 +8,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.WxUser;
 import com.ruoyi.common.core.domain.model.LoginWxUser;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.framework.recovery.domain.RecContent;
 import com.ruoyi.framework.recovery.domain.RecContentUser;
@@ -32,7 +34,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.*;
@@ -69,13 +70,25 @@ public class WxHomeServiceImpl implements IWxHomeService {
 
     @Override
     public AjaxResult getIndex() throws ExecutionException, InterruptedException {
+        LoginWxUser loginWxUser = null;
+        try {
+            loginWxUser = SecurityUtils.getLoginWxUser();
+        } catch (ServiceException e) {
+            log.error("用户未登录");
+        }
         // 查询最近创建的活动并且处于活动期间的内容
         DateTime dateTime = DateUtil.beginOfDay(new Date());
         Date startTime = DateUtil.offsetDay(dateTime, -1);
         Date endTime = DateUtil.offsetDay(dateTime, 1);
         Callable<List<RecSaleInfo>> saleInfoCallable = () -> recSaleInfoService.selectRecSaleInfoByTime(startTime, endTime);
         // 评论
-        Callable<List<WxContent>> contentCallable = () -> recContentService.selectWxContentList(new WxContent());
+        Callable<List<WxContent>> contentCallable = null;
+        if (BeanUtil.isEmpty(loginWxUser)) {
+            contentCallable = () -> recContentService.selectWxContentList(new WxContent());
+        } else {
+            LoginWxUser finalLoginWxUser = loginWxUser;
+            contentCallable = () -> recContentService.selectRecContentByOpenId(finalLoginWxUser.getWxUser().getWxOpenid());
+        }
         FutureTask<List<RecSaleInfo>> saleInfoTask = new FutureTask<>(saleInfoCallable);
         FutureTask<List<WxContent>> contentTask = new FutureTask<>(contentCallable);
         executorService.submit(saleInfoTask);
@@ -129,7 +142,7 @@ public class WxHomeServiceImpl implements IWxHomeService {
     @Override
     public List<SaleInfoVo> getSaleCalendar() {
         RecSaleInfo saleInfo = new RecSaleInfo();
-        saleInfo.setEndTimeOfActivity(LocalDateTime.now());
+        saleInfo.setEndTimeOfActivity(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
         List<RecSaleInfo> recSaleInfos = saleInfoMapper.selectRecSaleInfoList(saleInfo);
         List<SaleInfoVo> result = new ArrayList<>();
         for (RecSaleInfo info : recSaleInfos) {
@@ -170,6 +183,7 @@ public class WxHomeServiceImpl implements IWxHomeService {
         RecContent content = new RecContent();
         BeanUtils.copyProperties(dto, content);
         content.setImages(image);
+        content.setCreateDate(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
         return recContentMapper.insertRecContent(content);
     }
 

+ 3 - 3
ruoyi-wx/src/main/java/com/ruoyi/wx/web/service/impl/WxPersonCenterServiceImpl.java

@@ -143,7 +143,7 @@ public class WxPersonCenterServiceImpl implements IWxPersonCenterService {
             case "month":
                 wxUser.setPoints(wxUser.getPoints() - 200);
                 wxUser.setVipLv(1);
-                wxUser.setVipEndTime(wxUser.getVipStartTime().plusMonths(1));
+                wxUser.setVipEndTime(null == wxUser.getVipEndTime() ? wxUser.getVipStartTime().plusMonths(1) : wxUser.getVipEndTime().plusMonths(1));
                 break;
             case "quarter":
                 if (wxUser.getPoints() < 500) {
@@ -152,7 +152,7 @@ public class WxPersonCenterServiceImpl implements IWxPersonCenterService {
                 }
                 wxUser.setPoints(wxUser.getPoints() - 500);
                 wxUser.setVipLv(2);
-                wxUser.setVipEndTime(wxUser.getVipStartTime().plusMonths(3));
+                wxUser.setVipEndTime(null == wxUser.getVipEndTime() ? wxUser.getVipStartTime().plusMonths(1) : wxUser.getVipEndTime().plusMonths(3));
                 break;
             case "year":
                 if (wxUser.getPoints() < 1800) {
@@ -161,7 +161,7 @@ public class WxPersonCenterServiceImpl implements IWxPersonCenterService {
                 }
                 wxUser.setPoints(wxUser.getPoints() - 1800);
                 wxUser.setVipLv(3);
-                wxUser.setVipEndTime(wxUser.getVipStartTime().plusMonths(12));
+                wxUser.setVipEndTime(null == wxUser.getVipEndTime() ? wxUser.getVipStartTime().plusMonths(1) : wxUser.getVipEndTime().plusMonths(12));
                 break;
             default:
                 break;