Browse Source

商户管理、优惠活动、招聘服务

lchao 9 months ago
parent
commit
76bb1f3690
24 changed files with 2803 additions and 0 deletions
  1. 98 0
      zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkJczlDiscountController.java
  2. 108 0
      zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkJczlMerchantController.java
  3. 98 0
      zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkJczlRecruitController.java
  4. 123 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkJczlDiscount.java
  5. 99 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkJczlMerchant.java
  6. 99 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkJczlRecruit.java
  7. 61 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkJczlDiscountMapper.java
  8. 64 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkJczlMerchantMapper.java
  9. 61 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkJczlRecruitMapper.java
  10. 61 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkJczlDiscountService.java
  11. 63 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkJczlMerchantService.java
  12. 61 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkJczlRecruitService.java
  13. 89 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkJczlDiscountServiceImpl.java
  14. 95 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkJczlMerchantServiceImpl.java
  15. 89 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkJczlRecruitServiceImpl.java
  16. 183 0
      zhsq_qk-system/src/main/resources/mapper/system/QkJczlDiscountMapper.xml
  17. 149 0
      zhsq_qk-system/src/main/resources/mapper/system/QkJczlMerchantMapper.xml
  18. 137 0
      zhsq_qk-system/src/main/resources/mapper/system/QkJczlRecruitMapper.xml
  19. 44 0
      zhsq_qk-ui/src/api/system/discount.js
  20. 51 0
      zhsq_qk-ui/src/api/system/merchant.js
  21. 44 0
      zhsq_qk-ui/src/api/system/recruit.js
  22. 346 0
      zhsq_qk-ui/src/views/system/discount/index.vue
  23. 279 0
      zhsq_qk-ui/src/views/system/merchant/index.vue
  24. 301 0
      zhsq_qk-ui/src/views/system/recruit/index.vue

+ 98 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkJczlDiscountController.java

@@ -0,0 +1,98 @@
+package zhsq_qk.web.controller.system;
+
+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 zhsq_qk.common.annotation.Log;
+import zhsq_qk.common.core.controller.BaseController;
+import zhsq_qk.common.core.domain.AjaxResult;
+import zhsq_qk.common.enums.BusinessType;
+import zhsq_qk.system.domain.QkJczlDiscount;
+import zhsq_qk.system.service.IQkJczlDiscountService;
+import zhsq_qk.common.utils.poi.ExcelUtil;
+import zhsq_qk.common.core.page.TableDataInfo;
+
+/**
+ * 优惠活动Controller
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+@RestController
+@RequestMapping("/system/discount")
+public class QkJczlDiscountController extends BaseController {
+    @Autowired
+    private IQkJczlDiscountService qkJczlDiscountService;
+
+/**
+ * 查询优惠活动列表
+ */
+@PreAuthorize("@ss.hasPermi('system:discount:list')")
+@GetMapping("/list")
+    public TableDataInfo list(QkJczlDiscount qkJczlDiscount) {
+        startPage();
+        List<QkJczlDiscount> list = qkJczlDiscountService.selectQkJczlDiscountList(qkJczlDiscount);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出优惠活动列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:discount:export')")
+    @Log(title = "优惠活动", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkJczlDiscount qkJczlDiscount) {
+        List<QkJczlDiscount> list = qkJczlDiscountService.selectQkJczlDiscountList(qkJczlDiscount);
+        ExcelUtil<QkJczlDiscount> util = new ExcelUtil<QkJczlDiscount>(QkJczlDiscount. class);
+        util.exportExcel(response, list, "优惠活动数据");
+    }
+
+    /**
+     * 获取优惠活动详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:discount:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkJczlDiscountService.selectQkJczlDiscountById(id));
+    }
+
+    /**
+     * 新增优惠活动
+     */
+    @PreAuthorize("@ss.hasPermi('system:discount:add')")
+    @Log(title = "优惠活动", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkJczlDiscount qkJczlDiscount) {
+        return toAjax(qkJczlDiscountService.insertQkJczlDiscount(qkJczlDiscount));
+    }
+
+    /**
+     * 修改优惠活动
+     */
+    @PreAuthorize("@ss.hasPermi('system:discount:edit')")
+    @Log(title = "优惠活动", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkJczlDiscount qkJczlDiscount) {
+        return toAjax(qkJczlDiscountService.updateQkJczlDiscount(qkJczlDiscount));
+    }
+
+    /**
+     * 删除优惠活动
+     */
+    @PreAuthorize("@ss.hasPermi('system:discount:remove')")
+    @Log(title = "优惠活动", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkJczlDiscountService.deleteQkJczlDiscountByIds(ids));
+    }
+}

+ 108 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkJczlMerchantController.java

@@ -0,0 +1,108 @@
+package zhsq_qk.web.controller.system;
+
+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 zhsq_qk.common.annotation.Log;
+import zhsq_qk.common.core.controller.BaseController;
+import zhsq_qk.common.core.domain.AjaxResult;
+import zhsq_qk.common.enums.BusinessType;
+import zhsq_qk.system.domain.QkJczlMerchant;
+import zhsq_qk.system.domain.SysPoliceStation;
+import zhsq_qk.system.service.IQkJczlMerchantService;
+import zhsq_qk.common.utils.poi.ExcelUtil;
+import zhsq_qk.common.core.page.TableDataInfo;
+
+/**
+ * 商户管理Controller
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+@RestController
+@RequestMapping("/system/merchant")
+public class QkJczlMerchantController extends BaseController {
+    @Autowired
+    private IQkJczlMerchantService qkJczlMerchantService;
+
+/**
+ * 查询商户管理列表
+ */
+@PreAuthorize("@ss.hasPermi('system:merchant:list')")
+@GetMapping("/list")
+    public TableDataInfo list(QkJczlMerchant qkJczlMerchant) {
+        startPage();
+        List<QkJczlMerchant> list = qkJczlMerchantService.selectQkJczlMerchantList(qkJczlMerchant);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出商户管理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:merchant:export')")
+    @Log(title = "商户管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkJczlMerchant qkJczlMerchant) {
+        List<QkJczlMerchant> list = qkJczlMerchantService.selectQkJczlMerchantList(qkJczlMerchant);
+        ExcelUtil<QkJczlMerchant> util = new ExcelUtil<QkJczlMerchant>(QkJczlMerchant. class);
+        util.exportExcel(response, list, "商户管理数据");
+    }
+
+    /**
+     * 获取商户管理详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:merchant:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkJczlMerchantService.selectQkJczlMerchantById(id));
+    }
+
+    /**
+     * 新增商户管理
+     */
+    @PreAuthorize("@ss.hasPermi('system:merchant:add')")
+    @Log(title = "商户管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkJczlMerchant qkJczlMerchant) {
+        return toAjax(qkJczlMerchantService.insertQkJczlMerchant(qkJczlMerchant));
+    }
+
+    /**
+     * 修改商户管理
+     */
+    @PreAuthorize("@ss.hasPermi('system:merchant:edit')")
+    @Log(title = "商户管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkJczlMerchant qkJczlMerchant) {
+        return toAjax(qkJczlMerchantService.updateQkJczlMerchant(qkJczlMerchant));
+    }
+
+    /**
+     * 删除商户管理
+     */
+    @PreAuthorize("@ss.hasPermi('system:merchant:remove')")
+    @Log(title = "商户管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkJczlMerchantService.deleteQkJczlMerchantByIds(ids));
+    }
+
+    /**
+     * 查询商户管理列表
+     */
+    @GetMapping("/allList")
+    public AjaxResult allList() {
+        List<QkJczlMerchant> list = qkJczlMerchantService.selectQkJczlMerchantAllList();
+        return AjaxResult.success(list);
+    }
+}

+ 98 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkJczlRecruitController.java

@@ -0,0 +1,98 @@
+package zhsq_qk.web.controller.system;
+
+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 zhsq_qk.common.annotation.Log;
+import zhsq_qk.common.core.controller.BaseController;
+import zhsq_qk.common.core.domain.AjaxResult;
+import zhsq_qk.common.enums.BusinessType;
+import zhsq_qk.system.domain.QkJczlRecruit;
+import zhsq_qk.system.service.IQkJczlRecruitService;
+import zhsq_qk.common.utils.poi.ExcelUtil;
+import zhsq_qk.common.core.page.TableDataInfo;
+
+/**
+ * 招聘服务Controller
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+@RestController
+@RequestMapping("/system/recruit")
+public class QkJczlRecruitController extends BaseController {
+    @Autowired
+    private IQkJczlRecruitService qkJczlRecruitService;
+
+/**
+ * 查询招聘服务列表
+ */
+@PreAuthorize("@ss.hasPermi('system:recruit:list')")
+@GetMapping("/list")
+    public TableDataInfo list(QkJczlRecruit qkJczlRecruit) {
+        startPage();
+        List<QkJczlRecruit> list = qkJczlRecruitService.selectQkJczlRecruitList(qkJczlRecruit);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出招聘服务列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:recruit:export')")
+    @Log(title = "招聘服务", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkJczlRecruit qkJczlRecruit) {
+        List<QkJczlRecruit> list = qkJczlRecruitService.selectQkJczlRecruitList(qkJczlRecruit);
+        ExcelUtil<QkJczlRecruit> util = new ExcelUtil<QkJczlRecruit>(QkJczlRecruit. class);
+        util.exportExcel(response, list, "招聘服务数据");
+    }
+
+    /**
+     * 获取招聘服务详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:recruit:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkJczlRecruitService.selectQkJczlRecruitById(id));
+    }
+
+    /**
+     * 新增招聘服务
+     */
+    @PreAuthorize("@ss.hasPermi('system:recruit:add')")
+    @Log(title = "招聘服务", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkJczlRecruit qkJczlRecruit) {
+        return toAjax(qkJczlRecruitService.insertQkJczlRecruit(qkJczlRecruit));
+    }
+
+    /**
+     * 修改招聘服务
+     */
+    @PreAuthorize("@ss.hasPermi('system:recruit:edit')")
+    @Log(title = "招聘服务", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkJczlRecruit qkJczlRecruit) {
+        return toAjax(qkJczlRecruitService.updateQkJczlRecruit(qkJczlRecruit));
+    }
+
+    /**
+     * 删除招聘服务
+     */
+    @PreAuthorize("@ss.hasPermi('system:recruit:remove')")
+    @Log(title = "招聘服务", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkJczlRecruitService.deleteQkJczlRecruitByIds(ids));
+    }
+}

+ 123 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkJczlDiscount.java

@@ -0,0 +1,123 @@
+package zhsq_qk.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import zhsq_qk.common.annotation.Excel;
+import zhsq_qk.common.core.domain.BaseEntity;
+
+/**
+ * 优惠活动对象 qk_jczl_discount
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public class QkJczlDiscount extends BaseEntity
+        {
+private static final long serialVersionUID = 1L;
+
+        /** 主键id */
+        private Long id;
+
+        /** 活动类型 */
+                @Excel(name = "活动类型")
+        private String activityType;
+
+        /** 产品类型 */
+                @Excel(name = "产品类型")
+        private String productType;
+
+        /** 标题 */
+                @Excel(name = "标题")
+        private String activityTitle;
+
+        /** 商家 */
+                @Excel(name = "商家")
+        private String business;
+
+        /** 详情 */
+                @Excel(name = "详情")
+        private String details;
+
+        /** 地址 */
+                @Excel(name = "地址")
+        private String address;
+
+        /** 商户id */
+                @Excel(name = "商户id")
+        private String merchantId;
+
+        public void setId(Long id) {
+            this.id = id;
+        }
+
+        public Long getId() {
+            return id;
+        }
+        public void setActivityType(String activityType) {
+            this.activityType = activityType;
+        }
+
+        public String getActivityType() {
+            return activityType;
+        }
+        public void setProductType(String productType) {
+            this.productType = productType;
+        }
+
+        public String getProductType() {
+            return productType;
+        }
+        public void setactivityTitle(String activityTitle) {
+            this.activityTitle = activityTitle;
+        }
+
+        public String getactivityTitle() {
+            return activityTitle;
+        }
+        public void setBusiness(String business) {
+            this.business = business;
+        }
+
+        public String getBusiness() {
+            return business;
+        }
+        public void setDetails(String details) {
+            this.details = details;
+        }
+
+        public String getDetails() {
+            return details;
+        }
+        public void setAddress(String address) {
+            this.address = address;
+        }
+
+        public String getAddress() {
+            return address;
+        }
+        public void setMerchantId(String merchantId) {
+            this.merchantId = merchantId;
+        }
+
+        public String getMerchantId() {
+            return merchantId;
+        }
+
+@Override
+public String toString() {
+    return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+        .append("id", getId())
+        .append("activityType", getActivityType())
+        .append("productType", getProductType())
+        .append("activityTitle", getactivityTitle())
+        .append("business", getBusiness())
+        .append("details", getDetails())
+        .append("address", getAddress())
+        .append("createBy", getCreateBy())
+        .append("createTime", getCreateTime())
+        .append("updateBy", getUpdateBy())
+        .append("updateTime", getUpdateTime())
+        .append("merchantId", getMerchantId())
+            .toString();
+}
+}

+ 99 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkJczlMerchant.java

@@ -0,0 +1,99 @@
+package zhsq_qk.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import zhsq_qk.common.annotation.Excel;
+import zhsq_qk.common.core.domain.BaseEntity;
+
+/**
+ * 商户管理对象 qk_jczl_merchant
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public class QkJczlMerchant extends BaseEntity
+        {
+private static final long serialVersionUID = 1L;
+
+        /** 主键id */
+        private Long id;
+
+        /** 商户名称 */
+                @Excel(name = "商户名称")
+        private String merchantName;
+
+        /** 简介 */
+                @Excel(name = "简介")
+        private String blurb;
+
+        /** 地址 */
+                @Excel(name = "地址")
+        private String address;
+
+        /** 联系人 */
+                @Excel(name = "联系人")
+        private String contacts;
+
+        /** 联系电话 */
+                @Excel(name = "联系电话")
+        private String phone;
+
+        public void setId(Long id) {
+            this.id = id;
+        }
+
+        public Long getId() {
+            return id;
+        }
+        public void setMerchantName(String merchantName) {
+            this.merchantName = merchantName;
+        }
+
+        public String getMerchantName() {
+            return merchantName;
+        }
+        public void setBlurb(String blurb) {
+            this.blurb = blurb;
+        }
+
+        public String getBlurb() {
+            return blurb;
+        }
+        public void setAddress(String address) {
+            this.address = address;
+        }
+
+        public String getAddress() {
+            return address;
+        }
+        public void setContacts(String contacts) {
+            this.contacts = contacts;
+        }
+
+        public String getContacts() {
+            return contacts;
+        }
+        public void setPhone(String phone) {
+            this.phone = phone;
+        }
+
+        public String getPhone() {
+            return phone;
+        }
+
+@Override
+public String toString() {
+    return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+        .append("id", getId())
+        .append("merchantName", getMerchantName())
+        .append("blurb", getBlurb())
+        .append("address", getAddress())
+        .append("contacts", getContacts())
+        .append("phone", getPhone())
+        .append("createBy", getCreateBy())
+        .append("createTime", getCreateTime())
+        .append("updateBy", getUpdateBy())
+        .append("updateTime", getUpdateTime())
+            .toString();
+}
+}

+ 99 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkJczlRecruit.java

@@ -0,0 +1,99 @@
+package zhsq_qk.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import zhsq_qk.common.annotation.Excel;
+import zhsq_qk.common.core.domain.BaseEntity;
+
+/**
+ * 招聘服务对象 qk_jczl_recruit
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public class QkJczlRecruit extends BaseEntity
+        {
+private static final long serialVersionUID = 1L;
+
+        /** 主键id */
+        private Long id;
+
+        /** 招聘类型 */
+                @Excel(name = "招聘类型")
+        private String recruitmentType;
+
+        /** 标题 */
+                @Excel(name = "标题")
+        private String recruitmentTitle;
+
+        /** 招聘人数 */
+                @Excel(name = "招聘人数")
+        private Long recruitmentNum;
+
+        /** 地址 */
+                @Excel(name = "地址")
+        private String address;
+
+        /** 详情 */
+                @Excel(name = "详情")
+        private String details;
+
+
+        public void setId(Long id) {
+            this.id = id;
+        }
+
+        public Long getId() {
+            return id;
+        }
+        public void setRecruitmentType(String recruitmentType) {
+            this.recruitmentType = recruitmentType;
+        }
+
+        public String getRecruitmentType() {
+            return recruitmentType;
+        }
+        public void setRecruitmentTitle(String recruitmentTitle) {
+            this.recruitmentTitle = recruitmentTitle;
+        }
+
+        public String getRecruitmentTitle() {
+            return recruitmentTitle;
+        }
+        public void setRecruitmentNum(Long recruitmentNum) {
+            this.recruitmentNum = recruitmentNum;
+        }
+
+        public Long getRecruitmentNum() {
+            return recruitmentNum;
+        }
+        public void setAddress(String address) {
+            this.address = address;
+        }
+
+        public String getAddress() {
+            return address;
+        }
+        public void setDetails(String details) {
+            this.details = details;
+        }
+
+        public String getDetails() {
+            return details;
+        }
+
+@Override
+public String toString() {
+    return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+        .append("id", getId())
+        .append("recruitmentType", getRecruitmentType())
+        .append("recruitmentTitle", getRecruitmentTitle())
+        .append("recruitmentNum", getRecruitmentNum())
+        .append("address", getAddress())
+        .append("details", getDetails())
+        .append("createTime", getCreateTime())
+        .append("updateBy", getUpdateBy())
+        .append("updateTime", getUpdateTime())
+            .toString();
+}
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkJczlDiscountMapper.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.mapper;
+
+import java.util.List;
+
+import zhsq_qk.system.domain.QkJczlDiscount;
+
+/**
+ * 优惠活动Mapper接口
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public interface QkJczlDiscountMapper {
+    /**
+     * 查询优惠活动
+     *
+     * @param id 优惠活动主键
+     * @return 优惠活动
+     */
+    public QkJczlDiscount selectQkJczlDiscountById(Long id);
+
+    /**
+     * 查询优惠活动列表
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 优惠活动集合
+     */
+    public List<QkJczlDiscount> selectQkJczlDiscountList(QkJczlDiscount qkJczlDiscount);
+
+    /**
+     * 新增优惠活动
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 结果
+     */
+    public int insertQkJczlDiscount(QkJczlDiscount qkJczlDiscount);
+
+    /**
+     * 修改优惠活动
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 结果
+     */
+    public int updateQkJczlDiscount(QkJczlDiscount qkJczlDiscount);
+
+    /**
+     * 删除优惠活动
+     *
+     * @param id 优惠活动主键
+     * @return 结果
+     */
+    public int deleteQkJczlDiscountById(Long id);
+
+    /**
+     * 批量删除优惠活动
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkJczlDiscountByIds(Long[] ids);
+}

+ 64 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkJczlMerchantMapper.java

@@ -0,0 +1,64 @@
+package zhsq_qk.system.mapper;
+
+import java.util.List;
+
+import zhsq_qk.system.domain.QkJczlMerchant;
+import zhsq_qk.system.domain.SysPoliceStation;
+
+/**
+ * 商户管理Mapper接口
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public interface QkJczlMerchantMapper {
+    /**
+     * 查询商户管理
+     *
+     * @param id 商户管理主键
+     * @return 商户管理
+     */
+    public QkJczlMerchant selectQkJczlMerchantById(Long id);
+
+    /**
+     * 查询商户管理列表
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 商户管理集合
+     */
+    public List<QkJczlMerchant> selectQkJczlMerchantList(QkJczlMerchant qkJczlMerchant);
+
+    /**
+     * 新增商户管理
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 结果
+     */
+    public int insertQkJczlMerchant(QkJczlMerchant qkJczlMerchant);
+
+    /**
+     * 修改商户管理
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 结果
+     */
+    public int updateQkJczlMerchant(QkJczlMerchant qkJczlMerchant);
+
+    /**
+     * 删除商户管理
+     *
+     * @param id 商户管理主键
+     * @return 结果
+     */
+    public int deleteQkJczlMerchantById(Long id);
+
+    /**
+     * 批量删除商户管理
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkJczlMerchantByIds(Long[] ids);
+
+    List<QkJczlMerchant> selectQkJczlMerchantAllList();
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkJczlRecruitMapper.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.mapper;
+
+import java.util.List;
+
+import zhsq_qk.system.domain.QkJczlRecruit;
+
+/**
+ * 招聘服务Mapper接口
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public interface QkJczlRecruitMapper {
+    /**
+     * 查询招聘服务
+     *
+     * @param id 招聘服务主键
+     * @return 招聘服务
+     */
+    public QkJczlRecruit selectQkJczlRecruitById(Long id);
+
+    /**
+     * 查询招聘服务列表
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 招聘服务集合
+     */
+    public List<QkJczlRecruit> selectQkJczlRecruitList(QkJczlRecruit qkJczlRecruit);
+
+    /**
+     * 新增招聘服务
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 结果
+     */
+    public int insertQkJczlRecruit(QkJczlRecruit qkJczlRecruit);
+
+    /**
+     * 修改招聘服务
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 结果
+     */
+    public int updateQkJczlRecruit(QkJczlRecruit qkJczlRecruit);
+
+    /**
+     * 删除招聘服务
+     *
+     * @param id 招聘服务主键
+     * @return 结果
+     */
+    public int deleteQkJczlRecruitById(Long id);
+
+    /**
+     * 批量删除招聘服务
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkJczlRecruitByIds(Long[] ids);
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkJczlDiscountService.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.service;
+
+import java.util.List;
+
+import zhsq_qk.system.domain .QkJczlDiscount;
+
+/**
+ * 优惠活动Service接口
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public interface IQkJczlDiscountService {
+    /**
+     * 查询优惠活动
+     *
+     * @param id 优惠活动主键
+     * @return 优惠活动
+     */
+    public QkJczlDiscount selectQkJczlDiscountById(Long id);
+
+    /**
+     * 查询优惠活动列表
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 优惠活动集合
+     */
+    public List<QkJczlDiscount> selectQkJczlDiscountList(QkJczlDiscount qkJczlDiscount);
+
+    /**
+     * 新增优惠活动
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 结果
+     */
+    public int insertQkJczlDiscount(QkJczlDiscount qkJczlDiscount);
+
+    /**
+     * 修改优惠活动
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 结果
+     */
+    public int updateQkJczlDiscount(QkJczlDiscount qkJczlDiscount);
+
+    /**
+     * 批量删除优惠活动
+     *
+     * @param ids 需要删除的优惠活动主键集合
+     * @return 结果
+     */
+    public int deleteQkJczlDiscountByIds(Long[] ids);
+
+    /**
+     * 删除优惠活动信息
+     *
+     * @param id 优惠活动主键
+     * @return 结果
+     */
+    public int deleteQkJczlDiscountById(Long id);
+}

+ 63 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkJczlMerchantService.java

@@ -0,0 +1,63 @@
+package zhsq_qk.system.service;
+
+import java.util.List;
+
+import zhsq_qk.system.domain .QkJczlMerchant;
+
+/**
+ * 商户管理Service接口
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public interface IQkJczlMerchantService {
+    /**
+     * 查询商户管理
+     *
+     * @param id 商户管理主键
+     * @return 商户管理
+     */
+    public QkJczlMerchant selectQkJczlMerchantById(Long id);
+
+    /**
+     * 查询商户管理列表
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 商户管理集合
+     */
+    public List<QkJczlMerchant> selectQkJczlMerchantList(QkJczlMerchant qkJczlMerchant);
+
+    /**
+     * 新增商户管理
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 结果
+     */
+    public int insertQkJczlMerchant(QkJczlMerchant qkJczlMerchant);
+
+    /**
+     * 修改商户管理
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 结果
+     */
+    public int updateQkJczlMerchant(QkJczlMerchant qkJczlMerchant);
+
+    /**
+     * 批量删除商户管理
+     *
+     * @param ids 需要删除的商户管理主键集合
+     * @return 结果
+     */
+    public int deleteQkJczlMerchantByIds(Long[] ids);
+
+    /**
+     * 删除商户管理信息
+     *
+     * @param id 商户管理主键
+     * @return 结果
+     */
+    public int deleteQkJczlMerchantById(Long id);
+
+    List<QkJczlMerchant> selectQkJczlMerchantAllList();
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkJczlRecruitService.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.service;
+
+import java.util.List;
+
+import zhsq_qk.system.domain .QkJczlRecruit;
+
+/**
+ * 招聘服务Service接口
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+public interface IQkJczlRecruitService {
+    /**
+     * 查询招聘服务
+     *
+     * @param id 招聘服务主键
+     * @return 招聘服务
+     */
+    public QkJczlRecruit selectQkJczlRecruitById(Long id);
+
+    /**
+     * 查询招聘服务列表
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 招聘服务集合
+     */
+    public List<QkJczlRecruit> selectQkJczlRecruitList(QkJczlRecruit qkJczlRecruit);
+
+    /**
+     * 新增招聘服务
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 结果
+     */
+    public int insertQkJczlRecruit(QkJczlRecruit qkJczlRecruit);
+
+    /**
+     * 修改招聘服务
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 结果
+     */
+    public int updateQkJczlRecruit(QkJczlRecruit qkJczlRecruit);
+
+    /**
+     * 批量删除招聘服务
+     *
+     * @param ids 需要删除的招聘服务主键集合
+     * @return 结果
+     */
+    public int deleteQkJczlRecruitByIds(Long[] ids);
+
+    /**
+     * 删除招聘服务信息
+     *
+     * @param id 招聘服务主键
+     * @return 结果
+     */
+    public int deleteQkJczlRecruitById(Long id);
+}

+ 89 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkJczlDiscountServiceImpl.java

@@ -0,0 +1,89 @@
+package zhsq_qk.system.service.impl;
+
+import java.util.List;
+        import zhsq_qk.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.system.mapper.QkJczlDiscountMapper;
+import zhsq_qk.system.domain.QkJczlDiscount;
+import zhsq_qk.system.service.IQkJczlDiscountService;
+
+/**
+ * 优惠活动Service业务层处理
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+@Service
+public class QkJczlDiscountServiceImpl implements IQkJczlDiscountService {
+    @Autowired
+    private QkJczlDiscountMapper qkJczlDiscountMapper;
+
+    /**
+     * 查询优惠活动
+     *
+     * @param id 优惠活动主键
+     * @return 优惠活动
+     */
+    @Override
+    public QkJczlDiscount selectQkJczlDiscountById(Long id) {
+        return qkJczlDiscountMapper.selectQkJczlDiscountById(id);
+    }
+
+    /**
+     * 查询优惠活动列表
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 优惠活动
+     */
+    @Override
+    public List<QkJczlDiscount> selectQkJczlDiscountList(QkJczlDiscount qkJczlDiscount) {
+        return qkJczlDiscountMapper.selectQkJczlDiscountList(qkJczlDiscount);
+    }
+
+    /**
+     * 新增优惠活动
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 结果
+     */
+    @Override
+    public int insertQkJczlDiscount(QkJczlDiscount qkJczlDiscount) {
+                qkJczlDiscount.setCreateTime(DateUtils.getNowDate());
+            return qkJczlDiscountMapper.insertQkJczlDiscount(qkJczlDiscount);
+    }
+
+    /**
+     * 修改优惠活动
+     *
+     * @param qkJczlDiscount 优惠活动
+     * @return 结果
+     */
+    @Override
+    public int updateQkJczlDiscount(QkJczlDiscount qkJczlDiscount) {
+                qkJczlDiscount.setUpdateTime(DateUtils.getNowDate());
+        return qkJczlDiscountMapper.updateQkJczlDiscount(qkJczlDiscount);
+    }
+
+    /**
+     * 批量删除优惠活动
+     *
+     * @param ids 需要删除的优惠活动主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkJczlDiscountByIds(Long[] ids) {
+        return qkJczlDiscountMapper.deleteQkJczlDiscountByIds(ids);
+    }
+
+    /**
+     * 删除优惠活动信息
+     *
+     * @param id 优惠活动主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkJczlDiscountById(Long id) {
+        return qkJczlDiscountMapper.deleteQkJczlDiscountById(id);
+    }
+}

+ 95 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkJczlMerchantServiceImpl.java

@@ -0,0 +1,95 @@
+package zhsq_qk.system.service.impl;
+
+import java.util.List;
+        import zhsq_qk.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.system.domain.SysPoliceStation;
+import zhsq_qk.system.mapper.QkJczlMerchantMapper;
+import zhsq_qk.system.domain.QkJczlMerchant;
+import zhsq_qk.system.service.IQkJczlMerchantService;
+
+/**
+ * 商户管理Service业务层处理
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+@Service
+public class QkJczlMerchantServiceImpl implements IQkJczlMerchantService {
+    @Autowired
+    private QkJczlMerchantMapper qkJczlMerchantMapper;
+
+    /**
+     * 查询商户管理
+     *
+     * @param id 商户管理主键
+     * @return 商户管理
+     */
+    @Override
+    public QkJczlMerchant selectQkJczlMerchantById(Long id) {
+        return qkJczlMerchantMapper.selectQkJczlMerchantById(id);
+    }
+
+    /**
+     * 查询商户管理列表
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 商户管理
+     */
+    @Override
+    public List<QkJczlMerchant> selectQkJczlMerchantList(QkJczlMerchant qkJczlMerchant) {
+        return qkJczlMerchantMapper.selectQkJczlMerchantList(qkJczlMerchant);
+    }
+
+    /**
+     * 新增商户管理
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 结果
+     */
+    @Override
+    public int insertQkJczlMerchant(QkJczlMerchant qkJczlMerchant) {
+                qkJczlMerchant.setCreateTime(DateUtils.getNowDate());
+            return qkJczlMerchantMapper.insertQkJczlMerchant(qkJczlMerchant);
+    }
+
+    /**
+     * 修改商户管理
+     *
+     * @param qkJczlMerchant 商户管理
+     * @return 结果
+     */
+    @Override
+    public int updateQkJczlMerchant(QkJczlMerchant qkJczlMerchant) {
+                qkJczlMerchant.setUpdateTime(DateUtils.getNowDate());
+        return qkJczlMerchantMapper.updateQkJczlMerchant(qkJczlMerchant);
+    }
+
+    /**
+     * 批量删除商户管理
+     *
+     * @param ids 需要删除的商户管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkJczlMerchantByIds(Long[] ids) {
+        return qkJczlMerchantMapper.deleteQkJczlMerchantByIds(ids);
+    }
+
+    /**
+     * 删除商户管理信息
+     *
+     * @param id 商户管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkJczlMerchantById(Long id) {
+        return qkJczlMerchantMapper.deleteQkJczlMerchantById(id);
+    }
+
+    @Override
+    public List<QkJczlMerchant> selectQkJczlMerchantAllList() {
+        return qkJczlMerchantMapper.selectQkJczlMerchantAllList();
+    }
+}

+ 89 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkJczlRecruitServiceImpl.java

@@ -0,0 +1,89 @@
+package zhsq_qk.system.service.impl;
+
+import java.util.List;
+        import zhsq_qk.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.system.mapper.QkJczlRecruitMapper;
+import zhsq_qk.system.domain.QkJczlRecruit;
+import zhsq_qk.system.service.IQkJczlRecruitService;
+
+/**
+ * 招聘服务Service业务层处理
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+@Service
+public class QkJczlRecruitServiceImpl implements IQkJczlRecruitService {
+    @Autowired
+    private QkJczlRecruitMapper qkJczlRecruitMapper;
+
+    /**
+     * 查询招聘服务
+     *
+     * @param id 招聘服务主键
+     * @return 招聘服务
+     */
+    @Override
+    public QkJczlRecruit selectQkJczlRecruitById(Long id) {
+        return qkJczlRecruitMapper.selectQkJczlRecruitById(id);
+    }
+
+    /**
+     * 查询招聘服务列表
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 招聘服务
+     */
+    @Override
+    public List<QkJczlRecruit> selectQkJczlRecruitList(QkJczlRecruit qkJczlRecruit) {
+        return qkJczlRecruitMapper.selectQkJczlRecruitList(qkJczlRecruit);
+    }
+
+    /**
+     * 新增招聘服务
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 结果
+     */
+    @Override
+    public int insertQkJczlRecruit(QkJczlRecruit qkJczlRecruit) {
+                qkJczlRecruit.setCreateTime(DateUtils.getNowDate());
+            return qkJczlRecruitMapper.insertQkJczlRecruit(qkJczlRecruit);
+    }
+
+    /**
+     * 修改招聘服务
+     *
+     * @param qkJczlRecruit 招聘服务
+     * @return 结果
+     */
+    @Override
+    public int updateQkJczlRecruit(QkJczlRecruit qkJczlRecruit) {
+                qkJczlRecruit.setUpdateTime(DateUtils.getNowDate());
+        return qkJczlRecruitMapper.updateQkJczlRecruit(qkJczlRecruit);
+    }
+
+    /**
+     * 批量删除招聘服务
+     *
+     * @param ids 需要删除的招聘服务主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkJczlRecruitByIds(Long[] ids) {
+        return qkJczlRecruitMapper.deleteQkJczlRecruitByIds(ids);
+    }
+
+    /**
+     * 删除招聘服务信息
+     *
+     * @param id 招聘服务主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkJczlRecruitById(Long id) {
+        return qkJczlRecruitMapper.deleteQkJczlRecruitById(id);
+    }
+}

+ 183 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkJczlDiscountMapper.xml

@@ -0,0 +1,183 @@
+<?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="zhsq_qk.system.mapper.QkJczlDiscountMapper">
+
+    <resultMap type="QkJczlDiscount" id="QkJczlDiscountResult">
+            <result property="id" column="id"/>
+            <result property="activityType" column="activity_type"/>
+            <result property="productType" column="product_type"/>
+            <result property="activityTitle" column="activity_title"/>
+            <result property="business" column="business"/>
+            <result property="details" column="details"/>
+            <result property="address" column="address"/>
+            <result property="createBy" column="create_by"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateBy" column="update_by"/>
+            <result property="updateTime" column="update_time"/>
+            <result property="merchantId" column="merchant_id"/>
+    </resultMap>
+
+    <sql id="selectQkJczlDiscountVo">
+        select id, activity_type, product_type, activity_title, business, details, address, create_by, create_time, update_by, update_time, merchant_id
+        from qk_jczl_discount
+    </sql>
+
+    <select id="selectQkJczlDiscountList" parameterType="QkJczlDiscount" resultMap="QkJczlDiscountResult">
+        <include refid="selectQkJczlDiscountVo"/>
+        <where>
+                        <if test="activityType != null  and activityType != ''">
+                            and activity_type = #{activityType}
+                        </if>
+                        <if test="productType != null  and productType != ''">
+                            and product_type = #{productType}
+                        </if>
+                        <if test="activityTitle != null  and activityTitle != ''">
+                            and activity_title = #{activityTitle}
+                        </if>
+                        <if test="business != null  and business != ''">
+                            and business = #{business}
+                        </if>
+                        <if test="details != null  and details != ''">
+                            and details = #{details}
+                        </if>
+                        <if test="address != null  and address != ''">
+                            and address = #{address}
+                        </if>
+                        <if test="merchantId != null  and merchantId != ''">
+                            and merchant_id = #{merchantId}
+                        </if>
+        </where>
+    </select>
+
+    <select id="selectQkJczlDiscountById" parameterType="Long"
+            resultMap="QkJczlDiscountResult">
+        SELECT
+            a.id,
+            a.activity_type,
+            b.merchant_name,
+            a.product_type,
+            a.activity_title,
+            a.business,
+            a.details,
+            a.address,
+            a.create_by,
+            a.create_time,
+            a.update_by,
+            a.update_time,
+            a.merchant_id
+        FROM
+            qk_jczl_discount a
+                left join qk_jczl_merchant b on a.merchant_id = b.id
+            where a.id = #{id}
+    </select>
+
+    <insert id="insertQkJczlDiscount" parameterType="QkJczlDiscount">
+        insert into qk_jczl_discount
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test="id != null">id,
+                    </if>
+                    <if test="activityType != null">activity_type,
+                    </if>
+                    <if test="productType != null">product_type,
+                    </if>
+                    <if test="activityTitle != null">activity_title,
+                    </if>
+                    <if test="business != null">business,
+                    </if>
+                    <if test="details != null">details,
+                    </if>
+                    <if test="address != null">address,
+                    </if>
+                    <if test="createBy != null">create_by,
+                    </if>
+                    <if test="createTime != null">create_time,
+                    </if>
+                    <if test="updateBy != null">update_by,
+                    </if>
+                    <if test="updateTime != null">update_time,
+                    </if>
+                    <if test="merchantId != null">merchant_id,
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test="id != null">#{id},
+                    </if>
+                    <if test="activityType != null">#{activityType},
+                    </if>
+                    <if test="productType != null">#{productType},
+                    </if>
+                    <if test="activityTitle != null">#{activityTitle},
+                    </if>
+                    <if test="business != null">#{business},
+                    </if>
+                    <if test="details != null">#{details},
+                    </if>
+                    <if test="address != null">#{address},
+                    </if>
+                    <if test="createBy != null">#{createBy},
+                    </if>
+                    <if test="createTime != null">#{createTime},
+                    </if>
+                    <if test="updateBy != null">#{updateBy},
+                    </if>
+                    <if test="updateTime != null">#{updateTime},
+                    </if>
+                    <if test="merchantId != null">#{merchantId},
+                    </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkJczlDiscount" parameterType="QkJczlDiscount">
+        update qk_jczl_discount
+        <trim prefix="SET" suffixOverrides=",">
+                    <if test="activityType != null">activity_type =
+                        #{activityType},
+                    </if>
+                    <if test="productType != null">product_type =
+                        #{productType},
+                    </if>
+                    <if test="activityTitle != null">activity_title =
+                        #{activityTitle},
+                    </if>
+                    <if test="business != null">business =
+                        #{business},
+                    </if>
+                    <if test="details != null">details =
+                        #{details},
+                    </if>
+                    <if test="address != null">address =
+                        #{address},
+                    </if>
+                    <if test="createBy != null">create_by =
+                        #{createBy},
+                    </if>
+                    <if test="createTime != null">create_time =
+                        #{createTime},
+                    </if>
+                    <if test="updateBy != null">update_by =
+                        #{updateBy},
+                    </if>
+                    <if test="updateTime != null">update_time =
+                        #{updateTime},
+                    </if>
+                    <if test="merchantId != null">merchant_id =
+                        #{merchantId},
+                    </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkJczlDiscountById" parameterType="Long">
+        delete
+        from qk_jczl_discount where id = #{id}
+    </delete>
+
+    <delete id="deleteQkJczlDiscountByIds" parameterType="String">
+        delete from qk_jczl_discount where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 149 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkJczlMerchantMapper.xml

@@ -0,0 +1,149 @@
+<?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="zhsq_qk.system.mapper.QkJczlMerchantMapper">
+
+    <resultMap type="QkJczlMerchant" id="QkJczlMerchantResult">
+            <result property="id" column="id"/>
+            <result property="merchantName" column="merchant_name"/>
+            <result property="blurb" column="blurb"/>
+            <result property="address" column="address"/>
+            <result property="contacts" column="contacts"/>
+            <result property="phone" column="phone"/>
+            <result property="createBy" column="create_by"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateBy" column="update_by"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectQkJczlMerchantVo">
+        select id, merchant_name, blurb, address, contacts, phone, create_by, create_time, update_by, update_time
+        from qk_jczl_merchant
+    </sql>
+
+    <select id="selectQkJczlMerchantList" parameterType="QkJczlMerchant" resultMap="QkJczlMerchantResult">
+        <include refid="selectQkJczlMerchantVo"/>
+        <where>
+                        <if test="merchantName != null  and merchantName != ''">
+                            and merchant_name like concat('%', #{merchantName}, '%')
+                        </if>
+                        <if test="blurb != null  and blurb != ''">
+                            and blurb = #{blurb}
+                        </if>
+                        <if test="address != null  and address != ''">
+                            and address = #{address}
+                        </if>
+                        <if test="contacts != null  and contacts != ''">
+                            and contacts = #{contacts}
+                        </if>
+                        <if test="phone != null  and phone != ''">
+                            and phone = #{phone}
+                        </if>
+        </where>
+    </select>
+
+    <select id="selectQkJczlMerchantById" parameterType="Long"
+            resultMap="QkJczlMerchantResult">
+            <include refid="selectQkJczlMerchantVo"/>
+            where id = #{id}
+    </select>
+
+    <insert id="insertQkJczlMerchant" parameterType="QkJczlMerchant">
+        insert into qk_jczl_merchant
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test="id != null">id,
+                    </if>
+                    <if test="merchantName != null">merchant_name,
+                    </if>
+                    <if test="blurb != null">blurb,
+                    </if>
+                    <if test="address != null">address,
+                    </if>
+                    <if test="contacts != null">contacts,
+                    </if>
+                    <if test="phone != null">phone,
+                    </if>
+                    <if test="createBy != null">create_by,
+                    </if>
+                    <if test="createTime != null">create_time,
+                    </if>
+                    <if test="updateBy != null">update_by,
+                    </if>
+                    <if test="updateTime != null">update_time,
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test="id != null">#{id},
+                    </if>
+                    <if test="merchantName != null">#{merchantName},
+                    </if>
+                    <if test="blurb != null">#{blurb},
+                    </if>
+                    <if test="address != null">#{address},
+                    </if>
+                    <if test="contacts != null">#{contacts},
+                    </if>
+                    <if test="phone != null">#{phone},
+                    </if>
+                    <if test="createBy != null">#{createBy},
+                    </if>
+                    <if test="createTime != null">#{createTime},
+                    </if>
+                    <if test="updateBy != null">#{updateBy},
+                    </if>
+                    <if test="updateTime != null">#{updateTime},
+                    </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkJczlMerchant" parameterType="QkJczlMerchant">
+        update qk_jczl_merchant
+        <trim prefix="SET" suffixOverrides=",">
+                    <if test="merchantName != null">merchant_name =
+                        #{merchantName},
+                    </if>
+                    <if test="blurb != null">blurb =
+                        #{blurb},
+                    </if>
+                    <if test="address != null">address =
+                        #{address},
+                    </if>
+                    <if test="contacts != null">contacts =
+                        #{contacts},
+                    </if>
+                    <if test="phone != null">phone =
+                        #{phone},
+                    </if>
+                    <if test="createBy != null">create_by =
+                        #{createBy},
+                    </if>
+                    <if test="createTime != null">create_time =
+                        #{createTime},
+                    </if>
+                    <if test="updateBy != null">update_by =
+                        #{updateBy},
+                    </if>
+                    <if test="updateTime != null">update_time =
+                        #{updateTime},
+                    </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkJczlMerchantById" parameterType="Long">
+        delete
+        from qk_jczl_merchant where id = #{id}
+    </delete>
+
+    <delete id="deleteQkJczlMerchantByIds" parameterType="String">
+        delete from qk_jczl_merchant where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="selectQkJczlMerchantAllList" resultMap="QkJczlMerchantResult">
+        select id, merchant_name from qk_jczl_merchant
+    </select>
+</mapper>

+ 137 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkJczlRecruitMapper.xml

@@ -0,0 +1,137 @@
+<?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="zhsq_qk.system.mapper.QkJczlRecruitMapper">
+
+    <resultMap type="QkJczlRecruit" id="QkJczlRecruitResult">
+            <result property="id" column="id"/>
+            <result property="recruitmentType" column="recruitment_type"/>
+            <result property="recruitmentTitle" column="recruitment_title"/>
+            <result property="recruitmentNum" column="recruitment_num"/>
+            <result property="address" column="address"/>
+            <result property="details" column="details"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateBy" column="update_by"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectQkJczlRecruitVo">
+        select id, recruitment_type, recruitment_title, recruitment_num, address, details, create_time, update_by, update_time
+        from qk_jczl_recruit
+    </sql>
+
+    <select id="selectQkJczlRecruitList" parameterType="QkJczlRecruit" resultMap="QkJczlRecruitResult">
+        <include refid="selectQkJczlRecruitVo"/>
+        <where>
+                        <if test="recruitmentType != null  and recruitmentType != ''">
+                            and recruitment_type = #{recruitmentType}
+                        </if>
+                        <if test="recruitmentTitle != null  and recruitmentTitle != ''">
+                            and recruitment_title = #{recruitmentTitle}
+                        </if>
+                        <if test="recruitmentNum != null ">
+                            and recruitment_num = #{recruitmentNum}
+                        </if>
+                        <if test="address != null  and address != ''">
+                            and address = #{address}
+                        </if>
+                        <if test="details != null  and details != ''">
+                            and details = #{details}
+                        </if>
+        </where>
+    </select>
+
+    <select id="selectQkJczlRecruitById" parameterType="Long"
+            resultMap="QkJczlRecruitResult">
+            <include refid="selectQkJczlRecruitVo"/>
+            where id = #{id}
+    </select>
+
+    <insert id="insertQkJczlRecruit" parameterType="QkJczlRecruit">
+        insert into qk_jczl_recruit
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test="id != null">id,
+                    </if>
+                    <if test="recruitmentType != null">recruitment_type,
+                    </if>
+                    <if test="recruitmentTitle != null">recruitment_title,
+                    </if>
+                    <if test="recruitmentNum != null">recruitment_num,
+                    </if>
+                    <if test="address != null">address,
+                    </if>
+                    <if test="details != null">details,
+                    </if>
+                    <if test="createTime != null">create_time,
+                    </if>
+                    <if test="updateBy != null">update_by,
+                    </if>
+                    <if test="updateTime != null">update_time,
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test="id != null">#{id},
+                    </if>
+                    <if test="recruitmentType != null">#{recruitmentType},
+                    </if>
+                    <if test="recruitmentTitle != null">#{recruitmentTitle},
+                    </if>
+                    <if test="recruitmentNum != null">#{recruitmentNum},
+                    </if>
+                    <if test="address != null">#{address},
+                    </if>
+                    <if test="details != null">#{details},
+                    </if>
+                    <if test="createTime != null">#{createTime},
+                    </if>
+                    <if test="updateBy != null">#{updateBy},
+                    </if>
+                    <if test="updateTime != null">#{updateTime},
+                    </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkJczlRecruit" parameterType="QkJczlRecruit">
+        update qk_jczl_recruit
+        <trim prefix="SET" suffixOverrides=",">
+                    <if test="recruitmentType != null">recruitment_type =
+                        #{recruitmentType},
+                    </if>
+                    <if test="recruitmentTitle != null">recruitment_title =
+                        #{recruitmentTitle},
+                    </if>
+                    <if test="recruitmentNum != null">recruitment_num =
+                        #{recruitmentNum},
+                    </if>
+                    <if test="address != null">address =
+                        #{address},
+                    </if>
+                    <if test="details != null">details =
+                        #{details},
+                    </if>
+                    <if test="createTime != null">create_time =
+                        #{createTime},
+                    </if>
+                    <if test="updateBy != null">update_by =
+                        #{updateBy},
+                    </if>
+                    <if test="updateTime != null">update_time =
+                        #{updateTime},
+                    </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkJczlRecruitById" parameterType="Long">
+        delete
+        from qk_jczl_recruit where id = #{id}
+    </delete>
+
+    <delete id="deleteQkJczlRecruitByIds" parameterType="String">
+        delete from qk_jczl_recruit where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 44 - 0
zhsq_qk-ui/src/api/system/discount.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询优惠活动列表
+export function listDiscount(query) {
+    return request({
+        url: '/system/discount/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询优惠活动详细
+export function getDiscount(id) {
+    return request({
+        url: '/system/discount/' + id,
+        method: 'get'
+    })
+}
+
+// 新增优惠活动
+export function addDiscount(data) {
+    return request({
+        url: '/system/discount',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改优惠活动
+export function updateDiscount(data) {
+    return request({
+        url: '/system/discount',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除优惠活动
+export function delDiscount(id) {
+    return request({
+        url: '/system/discount/' + id,
+        method: 'delete'
+    })
+}

+ 51 - 0
zhsq_qk-ui/src/api/system/merchant.js

@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+
+// 查询商户管理列表
+export function listMerchant(query) {
+    return request({
+        url: '/system/merchant/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询商户管理详细
+export function getMerchant(id) {
+    return request({
+        url: '/system/merchant/' + id,
+        method: 'get'
+    })
+}
+
+// 新增商户管理
+export function addMerchant(data) {
+    return request({
+        url: '/system/merchant',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改商户管理
+export function updateMerchant(data) {
+    return request({
+        url: '/system/merchant',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除商户管理
+export function delMerchant(id) {
+    return request({
+        url: '/system/merchant/' + id,
+        method: 'delete'
+    })
+}
+
+export function listAllMerchant() {
+  return request({
+    url: '/system/merchant/allList',
+    method: 'get'
+  })
+}

+ 44 - 0
zhsq_qk-ui/src/api/system/recruit.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询招聘服务列表
+export function listRecruit(query) {
+    return request({
+        url: '/system/recruit/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询招聘服务详细
+export function getRecruit(id) {
+    return request({
+        url: '/system/recruit/' + id,
+        method: 'get'
+    })
+}
+
+// 新增招聘服务
+export function addRecruit(data) {
+    return request({
+        url: '/system/recruit',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改招聘服务
+export function updateRecruit(data) {
+    return request({
+        url: '/system/recruit',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除招聘服务
+export function delRecruit(id) {
+    return request({
+        url: '/system/recruit/' + id,
+        method: 'delete'
+    })
+}

+ 346 - 0
zhsq_qk-ui/src/views/system/discount/index.vue

@@ -0,0 +1,346 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="活动类型" prop="activityType">
+        <el-select v-model="queryParams.activityType" placeholder="请选择活动类型" clearable>
+          <el-option
+            v-for="dict in dict.type.sys_activity_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="标题" prop="activityTitle">
+        <el-input
+          v-model="queryParams.activityTitle"
+          placeholder="请输入标题"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:discount:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:discount:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:discount:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:discount:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="discountList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="活动类型" align="center" prop="activityType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.sys_activity_type" :value="scope.row.activityType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="产品类型" align="center" prop="productType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.sys_product_type" :value="scope.row.productType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="标题" align="center" prop="activityTitle"/>
+      <el-table-column label="商家" align="center" prop="merchantName"/>
+      <el-table-column label="详情" align="center" prop="details"/>
+      <el-table-column label="地址" align="center" prop="address"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:discount:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:discount:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改优惠活动对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="活动类型" prop="activityType">
+          <el-select v-model="form.activityType" placeholder="请选择活动类型">
+            <el-option
+              v-for="dict in dict.type.sys_activity_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="产品类型" prop="productType">
+          <el-select v-model="form.productType" placeholder="请选择产品类型">
+            <el-option
+              v-for="dict in dict.type.sys_product_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="标题" prop="activityTitle">
+          <el-input v-model="form.activityTitle" placeholder="请输入标题"/>
+        </el-form-item>
+        <el-form-item label="商家" prop="merchantName">
+          <el-select v-model="form.merchantName" filterable placeholder="请选择项目名称" @change="onChange">
+            <el-option
+              v-for="item in projectData"
+              :key="item.id"
+              :label="item.merchantName"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="详情" prop="details">
+          <el-input v-model="form.details" placeholder="请输入详情"/>
+        </el-form-item>
+        <el-form-item label="地址" prop="address">
+          <el-input v-model="form.address" placeholder="请输入地址"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addDiscount, delDiscount, updateDiscount, getDiscount, listDiscount} from "@/api/system/discount";
+import {listAllMerchant} from "@/api/system/merchant";
+
+export default {
+  name: "Discount",
+  dicts: ['sys_product_type', 'sys_activity_type'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 优惠活动表格数据
+      discountList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      projectData: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        activityType: null,
+        productType: null,
+        activityTitle: null,
+        business: null,
+        details: null,
+        address: null,
+        merchantId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    };
+  },
+  created() {
+    this.getList();
+    this.getProjectList();
+  },
+  methods: {
+    /** 查询优惠活动列表 */
+    getList() {
+      this.loading = true;
+      listDiscount(this.queryParams).then(response => {
+        this.discountList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询商户管理列表 */
+    getProjectList() {
+      this.loading = true;
+      listAllMerchant().then(response => {
+        this.projectData = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        activityType: null,
+        productType: null,
+        activityTitle: null,
+        business: null,
+        details: null,
+        address: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        merchantId: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+      this.getProjectList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加优惠活动";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getDiscount(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改优惠活动";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDiscount(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+              this.getProjectList();
+            });
+          } else {
+            addDiscount(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+              this.getProjectList();
+            });
+          }
+        }
+      });
+    },
+    onChange(e) {
+      this.form.merchantId = e
+      this.form.merchantName = this.projectData.find(item => item.id == e).merchantName
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除民生诉求为"' + ids + '"的数据项?').then(function () {
+        return delDiscount(ids);
+      }).then(() => {
+        this.getList();
+        this.getProjectList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/discount/export', {
+        ...this.queryParams
+      }, `discount_${new Date().getTime()}.xlsx`)
+    }
+  }
+}
+;
+</script>

+ 279 - 0
zhsq_qk-ui/src/views/system/merchant/index.vue

@@ -0,0 +1,279 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="商户名称" prop="merchantName">
+        <el-input
+          v-model="queryParams.merchantName"
+          placeholder="请输入商户名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:merchant:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:merchant:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:merchant:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:merchant:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="merchantList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="商户名称" align="center" prop="merchantName"/>
+      <el-table-column label="简介" align="center" prop="blurb"/>
+      <el-table-column label="地址" align="center" prop="address"/>
+      <el-table-column label="联系人" align="center" prop="contacts"/>
+      <el-table-column label="联系电话" align="center" prop="phone"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:merchant:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:merchant:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改商户管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="商户名称" prop="merchantName">
+          <el-input v-model="form.merchantName" placeholder="请输入商户名称"/>
+        </el-form-item>
+        <el-form-item label="简介" prop="blurb">
+          <el-input v-model="form.blurb" placeholder="请输入简介"/>
+        </el-form-item>
+        <el-form-item label="地址" prop="address">
+          <el-input v-model="form.address" placeholder="请输入地址"/>
+        </el-form-item>
+        <el-form-item label="联系人" prop="contacts">
+          <el-input v-model="form.contacts" placeholder="请输入联系人"/>
+        </el-form-item>
+        <el-form-item label="联系电话" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入联系电话"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addMerchant, delMerchant, updateMerchant, getMerchant, listMerchant} from "@/api/system/merchant";
+
+export default {
+  name: "Merchant",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 商户管理表格数据
+      merchantList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        merchantName: null,
+        blurb: null,
+        address: null,
+        contacts: null,
+        phone: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询商户管理列表 */
+    getList() {
+      this.loading = true;
+      listMerchant(this.queryParams).then(response => {
+        this.merchantList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        merchantName: null,
+        blurb: null,
+        address: null,
+        contacts: null,
+        phone: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加商户管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getMerchant(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改商户管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateMerchant(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addMerchant(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除民生诉求为"' + ids + '"的数据项?').then(function () {
+        return delMerchant(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/merchant/export', {
+        ...this.queryParams
+      }, `merchant_${new Date().getTime()}.xlsx`)
+    }
+  }
+}
+;
+</script>

+ 301 - 0
zhsq_qk-ui/src/views/system/recruit/index.vue

@@ -0,0 +1,301 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="招聘类型" prop="recruitmentType">
+        <el-select v-model="queryParams.recruitmentType" placeholder="请选择招聘类型" clearable>
+          <el-option
+            v-for="dict in dict.type.sys_recruitment_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="标题" prop="recruitmentTitle">
+        <el-input
+          v-model="queryParams.recruitmentTitle"
+          placeholder="请输入标题"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:recruit:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:recruit:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:recruit:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:recruit:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="recruitList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="招聘类型" align="center" prop="recruitmentType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.sys_recruitment_type" :value="scope.row.recruitmentType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="标题" align="center" prop="recruitmentTitle"/>
+      <el-table-column label="招聘人数" align="center" prop="recruitmentNum"/>
+      <el-table-column label="地址" align="center" prop="address"/>
+      <el-table-column label="详情" align="center" prop="details"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:recruit:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:recruit:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改招聘服务对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="招聘类型" prop="recruitmentType">
+          <el-select v-model="form.recruitmentType" placeholder="请选择招聘类型">
+            <el-option
+              v-for="dict in dict.type.sys_recruitment_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="标题" prop="recruitmentTitle">
+          <el-input v-model="form.recruitmentTitle" placeholder="请输入标题"/>
+        </el-form-item>
+        <el-form-item label="招聘人数" prop="recruitmentNum">
+          <el-input v-model="form.recruitmentNum" placeholder="请输入招聘人数"/>
+        </el-form-item>
+        <el-form-item label="地址" prop="address">
+          <el-input v-model="form.address" placeholder="请输入地址"/>
+        </el-form-item>
+        <el-form-item label="详情" prop="details">
+          <el-input v-model="form.details" placeholder="请输入详情"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addRecruit, delRecruit, updateRecruit, getRecruit, listRecruit} from "@/api/system/recruit";
+
+export default {
+  name: "Recruit",
+  dicts: ['sys_recruitment_type'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 招聘服务表格数据
+      recruitList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        recruitmentType: null,
+        recruitmentTitle: null,
+        recruitmentNum: null,
+        address: null,
+        details: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询招聘服务列表 */
+    getList() {
+      this.loading = true;
+      listRecruit(this.queryParams).then(response => {
+        this.recruitList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        recruitmentType: null,
+        recruitmentTitle: null,
+        recruitmentNum: null,
+        address: null,
+        details: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加招聘服务";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getRecruit(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改招聘服务";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRecruit(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRecruit(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除民生诉求为"' + ids + '"的数据项?').then(function () {
+        return delRecruit(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/recruit/export', {
+        ...this.queryParams
+      }, `recruit_${new Date().getTime()}.xlsx`)
+    }
+  }
+}
+;
+</script>