Prechádzať zdrojové kódy

小程序政策分类列表

LIVE_YE 3 rokov pred
rodič
commit
07ca2becc9
26 zmenil súbory, kde vykonal 915 pridanie a 61 odobranie
  1. 9 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/PolicyMenuController.java
  2. 1 2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/SettledMerchantsController.java
  3. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/SettledMerchantsInterestsController.java
  4. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/UsageRecordController.java
  5. 11 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
  6. 1 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  7. 49 17
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SettledMerchants.java
  8. 79 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SettledMerchantsInterests.java
  9. 67 18
      ruoyi-system/src/main/java/com/ruoyi/system/domain/UsageRecord.java
  10. 5 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/InterestsNumberTableMapper.java
  11. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SettledMerchantsInterestsMapper.java
  12. 10 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsageRecordMapper.java
  13. 3 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IPolicyMenuService.java
  14. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISettledMerchantsInterestsService.java
  15. 3 1
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISettledMerchantsService.java
  16. 1 1
      ruoyi-system/src/main/java/com/ruoyi/system/service/IUsageRecordService.java
  17. 2 2
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InterestsTableServiceImpl.java
  18. 74 3
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PolicyMenuServiceImpl.java
  19. 93 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SettledMerchantsInterestsServiceImpl.java
  20. 102 5
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SettledMerchantsServiceImpl.java
  21. 32 2
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UsageRecordServiceImpl.java
  22. 1 1
      ruoyi-system/src/main/resources/mapper/system/CreditUserMapper.xml
  23. 19 1
      ruoyi-system/src/main/resources/mapper/system/InterestsNumberTableMapper.xml
  24. 69 0
      ruoyi-system/src/main/resources/mapper/system/SettledMerchantsInterestsMapper.xml
  25. 27 6
      ruoyi-system/src/main/resources/mapper/system/SettledMerchantsMapper.xml
  26. 28 1
      ruoyi-system/src/main/resources/mapper/system/UsageRecordMapper.xml

+ 9 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/PolicyMenuController.java

@@ -159,4 +159,13 @@ public class PolicyMenuController extends BaseController
         List<PolicyMenu> menus = policyMenuService.selectMenusList(policyMenu);
         return AjaxResult.success(policyMenuService.buildMenuTreeSelect(menus));
     }
+
+    /***
+     * 获取政策类别(APP)
+     */
+    @GetMapping("/listPolicyMenuApp")
+    public AjaxResult listApp(String idCard)
+    {
+        return policyMenuService.listApp(idCard);
+    }
 }

+ 1 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/SettledMerchantsController.java

@@ -42,7 +42,6 @@ public class SettledMerchantsController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(SettledMerchants settledMerchants)
     {
-        startPage();
         List<SettledMerchants> list = settledMerchantsService.selectSettledMerchantsList(settledMerchants);
         return getDataTable(list);
     }
@@ -98,7 +97,7 @@ public class SettledMerchantsController extends BaseController
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SettledMerchants settledMerchants)
     {
-        return toAjax(settledMerchantsService.insertSettledMerchants(settledMerchants));
+        return settledMerchantsService.insertSettledMerchants(settledMerchants);
     }
 
     /**

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/SettledMerchantsInterestsController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.business;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.SettledMerchantsInterests;
+import com.ruoyi.system.service.ISettledMerchantsInterestsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 商户-政策类型Controller
+ * 
+ * @author ruoyi
+ * @date 2022-07-11
+ */
+@RestController
+@RequestMapping("/system/interests")
+public class SettledMerchantsInterestsController extends BaseController
+{
+    @Autowired
+    private ISettledMerchantsInterestsService settledMerchantsInterestsService;
+
+    /**
+     * 查询商户-政策类型列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:interests:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SettledMerchantsInterests settledMerchantsInterests)
+    {
+        startPage();
+        List<SettledMerchantsInterests> list = settledMerchantsInterestsService.selectSettledMerchantsInterestsList(settledMerchantsInterests);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出商户-政策类型列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:interests:export')")
+    @Log(title = "商户-政策类型", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SettledMerchantsInterests settledMerchantsInterests)
+    {
+        List<SettledMerchantsInterests> list = settledMerchantsInterestsService.selectSettledMerchantsInterestsList(settledMerchantsInterests);
+        ExcelUtil<SettledMerchantsInterests> util = new ExcelUtil<SettledMerchantsInterests>(SettledMerchantsInterests.class);
+        util.exportExcel(response, list, "商户-政策类型数据");
+    }
+
+    /**
+     * 获取商户-政策类型详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:interests:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(settledMerchantsInterestsService.selectSettledMerchantsInterestsById(id));
+    }
+
+    /**
+     * 新增商户-政策类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:interests:add')")
+    @Log(title = "商户-政策类型", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SettledMerchantsInterests settledMerchantsInterests)
+    {
+        return toAjax(settledMerchantsInterestsService.insertSettledMerchantsInterests(settledMerchantsInterests));
+    }
+
+    /**
+     * 修改商户-政策类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:interests:edit')")
+    @Log(title = "商户-政策类型", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SettledMerchantsInterests settledMerchantsInterests)
+    {
+        return toAjax(settledMerchantsInterestsService.updateSettledMerchantsInterests(settledMerchantsInterests));
+    }
+
+    /**
+     * 删除商户-政策类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:interests:remove')")
+    @Log(title = "商户-政策类型", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(settledMerchantsInterestsService.deleteSettledMerchantsInterestsByIds(ids));
+    }
+}

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/UsageRecordController.java

@@ -77,7 +77,7 @@ public class UsageRecordController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody UsageRecord usageRecord)
     {
-        return toAjax(usageRecordService.insertUsageRecord(usageRecord));
+        return usageRecordService.insertUsageRecord(usageRecord);
     }
 
     /**

+ 11 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -184,4 +184,15 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
         return Date.from(zdt.toInstant());
     }
+
+    /***
+     * 获取当前年
+     * @return
+     */
+    public static String getCurrentYear(){
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+        Date date = new Date();
+        return sdf.format(date);
+    }
+
 }

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

@@ -113,6 +113,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/*/api-docs").anonymous()
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/system/h5/**").anonymous()
+                .antMatchers("/system/policy/**").anonymous()
                 .antMatchers("/scanCode/**").anonymous()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()

+ 49 - 17
ruoyi-system/src/main/java/com/ruoyi/system/domain/SettledMerchants.java

@@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.util.List;
+
 /**
  * 入驻商家对象 settled_merchants
  * 
@@ -58,6 +60,13 @@ public class SettledMerchants extends BaseEntity
     private String photo;
 
 
+    private List<SettledMerchantsInterests> settledMerchantsInterestsList;
+
+    private List<Long> menuIdList;
+
+    private String menuNames;
+
+
     public int getPolicyId() {
         return policyId;
     }
@@ -157,24 +166,47 @@ public class SettledMerchants extends BaseEntity
         return photo;
     }
 
+    public List<SettledMerchantsInterests> getSettledMerchantsInterestsList() {
+        return settledMerchantsInterestsList;
+    }
+
+    public void setSettledMerchantsInterestsList(List<SettledMerchantsInterests> settledMerchantsInterestsList) {
+        this.settledMerchantsInterestsList = settledMerchantsInterestsList;
+    }
+
+    public List<Long> getMenuIdList() {
+        return menuIdList;
+    }
+
+    public void setMenuIdList(List<Long> menuIdList) {
+        this.menuIdList = menuIdList;
+    }
+
+    public String getMenuNames() {
+        return menuNames;
+    }
+
+    public void setMenuNames(String menuNames) {
+        this.menuNames = menuNames;
+    }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("businessId", getBusinessId())
-            .append("businessName", getBusinessName())
-            .append("businessIntroduce", getBusinessIntroduce())
-            .append("businessAddress", getBusinessAddress())
-            .append("businessPhone", getBusinessPhone())
-            .append("businessPolicy", getBusinessPolicy())
-            .append("orderNum", getOrderNum())
-            .append("visible", getVisible())
-            .append("status", getStatus())
-            .append("photo", getPhoto())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
+        return "SettledMerchants{" +
+                "businessId=" + businessId +
+                ", businessName='" + businessName + '\'' +
+                ", businessIntroduce='" + businessIntroduce + '\'' +
+                ", businessAddress='" + businessAddress + '\'' +
+                ", businessPhone='" + businessPhone + '\'' +
+                ", businessPolicy='" + businessPolicy + '\'' +
+                ", policyId=" + policyId +
+                ", orderNum=" + orderNum +
+                ", visible='" + visible + '\'' +
+                ", status='" + status + '\'' +
+                ", photo='" + photo + '\'' +
+                ", settledMerchantsInterestsList=" + settledMerchantsInterestsList +
+                ", menuIdList=" + menuIdList +
+                ", menuNames='" + menuNames + '\'' +
+                '}';
     }
 }

+ 79 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/SettledMerchantsInterests.java

@@ -0,0 +1,79 @@
+package com.ruoyi.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 商户-政策类型对象 settled_merchants_interests
+ * 
+ * @author ruoyi
+ * @date 2022-07-11
+ */
+public class SettledMerchantsInterests extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 商家ID */
+    @Excel(name = "商家ID")
+    private Long businessId;
+
+    /** 类别ID */
+    @Excel(name = "类别ID")
+    private Long menuId;
+
+    /** 类别名称 */
+    @Excel(name = "类别名称")
+    private String menuName;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBusinessId(Long businessId) 
+    {
+        this.businessId = businessId;
+    }
+
+    public Long getBusinessId() 
+    {
+        return businessId;
+    }
+    public void setMenuId(Long menuId) 
+    {
+        this.menuId = menuId;
+    }
+
+    public Long getMenuId() 
+    {
+        return menuId;
+    }
+    public void setMenuName(String menuName) 
+    {
+        this.menuName = menuName;
+    }
+
+    public String getMenuName() 
+    {
+        return menuName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("businessId", getBusinessId())
+            .append("menuId", getMenuId())
+            .append("menuName", getMenuName())
+            .toString();
+    }
+}

+ 67 - 18
ruoyi-system/src/main/java/com/ruoyi/system/domain/UsageRecord.java

@@ -22,6 +22,15 @@ public class UsageRecord extends BaseEntity
     /** 记录ID */
     private Long recordId;
 
+    /** 商家ID */
+    private Long businessId;
+
+    /** 分类id */
+    private Long policyId;
+
+    /** 使用权益id */
+    private Long interestsId;
+
     /** 记录年份 */
     @Excel(name = "记录年份")
     private String recordYear;
@@ -32,7 +41,7 @@ public class UsageRecord extends BaseEntity
 
     /** 记录名称 */
     @Excel(name = "记录名称")
-    private Long recordName;
+    private String recordName;
 
     /** 显示顺序 */
     @Excel(name = "显示顺序")
@@ -49,6 +58,10 @@ public class UsageRecord extends BaseEntity
     /** 剩余次数 */
     @Excel(name = "剩余次数")
     private String surplusNum;
+
+    /** 使用人手机号 */
+    @Excel(name = "使用人手机号")
+    private String creditPhone;
     /**
      * 子菜单
      */
@@ -89,12 +102,12 @@ public class UsageRecord extends BaseEntity
     {
         return recordType;
     }
-    public void setRecordName(Long recordName) 
+    public void setRecordName(String recordName)
     {
         this.recordName = recordName;
     }
 
-    public Long getRecordName() 
+    public String getRecordName()
     {
         return recordName;
     }
@@ -135,22 +148,58 @@ public class UsageRecord extends BaseEntity
         return surplusNum;
     }
 
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getBusinessId() {
+        return businessId;
+    }
+
+    public Long getPolicyId() {
+        return policyId;
+    }
+
+    public Long getInterestsId() {
+        return interestsId;
+    }
+
+    public void setBusinessId(Long businessId) {
+        this.businessId = businessId;
+    }
+
+    public void setPolicyId(Long policyId) {
+        this.policyId = policyId;
+    }
+
+    public void setInterestsId(Long interestsId) {
+        this.interestsId = interestsId;
+    }
+
+    public String getCreditPhone() {
+        return creditPhone;
+    }
+
+    public void setCreditPhone(String creditPhone) {
+        this.creditPhone = creditPhone;
+    }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("recordId", getRecordId())
-            .append("recordYear", getRecordYear())
-            .append("recordType", getRecordType())
-            .append("recordName", getRecordName())
-            .append("orderNum", getOrderNum())
-            .append("useNum", getUseNum())
-            .append("creditId", getCreditId())
-            .append("surplusNum", getSurplusNum())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
+        return "UsageRecord{" +
+                "recordId=" + recordId +
+                ", businessId=" + businessId +
+                ", policyId=" + policyId +
+                ", interestsId=" + interestsId +
+                ", recordYear='" + recordYear + '\'' +
+                ", recordType='" + recordType + '\'' +
+                ", recordName='" + recordName + '\'' +
+                ", orderNum=" + orderNum +
+                ", useNum='" + useNum + '\'' +
+                ", creditId=" + creditId +
+                ", surplusNum='" + surplusNum + '\'' +
+                ", creditPhone='" + creditPhone + '\'' +
+                ", children=" + children +
+                '}';
     }
 }

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/InterestsNumberTableMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.mapper;
 
 import java.util.List;
 import com.ruoyi.system.domain.InterestsNumberTable;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 商户权益次数记录Mapper接口
@@ -58,4 +59,8 @@ public interface InterestsNumberTableMapper
      * @return 结果
      */
     public int deleteInterestsNumberTableByIds(Long[] ids);
+
+    InterestsNumberTable selectInterestsNumberTable(InterestsNumberTable interestsNumberTable);
+
+    InterestsNumberTable selectInterestsNumberTableByPolicyId(@Param("menuId") Long menuId, @Param("creditLevel")String creditLevel);
 }

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SettledMerchantsInterestsMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.SettledMerchantsInterests;
+
+/**
+ * 商户-政策类型Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2022-07-11
+ */
+public interface SettledMerchantsInterestsMapper 
+{
+    /**
+     * 查询商户-政策类型
+     * 
+     * @param id 商户-政策类型主键
+     * @return 商户-政策类型
+     */
+    public SettledMerchantsInterests selectSettledMerchantsInterestsById(Long id);
+
+    /**
+     * 查询商户-政策类型列表
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 商户-政策类型集合
+     */
+    public List<SettledMerchantsInterests> selectSettledMerchantsInterestsList(SettledMerchantsInterests settledMerchantsInterests);
+
+    /**
+     * 新增商户-政策类型
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 结果
+     */
+    public int insertSettledMerchantsInterests(SettledMerchantsInterests settledMerchantsInterests);
+
+    /**
+     * 修改商户-政策类型
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 结果
+     */
+    public int updateSettledMerchantsInterests(SettledMerchantsInterests settledMerchantsInterests);
+
+    /**
+     * 删除商户-政策类型
+     * 
+     * @param id 商户-政策类型主键
+     * @return 结果
+     */
+    public int deleteSettledMerchantsInterestsById(Long id);
+
+    /**
+     * 批量删除商户-政策类型
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSettledMerchantsInterestsByIds(Long[] ids);
+
+    void delectByBusinessId(Long businessId);
+}

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsageRecordMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.mapper;
 
 import java.util.List;
 import com.ruoyi.system.domain.UsageRecord;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 使用记录Mapper接口
@@ -65,4 +66,13 @@ public interface UsageRecordMapper
      * @return 结果
      */
     public int deleteUsageRecordByRecordIds(Long[] recordIds);
+
+    /***
+     * 查询该用户已在该商家使用次数(按年来查询)
+     * @param creditPhone 使用者手机号
+     * @param interestsId 权益id
+     * @param year 当前年
+     * @return
+     */
+    int selectUsageRecordByRecordNum(@Param("creditPhone")String creditPhone, @Param("interestsId")Long interestsId, @Param("year")String year);
 }

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IPolicyMenuService.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.service;
 
 import java.util.List;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.TreeSelect;
 import com.ruoyi.common.core.domain.entity.PolicyMenu;
 
@@ -90,4 +91,6 @@ public interface IPolicyMenuService
      * @return 子部门数
      */
     int selectNormalChildrenMenuById(Long menuId);
+
+    AjaxResult listApp(String idCard);
 }

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISettledMerchantsInterestsService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.SettledMerchantsInterests;
+
+/**
+ * 商户-政策类型Service接口
+ * 
+ * @author ruoyi
+ * @date 2022-07-11
+ */
+public interface ISettledMerchantsInterestsService 
+{
+    /**
+     * 查询商户-政策类型
+     * 
+     * @param id 商户-政策类型主键
+     * @return 商户-政策类型
+     */
+    public SettledMerchantsInterests selectSettledMerchantsInterestsById(Long id);
+
+    /**
+     * 查询商户-政策类型列表
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 商户-政策类型集合
+     */
+    public List<SettledMerchantsInterests> selectSettledMerchantsInterestsList(SettledMerchantsInterests settledMerchantsInterests);
+
+    /**
+     * 新增商户-政策类型
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 结果
+     */
+    public int insertSettledMerchantsInterests(SettledMerchantsInterests settledMerchantsInterests);
+
+    /**
+     * 修改商户-政策类型
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 结果
+     */
+    public int updateSettledMerchantsInterests(SettledMerchantsInterests settledMerchantsInterests);
+
+    /**
+     * 批量删除商户-政策类型
+     * 
+     * @param ids 需要删除的商户-政策类型主键集合
+     * @return 结果
+     */
+    public int deleteSettledMerchantsInterestsByIds(Long[] ids);
+
+    /**
+     * 删除商户-政策类型信息
+     * 
+     * @param id 商户-政策类型主键
+     * @return 结果
+     */
+    public int deleteSettledMerchantsInterestsById(Long id);
+}

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/ISettledMerchantsService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.system.domain.SettledMerchants;
 
 /**
@@ -40,7 +42,7 @@ public interface ISettledMerchantsService
      * @param settledMerchants 入驻商家
      * @return 结果
      */
-    public int insertSettledMerchants(SettledMerchants settledMerchants);
+    public AjaxResult insertSettledMerchants(SettledMerchants settledMerchants);
 
     /**
      * 修改入驻商家

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/IUsageRecordService.java

@@ -35,7 +35,7 @@ public interface IUsageRecordService
      * @param usageRecord 使用记录
      * @return 结果
      */
-    public int insertUsageRecord(UsageRecord usageRecord);
+    public AjaxResult insertUsageRecord(UsageRecord usageRecord);
 
     /**
      * 修改使用记录

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InterestsTableServiceImpl.java

@@ -93,9 +93,9 @@ public class InterestsTableServiceImpl implements IInterestsTableService
 
         List<InterestsNumberTable> interestsNumberTableList = interestsTable.getInterestsNumberTableList();
         //查询商户的权益所属政策类型id
-        SettledMerchants settledMerchants = settledMerchantsMapper.selectSettledMerchantsByBusinessId(interestsTable.getMerchantsId());
+        //SettledMerchants settledMerchants = settledMerchantsMapper.selectSettledMerchantsByBusinessId(interestsTable.getMerchantsId());
 
-        interestsTable.setInterestsPolicyId(settledMerchants.getPolicyId());
+        //interestsTable.setInterestsPolicyId(settledMerchants.getPolicyId());
         interestsTable.setCreateTime(DateUtils.getNowDate());
         int count = interestsTableMapper.insertInterestsTable(interestsTable);
         if (count < 1) return AjaxResult.error("新增权益信息失败");

+ 74 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PolicyMenuServiceImpl.java

@@ -1,17 +1,22 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import com.ruoyi.common.constant.UserConstants;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.TreeSelect;
 import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.text.Convert;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.CreditUser;
+import com.ruoyi.system.domain.InterestsNumberTable;
+import com.ruoyi.system.mapper.CreditUserMapper;
+import com.ruoyi.system.mapper.InterestsNumberTableMapper;
+import com.ruoyi.system.mapper.UsageRecordMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.PolicyMenuMapper;
@@ -28,6 +33,12 @@ import com.ruoyi.system.service.IPolicyMenuService;
 public class PolicyMenuServiceImpl implements IPolicyMenuService {
     @Autowired
     private PolicyMenuMapper policyMenuMapper;
+    @Autowired
+    private CreditUserMapper creditUserMapper;
+    @Autowired
+    private InterestsNumberTableMapper interestsNumberTableMapper;
+    @Autowired
+    private UsageRecordMapper usageRecordMapper;
 
     /**
      * 查询政策类别
@@ -210,6 +221,66 @@ public class PolicyMenuServiceImpl implements IPolicyMenuService {
         return policyMenuMapper.selectNormalChildrenMenuById(menuId);
     }
 
+    @Override
+    public AjaxResult listApp(String idCard) {
+        //查询信用人员
+        CreditUser creditUser = new CreditUser();
+        creditUser.setIdCard(idCard);
+        creditUser = creditUserMapper.selectCreditUser(creditUser);
+
+        //获取政策列表
+        List<PolicyMenu> policyMenus =  policyMenuMapper.selectPolicyMenuList(new PolicyMenu());
+        //获取所有子集
+        List<PolicyMenu> policyMenuZs = new ArrayList<>();
+        for (PolicyMenu policyMenu : policyMenus) {
+            if(policyMenu.getParentId() != 0){
+                policyMenuZs.add(policyMenu);
+            }
+        }
+        List<Map<String,Object>> maps = new ArrayList<>();
+
+        for (PolicyMenu policyMenuZ : policyMenuZs) {
+            Map<String,Object> map = new HashMap<>();
+            //二级标题类别id
+            map.put("menuId",policyMenuZ.getMenuId());
+            //人员信用等级
+            map.put("creditLevel",creditUser.getCreditLevel());
+
+            //二级标题
+            map.put("twoTitle",policyMenuZ.getMenuName());
+            //有效期限
+            map.put("validTerm",DateUtils.getCurrentYear()+"-12-31");
+
+            for (PolicyMenu policyMenu : policyMenus) {
+                //一及列表
+                if(policyMenuZ.getParentId().equals(policyMenu.getMenuId())){
+                    map.put("oneTitle",policyMenu.getMenuName());
+                    break;
+                }
+            }
+            //查询次数
+            InterestsNumberTable interestsNumberTable = interestsNumberTableMapper.selectInterestsNumberTableByPolicyId(policyMenuZ.getMenuId(),creditUser.getCreditLevel());
+            if(interestsNumberTable!=null){
+                if(interestsNumberTable.getNumber()!=null && interestsNumberTable.getNumber()!=0){
+                    map.put("total",interestsNumberTable.getNumber());
+                    //查询该用户已在该商家使用次数(按年来查询)
+                    String year =DateUtils.getCurrentYear();
+                    int count = usageRecordMapper.selectUsageRecordByRecordNum(creditUser.getPhoneNum(),policyMenuZ.getMenuId(),year);
+                    map.put("remaining",interestsNumberTable.getNumber()-count);
+                }else{
+                    map.put("total","无限次");
+                    map.put("remaining","无限次");
+                }
+            }else{
+                map.put("total","无限次");
+                map.put("remaining","无限次");
+            }
+            maps.add(map);
+        }
+
+        return AjaxResult.success("操作成功 ",maps);
+    }
+
 
     /**
      * 构建前端所需要树结构

+ 93 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SettledMerchantsInterestsServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.SettledMerchantsInterestsMapper;
+import com.ruoyi.system.domain.SettledMerchantsInterests;
+import com.ruoyi.system.service.ISettledMerchantsInterestsService;
+
+/**
+ * 商户-政策类型Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2022-07-11
+ */
+@Service
+public class SettledMerchantsInterestsServiceImpl implements ISettledMerchantsInterestsService 
+{
+    @Autowired
+    private SettledMerchantsInterestsMapper settledMerchantsInterestsMapper;
+
+    /**
+     * 查询商户-政策类型
+     * 
+     * @param id 商户-政策类型主键
+     * @return 商户-政策类型
+     */
+    @Override
+    public SettledMerchantsInterests selectSettledMerchantsInterestsById(Long id)
+    {
+        return settledMerchantsInterestsMapper.selectSettledMerchantsInterestsById(id);
+    }
+
+    /**
+     * 查询商户-政策类型列表
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 商户-政策类型
+     */
+    @Override
+    public List<SettledMerchantsInterests> selectSettledMerchantsInterestsList(SettledMerchantsInterests settledMerchantsInterests)
+    {
+        return settledMerchantsInterestsMapper.selectSettledMerchantsInterestsList(settledMerchantsInterests);
+    }
+
+    /**
+     * 新增商户-政策类型
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 结果
+     */
+    @Override
+    public int insertSettledMerchantsInterests(SettledMerchantsInterests settledMerchantsInterests)
+    {
+        return settledMerchantsInterestsMapper.insertSettledMerchantsInterests(settledMerchantsInterests);
+    }
+
+    /**
+     * 修改商户-政策类型
+     * 
+     * @param settledMerchantsInterests 商户-政策类型
+     * @return 结果
+     */
+    @Override
+    public int updateSettledMerchantsInterests(SettledMerchantsInterests settledMerchantsInterests)
+    {
+        return settledMerchantsInterestsMapper.updateSettledMerchantsInterests(settledMerchantsInterests);
+    }
+
+    /**
+     * 批量删除商户-政策类型
+     * 
+     * @param ids 需要删除的商户-政策类型主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSettledMerchantsInterestsByIds(Long[] ids)
+    {
+        return settledMerchantsInterestsMapper.deleteSettledMerchantsInterestsByIds(ids);
+    }
+
+    /**
+     * 删除商户-政策类型信息
+     * 
+     * @param id 商户-政策类型主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSettledMerchantsInterestsById(Long id)
+    {
+        return settledMerchantsInterestsMapper.deleteSettledMerchantsInterestsById(id);
+    }
+}

+ 102 - 5
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SettledMerchantsServiceImpl.java

@@ -1,12 +1,26 @@
 package com.ruoyi.system.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
+
+import com.github.pagehelper.PageHelper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.PolicyMenu;
+import com.ruoyi.common.core.page.PageDomain;
+import com.ruoyi.common.core.page.TableSupport;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.ObjectUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.sql.SqlUtil;
+import com.ruoyi.system.domain.SettledMerchantsInterests;
+import com.ruoyi.system.mapper.PolicyMenuMapper;
+import com.ruoyi.system.mapper.SettledMerchantsInterestsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.SettledMerchantsMapper;
 import com.ruoyi.system.domain.SettledMerchants;
 import com.ruoyi.system.service.ISettledMerchantsService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 入驻商家Service业务层处理
@@ -19,6 +33,10 @@ public class SettledMerchantsServiceImpl implements ISettledMerchantsService
 {
     @Autowired
     private SettledMerchantsMapper settledMerchantsMapper;
+    @Autowired
+    private SettledMerchantsInterestsMapper settledMerchantsInterestsMapper;
+    @Autowired
+    private PolicyMenuMapper policyMenuMapper;
 
     /**
      * 查询入驻商家
@@ -29,7 +47,10 @@ public class SettledMerchantsServiceImpl implements ISettledMerchantsService
     @Override
     public SettledMerchants selectSettledMerchantsByBusinessId(Long businessId)
     {
-        return settledMerchantsMapper.selectSettledMerchantsByBusinessId(businessId);
+        SettledMerchants settledMerchants = settledMerchantsMapper.selectSettledMerchantsByBusinessId(businessId);
+        List<Long> menuIdList = ObjectUtils.map(settledMerchants.getSettledMerchantsInterestsList(), SettledMerchantsInterests::getMenuId);
+        settledMerchants.setMenuIdList(menuIdList);
+        return settledMerchants;
     }
 
     /**
@@ -39,7 +60,21 @@ public class SettledMerchantsServiceImpl implements ISettledMerchantsService
      */
     @Override
     public List<SettledMerchants> selectSettledMerchantsByMenuId(Long menuId) {
-        return settledMerchantsMapper.selectSettledMerchantsByMenuId(menuId);
+
+        List<SettledMerchants> settledMerchantsList = settledMerchantsMapper.selectSettledMerchantsByMenuId(menuId);
+        //拼接政策类别
+        for (SettledMerchants settledMerchants : settledMerchantsList) {
+            StringBuilder sb = new StringBuilder();
+            for (int i=0;i<settledMerchants.getSettledMerchantsInterestsList().size();i++) {
+                if(i==0){
+                    sb.append(settledMerchants.getSettledMerchantsInterestsList().get(i).getMenuName());
+                }else{
+                    sb.append(",").append(settledMerchants.getSettledMerchantsInterestsList().get(i).getMenuName());
+                }
+            }
+            settledMerchants.setMenuNames(sb.toString());
+        }
+        return settledMerchantsList;
     }
 
     /**
@@ -51,7 +86,22 @@ public class SettledMerchantsServiceImpl implements ISettledMerchantsService
     @Override
     public List<SettledMerchants> selectSettledMerchantsList(SettledMerchants settledMerchants)
     {
-        return settledMerchantsMapper.selectSettledMerchantsList(settledMerchants);
+
+        startPage();
+        List<SettledMerchants> settledMerchantsList = settledMerchantsMapper.selectSettledMerchantsList(settledMerchants);
+        //拼接政策类别
+        for (SettledMerchants settledMerchant : settledMerchantsList) {
+            StringBuilder sb = new StringBuilder();
+            for (int i=0;i<settledMerchant.getSettledMerchantsInterestsList().size();i++) {
+                if(i==0){
+                    sb.append(settledMerchant.getSettledMerchantsInterestsList().get(i).getMenuName());
+                }else{
+                    sb.append(",").append(settledMerchant.getSettledMerchantsInterestsList().get(i).getMenuName());
+                }
+            }
+            settledMerchants.setMenuNames(sb.toString());
+        }
+        return settledMerchantsList;
     }
 
     /**
@@ -61,10 +111,32 @@ public class SettledMerchantsServiceImpl implements ISettledMerchantsService
      * @return 结果
      */
     @Override
-    public int insertSettledMerchants(SettledMerchants settledMerchants)
+    public AjaxResult insertSettledMerchants(SettledMerchants settledMerchants)
     {
+
+        //List<SettledMerchantsInterests> settledMerchantsInterestsList = settledMerchants.getSettledMerchantsInterestsList();
+        //查询政策类别上一级
+        PolicyMenu policyMenub = policyMenuMapper.selectPolicyMenuByMenuId(settledMerchants.getMenuIdList().get(0));
+        PolicyMenu policyMenup = policyMenuMapper.selectPolicyMenuByMenuId(policyMenub.getParentId());
+        if(policyMenup == null){
+            settledMerchants.setPolicyId(Math.toIntExact(policyMenub.getMenuId()));
+        }else{
+            settledMerchants.setPolicyId(Math.toIntExact(policyMenup.getMenuId()));
+        }
         settledMerchants.setCreateTime(DateUtils.getNowDate());
-        return settledMerchantsMapper.insertSettledMerchants(settledMerchants);
+        int count = settledMerchantsMapper.insertSettledMerchants(settledMerchants);
+        if (count < 1) return AjaxResult.error("新增失败");
+        int childCount = 0;
+        for (Long aLong : settledMerchants.getMenuIdList()) {
+            //通过id查询类别名称
+            PolicyMenu policyMenu = policyMenuMapper.selectPolicyMenuByMenuId(aLong);
+            SettledMerchantsInterests settledMerchantsInterests = new SettledMerchantsInterests();
+            settledMerchantsInterests.setBusinessId(settledMerchants.getBusinessId());
+            settledMerchantsInterests.setMenuId(policyMenu.getMenuId());
+            settledMerchantsInterests.setMenuName(policyMenu.getMenuName());
+            childCount +=  settledMerchantsInterestsMapper.insertSettledMerchantsInterests(settledMerchantsInterests);
+        }
+        return childCount > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
     /**
@@ -74,8 +146,23 @@ public class SettledMerchantsServiceImpl implements ISettledMerchantsService
      * @return 结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int updateSettledMerchants(SettledMerchants settledMerchants)
     {
+        //先删除商户-政策类型表
+
+        settledMerchantsInterestsMapper.delectByBusinessId(settledMerchants.getBusinessId());
+
+        for (Long aLong : settledMerchants.getMenuIdList()) {
+            //通过id查询类别名称
+            PolicyMenu policyMenu = policyMenuMapper.selectPolicyMenuByMenuId(aLong);
+            SettledMerchantsInterests settledMerchantsInterests = new SettledMerchantsInterests();
+            settledMerchantsInterests.setBusinessId(settledMerchants.getBusinessId());
+            settledMerchantsInterests.setMenuId(policyMenu.getMenuId());
+            settledMerchantsInterests.setMenuName(policyMenu.getMenuName());
+            settledMerchantsInterestsMapper.insertSettledMerchantsInterests(settledMerchantsInterests);
+        }
+
         settledMerchants.setUpdateTime(DateUtils.getNowDate());
         return settledMerchantsMapper.updateSettledMerchants(settledMerchants);
     }
@@ -103,4 +190,14 @@ public class SettledMerchantsServiceImpl implements ISettledMerchantsService
     {
         return settledMerchantsMapper.deleteSettledMerchantsByBusinessId(businessId);
     }
+
+    private void startPage() {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
+            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
+            PageHelper.startPage(pageNum, pageSize, orderBy);
+        }
+    }
 }

+ 32 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UsageRecordServiceImpl.java

@@ -8,6 +8,10 @@ import java.util.stream.Collectors;
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.CreditUser;
+import com.ruoyi.system.domain.InterestsNumberTable;
+import com.ruoyi.system.mapper.CreditUserMapper;
+import com.ruoyi.system.mapper.InterestsNumberTableMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.UsageRecordMapper;
@@ -27,6 +31,10 @@ public class UsageRecordServiceImpl implements IUsageRecordService
 {
     @Autowired
     private UsageRecordMapper usageRecordMapper;
+    @Autowired
+    private CreditUserMapper creditUserMapper;
+    @Autowired
+    private InterestsNumberTableMapper interestsNumberTableMapper;
 
     /**
      * 查询使用记录
@@ -59,10 +67,32 @@ public class UsageRecordServiceImpl implements IUsageRecordService
      * @return 结果
      */
     @Override
-    public int insertUsageRecord(UsageRecord usageRecord)
+    public AjaxResult insertUsageRecord(UsageRecord usageRecord)
     {
+        //根据手机号查询使用人员信息
+        CreditUser creditUser = new CreditUser();
+        creditUser.setPhoneNum(usageRecord.getCreditPhone());
+        creditUser = creditUserMapper.selectCreditUser(creditUser);
+        //查询用户权益等级对应的商家权益次数
+        InterestsNumberTable interestsNumberTable = new InterestsNumberTable();
+        interestsNumberTable.setInterestsId(usageRecord.getInterestsId());
+        interestsNumberTable.setRightsRank(creditUser.getCreditLevel());
+        interestsNumberTable = interestsNumberTableMapper.selectInterestsNumberTable(interestsNumberTable);
+        //查询该用户已在该商家使用次数(按年来查询)
+        String year =DateUtils.getCurrentYear();
+        int count = usageRecordMapper.selectUsageRecordByRecordNum(usageRecord.getCreditPhone(),usageRecord.getInterestsId(),year);
+        int index = (int) (interestsNumberTable.getNumber() - count);
+        if(index<=0){
+            return AjaxResult.error("当前用户无优惠次数,核销失败");
+        }
+        usageRecord.setSurplusNum(String.valueOf(index));
+        usageRecord.setRecordYear(year);
+        usageRecord.setCreditId(creditUser.getId());
         usageRecord.setCreateTime(DateUtils.getNowDate());
-        return usageRecordMapper.insertUsageRecord(usageRecord);
+
+        int c = usageRecordMapper.insertUsageRecord(usageRecord);
+
+        return c > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
     /**

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

@@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectCreditUser" parameterType="CreditUser" resultMap="CreditUserResult">
-        select id,user_name,credit_score,credit_level,phone_num from credit_user
+        <include refid="selectCreditUserVo"/>
         <where>
             <if test="idCard != null  and idCard != ''"> and id_card = #{idCard}</if>
             <if test="phoneNum != null  and phoneNum != ''"> and phone_num = #{phoneNum}</if>

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

@@ -28,7 +28,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectInterestsNumberTableVo"/>
         where id = #{id}
     </select>
-        
+
+    <select id="selectInterestsNumberTable" parameterType="InterestsNumberTable" resultMap="InterestsNumberTableResult">
+        <include refid="selectInterestsNumberTableVo"/>
+        <where>
+            <if test="interestsId != null "> and interests_id = #{interestsId}</if>
+            <if test="rightsRank != null  and rightsRank != ''"> and rights_rank = #{rightsRank}</if>
+            <if test="number != null "> and number = #{number}</if>
+        </where>
+        limit 1
+    </select>
+    <select id="selectInterestsNumberTableByPolicyId" resultMap="InterestsNumberTableResult" >
+        select i.id, i.interests_id, i.rights_rank, i.number
+        from interests_number_table i
+        left join interests_table t on i.interests_id = t.id
+        where t.interests_policy_id = #{menuId} and i.rights_rank = #{creditLevel}
+        limit 1
+
+    </select>
+
     <insert id="insertInterestsNumberTable" parameterType="InterestsNumberTable">
         insert into interests_number_table
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 69 - 0
ruoyi-system/src/main/resources/mapper/system/SettledMerchantsInterestsMapper.xml

@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.SettledMerchantsInterestsMapper">
+    
+    <resultMap type="SettledMerchantsInterests" id="SettledMerchantsInterestsResult">
+        <result property="id"    column="id"    />
+        <result property="businessId"    column="business_id"    />
+        <result property="menuId"    column="menu_id"    />
+        <result property="menuName"    column="menu_name"    />
+    </resultMap>
+
+    <sql id="selectSettledMerchantsInterestsVo">
+        select id, business_id, menu_id, menu_name from settled_merchants_interests
+    </sql>
+
+    <select id="selectSettledMerchantsInterestsList" parameterType="SettledMerchantsInterests" resultMap="SettledMerchantsInterestsResult">
+        <include refid="selectSettledMerchantsInterestsVo"/>
+        <where>  
+            <if test="businessId != null "> and business_id = #{businessId}</if>
+            <if test="menuId != null "> and menu_id = #{menuId}</if>
+            <if test="menuName != null  and menuName != ''"> and menu_name like concat('%', #{menuName}, '%')</if>
+        </where>
+    </select>
+    
+    <select id="selectSettledMerchantsInterestsById" parameterType="Long" resultMap="SettledMerchantsInterestsResult">
+        <include refid="selectSettledMerchantsInterestsVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertSettledMerchantsInterests" parameterType="SettledMerchantsInterests" useGeneratedKeys="true" keyProperty="id">
+        insert into settled_merchants_interests
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="businessId != null">business_id,</if>
+            <if test="menuId != null">menu_id,</if>
+            <if test="menuName != null and menuName != ''">menu_name,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="businessId != null">#{businessId},</if>
+            <if test="menuId != null">#{menuId},</if>
+            <if test="menuName != null and menuName != ''">#{menuName},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSettledMerchantsInterests" parameterType="SettledMerchantsInterests">
+        update settled_merchants_interests
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="businessId != null">business_id = #{businessId},</if>
+            <if test="menuId != null">menu_id = #{menuId},</if>
+            <if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSettledMerchantsInterestsById" parameterType="Long">
+        delete from settled_merchants_interests where id = #{id}
+    </delete>
+
+    <delete id="deleteSettledMerchantsInterestsByIds" parameterType="String">
+        delete from settled_merchants_interests where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="delectByBusinessId" parameterType="java.lang.Long">
+        delete from settled_merchants_interests where business_id = #{businessId}
+    </delete>
+</mapper>

+ 27 - 6
ruoyi-system/src/main/resources/mapper/system/SettledMerchantsMapper.xml

@@ -21,6 +21,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime"    column="update_time"    />
         <result property="remark"    column="remark"    />
         <result property="policyId"    column="policy_id"    />
+
+        <collection property="settledMerchantsInterestsList" javaType="java.util.List" resultMap="SettledMerchantsInterestsResult"/>
+
+    </resultMap>
+
+    <resultMap type="SettledMerchantsInterests" id="SettledMerchantsInterestsResult">
+        <result property="id"    column="id"    />
+        <result property="businessId"    column="business_id"    />
+        <result property="menuId"    column="menu_id"    />
+        <result property="menuName"    column="menu_name"    />
     </resultMap>
 
     <sql id="selectSettledMerchantsVo">
@@ -28,18 +38,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <select id="selectSettledMerchantsList" parameterType="SettledMerchants" resultMap="SettledMerchantsResult">
-        <include refid="selectSettledMerchantsVo"/>
+        select s.business_id, s.business_name, s.business_introduce, s.business_address, s.business_phone,
+               s.business_policy, s.order_num, s.visible, s.status, s.photo, s.create_by, s.create_time,
+               s.update_by, s.update_time, s.remark,s.policy_id ,
+               i.id, i.business_id, i.menu_id, i.menu_name
+        from settled_merchants s
+        left join settled_merchants_interests i on s.business_id = i.business_id
+
         <where>
-            <if test="businessName != null  and businessName != ''"> and business_name like concat('%', #{businessName}, '%')</if>
-            <if test="businessPhone != null  and businessPhone != ''"> and business_phone = #{businessPhone}</if>
-            <if test="policyId != null  and policyId != ''"> and policy_id = #{policyId}</if>
+            <if test="businessName != null  and businessName != ''"> and s.business_name like concat('%', #{businessName}, '%')</if>
+            <if test="businessPhone != null  and businessPhone != ''"> and s.business_phone = #{businessPhone}</if>
+            <if test="policyId != null  and policyId != ''"> and s.policy_id = #{policyId}</if>
         </where>
         order by order_num
     </select>
     
     <select id="selectSettledMerchantsByBusinessId" parameterType="Long" resultMap="SettledMerchantsResult">
-        <include refid="selectSettledMerchantsVo"/>
-        where business_id = #{businessId}
+        select s.business_id, s.business_name, s.business_introduce, s.business_address, s.business_phone,
+               s.business_policy, s.order_num, s.visible, s.status, s.photo, s.create_by, s.create_time,
+               s.update_by, s.update_time, s.remark,s.policy_id ,
+               i.id, i.business_id, i.menu_id, i.menu_name
+        from settled_merchants s
+        left join settled_merchants_interests i on s.business_id = i.business_id
+        where s.business_id = #{businessId}
     </select>
 
 

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

@@ -6,12 +6,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <resultMap type="UsageRecord" id="UsageRecordResult">
         <result property="recordId"    column="record_id"    />
+
+        <result property="businessId"    column="business_id"    />
+        <result property="policyId"    column="policy_id"    />
+        <result property="interestsId"    column="interests_id"    />
+
         <result property="recordYear"    column="record_year"    />
         <result property="recordType"    column="record_type"    />
         <result property="recordName"    column="record_name"    />
         <result property="orderNum"    column="order_num"    />
         <result property="useNum"    column="use_num"    />
         <result property="creditId"    column="credit_id"    />
+        <result property="creditPhone"    column="credit_phone"    />
         <result property="surplusNum"    column="surplus_num"    />
         <result property="createBy"    column="create_by"    />
         <result property="createTime"    column="create_time"    />
@@ -21,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectUsageRecordVo">
-        select record_id, record_year, record_type, record_name, order_num, use_num, credit_id, surplus_num, create_by, create_time, update_by, update_time, remark from usage_record
+        select record_id,business_id,policy_id,interests_id, record_year, record_type, record_name, order_num, use_num, credit_id,credit_phone, surplus_num, create_by, create_time, update_by, update_time, remark from usage_record
     </sql>
 
     <select id="selectUsageRecordList" parameterType="UsageRecord" resultMap="UsageRecordResult">
@@ -42,15 +48,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by create_time DESC
     </select>
 
+    <select id="selectUsageRecordByRecordNum" resultType="java.lang.Integer">
+        select count(1) from usage_record where interests_id = #{interestsId} and record_year = #{year} and credit_phone = #{creditPhone}
+    </select>
+
     <insert id="insertUsageRecord" parameterType="UsageRecord" useGeneratedKeys="true" keyProperty="recordId">
         insert into usage_record
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="businessId != null and businessId != ''">business_id,</if>
+            <if test="policyId != null and policyId != ''">policy_id,</if>
+            <if test="interestsId != null and interestsId != ''">interests_id,</if>
+
             <if test="recordYear != null and recordYear != ''">record_year,</if>
             <if test="recordType != null and recordType != ''">record_type,</if>
             <if test="recordName != null">record_name,</if>
             <if test="orderNum != null">order_num,</if>
             <if test="useNum != null">use_num,</if>
             <if test="creditId != null">credit_id,</if>
+            <if test="creditPhone != null">credit_phone,</if>
             <if test="surplusNum != null">surplus_num,</if>
             <if test="createBy != null">create_by,</if>
             <if test="updateBy != null">update_by,</if>
@@ -59,12 +74,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             create_time
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+
+            <if test="businessId != null and businessId != ''">#{businessId},</if>
+            <if test="policyId != null and policyId != ''">#{policyId},</if>
+            <if test="interestsId != null and interestsId != ''">#{interestsId},</if>
+
             <if test="recordYear != null and recordYear != ''">#{recordYear},</if>
             <if test="recordType != null and recordType != ''">#{recordType},</if>
             <if test="recordName != null">#{recordName},</if>
             <if test="orderNum != null">#{orderNum},</if>
             <if test="useNum != null">#{useNum},</if>
             <if test="creditId != null">#{creditId},</if>
+            <if test="creditPhone != null">#{creditPhone},</if>
             <if test="surplusNum != null">#{surplusNum},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="updateBy != null">#{updateBy},</if>
@@ -77,12 +98,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateUsageRecord" parameterType="UsageRecord">
         update usage_record
         <trim prefix="SET" suffixOverrides=",">
+
+            <if test="businessId != null and businessId != ''">business_id = #{businessId},</if>
+            <if test="policyId != null and policyId != ''">policy_id = #{policyId},</if>
+            <if test="interestsId != null and interestsId != ''">interests_id = #{interestsId},</if>
+
             <if test="recordYear != null and recordYear != ''">record_year = #{recordYear},</if>
             <if test="recordType != null and recordType != ''">record_type = #{recordType},</if>
             <if test="recordName != null">record_name = #{recordName},</if>
             <if test="orderNum != null">order_num = #{orderNum},</if>
             <if test="useNum != null">use_num = #{useNum},</if>
             <if test="creditId != null">credit_id = #{creditId},</if>
+            <if test="creditPhone != null">credit_phone = #{creditPhone},</if>
             <if test="surplusNum != null">surplus_num = #{surplusNum},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>