Browse Source

banner,忘记密码

master
cgx 5 months ago
parent
commit
b3a8b7b4e0
27 changed files with 493 additions and 229 deletions
  1. +20
    -35
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/controller/WebBannerController.java
  2. +76
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/entity/WebBanner.java
  3. +14
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/mapper/WebBannerMapper.java
  4. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/mapper/xml/WebBannerMapper.xml
  5. +4
    -4
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/service/IWebBannerService.java
  6. +6
    -6
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/service/impl/WebBannerServiceImpl.java
  7. +30
    -11
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/WebBannerList.vue
  8. +37
    -5
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/modules/WebBannerForm.vue
  9. +0
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/modules/WebBannerModal.Style#Drawer.vue
  10. +0
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/modules/WebBannerModal.vue
  11. +7
    -7
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/WebBanner.api.ts
  12. +91
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/WebBanner.data.ts
  13. +3
    -3
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/WebBannerList.vue
  14. +0
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/components/WebBannerModal.vue
  15. +0
    -58
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/entity/WebBanner.java
  16. +0
    -17
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/mapper/WebBannerMapper.java
  17. +0
    -36
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue3/WebBanner.data.ts
  18. +1
    -1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/AddressController.java
  19. +22
    -12
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/IndexController.java
  20. +25
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/UserLoginController.java
  21. +17
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/IndexService.java
  22. +2
    -5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/UserService.java
  23. +72
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/impl/IndexServiceImpl.java
  24. +33
    -25
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/impl/UserServiceImpl.java
  25. +2
    -2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/WebApiServiceImpl.java
  26. +29
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/postBean/PwdModel.java
  27. +1
    -1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/postBean/UserLoginModel.java

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/controller/WebBannerController.java → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/controller/WebBannerController.java View File

@ -1,50 +1,35 @@
package org.jeecg.modules.webBanner.controller;
package org.jeecg.modules.banner.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.webBanner.entity.WebBanner;
import org.jeecg.modules.webBanner.service.IWebBannerService;
import org.jeecg.modules.banner.entity.WebBanner;
import org.jeecg.modules.banner.service.IWebBannerService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
/**
* @Description: 网站banner图
* @Description: banner设置
* @Author: jeecg-boot
* @Date: 2024-10-11
* @Date: 2024-10-28
* @Version: V1.0
*/
@Api(tags="网站banner图")
@Api(tags="banner设置")
@RestController
@RequestMapping("/webBanner/webBanner")
@RequestMapping("/banner/webBanner")
@Slf4j
public class WebBannerController extends JeecgController<WebBanner, IWebBannerService> {
@Autowired
@ -59,8 +44,8 @@ public class WebBannerController extends JeecgController<WebBanner, IWebBannerSe
* @param req
* @return
*/
//@AutoLog(value = "网站banner图-分页列表查询")
@ApiOperation(value="网站banner图-分页列表查询", notes="网站banner图-分页列表查询")
//@AutoLog(value = "banner设置-分页列表查询")
@ApiOperation(value="banner设置-分页列表查询", notes="banner设置-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<WebBanner>> queryPageList(WebBanner webBanner,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@ -78,8 +63,8 @@ public class WebBannerController extends JeecgController<WebBanner, IWebBannerSe
* @param webBanner
* @return
*/
@AutoLog(value = "网站banner图-添加")
@ApiOperation(value="网站banner图-添加", notes="网站banner图-添加")
@AutoLog(value = "banner设置-添加")
@ApiOperation(value="banner设置-添加", notes="banner设置-添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody WebBanner webBanner) {
webBannerService.save(webBanner);
@ -92,8 +77,8 @@ public class WebBannerController extends JeecgController<WebBanner, IWebBannerSe
* @param webBanner
* @return
*/
@AutoLog(value = "网站banner图-编辑")
@ApiOperation(value="网站banner图-编辑", notes="网站banner图-编辑")
@AutoLog(value = "banner设置-编辑")
@ApiOperation(value="banner设置-编辑", notes="banner设置-编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody WebBanner webBanner) {
webBannerService.updateById(webBanner);
@ -106,8 +91,8 @@ public class WebBannerController extends JeecgController<WebBanner, IWebBannerSe
* @param id
* @return
*/
@AutoLog(value = "网站banner图-通过id删除")
@ApiOperation(value="网站banner图-通过id删除", notes="网站banner图-通过id删除")
@AutoLog(value = "banner设置-通过id删除")
@ApiOperation(value="banner设置-通过id删除", notes="banner设置-通过id删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
webBannerService.removeById(id);
@ -120,8 +105,8 @@ public class WebBannerController extends JeecgController<WebBanner, IWebBannerSe
* @param ids
* @return
*/
@AutoLog(value = "网站banner图-批量删除")
@ApiOperation(value="网站banner图-批量删除", notes="网站banner图-批量删除")
@AutoLog(value = "banner设置-批量删除")
@ApiOperation(value="banner设置-批量删除", notes="banner设置-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.webBannerService.removeByIds(Arrays.asList(ids.split(",")));
@ -134,8 +119,8 @@ public class WebBannerController extends JeecgController<WebBanner, IWebBannerSe
* @param id
* @return
*/
//@AutoLog(value = "网站banner图-通过id查询")
@ApiOperation(value="网站banner图-通过id查询", notes="网站banner图-通过id查询")
//@AutoLog(value = "banner设置-通过id查询")
@ApiOperation(value="banner设置-通过id查询", notes="banner设置-通过id查询")
@GetMapping(value = "/queryById")
public Result<WebBanner> queryById(@RequestParam(name="id",required=true) String id) {
WebBanner webBanner = webBannerService.getById(id);
@ -153,7 +138,7 @@ public class WebBannerController extends JeecgController<WebBanner, IWebBannerSe
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, WebBanner webBanner) {
return super.exportXls(request, webBanner, WebBanner.class, "网站banner图");
return super.exportXls(request, webBanner, WebBanner.class, "banner设置");
}
/**

+ 76
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/entity/WebBanner.java View File

@ -0,0 +1,76 @@
package org.jeecg.modules.banner.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: banner设置
* @Author: jeecg-boot
* @Date: 2024-10-28
* @Version: V1.0
*/
@Data
@TableName("web_banner")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="web_banner对象", description="banner设置")
public class WebBanner implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**图片*/
@Excel(name = "图片", width = 15)
@ApiModelProperty(value = "图片")
private java.lang.String image;
/**跳转地址*/
@Excel(name = "跳转地址", width = 15)
@ApiModelProperty(value = "跳转地址")
private java.lang.String toUrl;
/**排序*/
@Excel(name = "排序", width = 15)
@ApiModelProperty(value = "排序")
private java.lang.Integer sort;
/**0 首页上方banner轮播 1 首页第二处 2首页第三处*/
@Excel(name = "0 首页上方banner轮播 1 首页第二处 2首页第三处", width = 15, dicCode = "bannerType")
@Dict(dicCode = "bannerType")
@ApiModelProperty(value = "0 首页上方banner轮播 1 首页第二处 2首页第三处")
private java.lang.Integer type;
/**是否删除 0否 1是*/
@Excel(name = "是否删除 0否 1是", width = 15, dicCode = "is_disable")
@Dict(dicCode = "is_disable")
@ApiModelProperty(value = "是否删除 0否 1是")
private java.lang.Integer isDisable;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
/**修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "修改时间")
private java.util.Date updateTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
}

+ 14
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/mapper/WebBannerMapper.java View File

@ -0,0 +1,14 @@
package org.jeecg.modules.banner.mapper;
import org.jeecg.modules.banner.entity.WebBanner;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: banner设置
* @Author: jeecg-boot
* @Date: 2024-10-28
* @Version: V1.0
*/
public interface WebBannerMapper extends BaseMapper<WebBanner> {
}

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/mapper/xml/WebBannerMapper.xml → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/mapper/xml/WebBannerMapper.xml View File

@ -1,5 +1,5 @@
<?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="org.jeecg.modules.webBanner.mapper.WebBannerMapper">
<mapper namespace="org.jeecg.modules.banner.mapper.WebBannerMapper">
</mapper>

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/service/IWebBannerService.java → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/service/IWebBannerService.java View File

@ -1,12 +1,12 @@
package org.jeecg.modules.webBanner.service;
package org.jeecg.modules.banner.service;
import org.jeecg.modules.webBanner.entity.WebBanner;
import org.jeecg.modules.banner.entity.WebBanner;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 网站banner图
* @Description: banner设置
* @Author: jeecg-boot
* @Date: 2024-10-11
* @Date: 2024-10-28
* @Version: V1.0
*/
public interface IWebBannerService extends IService<WebBanner> {

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/service/impl/WebBannerServiceImpl.java → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/service/impl/WebBannerServiceImpl.java View File

@ -1,16 +1,16 @@
package org.jeecg.modules.webBanner.service.impl;
package org.jeecg.modules.banner.service.impl;
import org.jeecg.modules.webBanner.entity.WebBanner;
import org.jeecg.modules.webBanner.mapper.WebBannerMapper;
import org.jeecg.modules.webBanner.service.IWebBannerService;
import org.jeecg.modules.banner.entity.WebBanner;
import org.jeecg.modules.banner.mapper.WebBannerMapper;
import org.jeecg.modules.banner.service.IWebBannerService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 网站banner图
* @Description: banner设置
* @Author: jeecg-boot
* @Date: 2024-10-11
* @Date: 2024-10-28
* @Version: V1.0
*/
@Service

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue/WebBannerList.vue → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/WebBannerList.vue View File

@ -12,7 +12,7 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('网站banner图')">导出</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('banner设置')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
@ -99,6 +99,7 @@
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import WebBannerModal from './modules/WebBannerModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
export default {
name: 'WebBannerList',
@ -108,7 +109,7 @@
},
data () {
return {
description: '网站banner图管理页面',
description: 'banner设置管理页面',
//
columns: [
{
@ -128,9 +129,24 @@
scopedSlots: {customRender: 'imgSlot'}
},
{
title:'位置',
title:'跳转地址',
align:"center",
dataIndex: 'type'
dataIndex: 'toUrl'
},
{
title:'排序',
align:"center",
dataIndex: 'sort'
},
{
title:'0 首页上方banner轮播 1 首页第二处 2首页第三处',
align:"center",
dataIndex: 'type_dictText'
},
{
title:'是否删除 0否 1是',
align:"center",
dataIndex: 'isDisable_dictText'
},
{
title: '操作',
@ -142,11 +158,11 @@
}
],
url: {
list: "/webBanner/webBanner/list",
delete: "/webBanner/webBanner/delete",
deleteBatch: "/webBanner/webBanner/deleteBatch",
exportXlsUrl: "/webBanner/webBanner/exportXls",
importExcelUrl: "webBanner/webBanner/importExcel",
list: "/banner/webBanner/list",
delete: "/banner/webBanner/delete",
deleteBatch: "/banner/webBanner/deleteBatch",
exportXlsUrl: "/banner/webBanner/exportXls",
importExcelUrl: "banner/webBanner/importExcel",
},
dictOptions:{},
@ -166,8 +182,11 @@
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'Text',value:'image',text:'图片',dictCode:''})
fieldList.push({type:'int',value:'type',text:'位置',dictCode:''})
fieldList.push({type:'string',value:'image',text:'图片',dictCode:''})
fieldList.push({type:'string',value:'toUrl',text:'跳转地址',dictCode:''})
fieldList.push({type:'popup',value:'sort',text:'排序', popup:{code:'',field:'',orgFields:'',destFields:''}})
fieldList.push({type:'int',value:'type',text:'0 首页上方banner轮播 1 首页第二处 2首页第三处',dictCode:'bannerType'})
fieldList.push({type:'int',value:'isDisable',text:'是否删除 0否 1是',dictCode:'is_disable'})
this.superFieldList = fieldList
}
}

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue/modules/WebBannerForm.vue → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/modules/WebBannerForm.vue View File

@ -9,8 +9,31 @@
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="位置" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
<a-input-number v-model="model.type" placeholder="请输入位置" style="width: 100%" />
<a-form-model-item label="跳转地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="toUrl">
<a-input v-model="model.toUrl" placeholder="请输入跳转地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="排序" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sort">
<j-popup
v-model="model.sort"
field="sort"
org-fields=""
dest-fields=""
code=""
:multi="true"
@input="popupCallback"
/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="0 首页上方banner轮播 1 首页第二处 2首页第三处" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
<j-dict-select-tag type="list" v-model="model.type" dictCode="bannerType" placeholder="请选择0 首页上方banner轮播 1 首页第二处 2首页第三处" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否删除 0否 1是" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isDisable">
<j-dict-select-tag type="list" v-model="model.isDisable" dictCode="is_disable" placeholder="请选择是否删除 0否 1是" />
</a-form-model-item>
</a-col>
</a-row>
@ -50,11 +73,17 @@
},
confirmLoading: false,
validatorRules: {
sort: [
{ required: true, message: '请输入排序!'},
],
isDisable: [
{ required: true, message: '请输入是否删除 0否 1是!'},
],
},
url: {
add: "/webBanner/webBanner/add",
edit: "/webBanner/webBanner/edit",
queryById: "/webBanner/webBanner/queryById"
add: "/banner/webBanner/add",
edit: "/banner/webBanner/edit",
queryById: "/banner/webBanner/queryById"
}
}
},
@ -104,6 +133,9 @@
})
},
popupCallback(value,row){
this.model = Object.assign(this.model, row);
},
}
}
</script>

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue/modules/WebBannerModal.Style#Drawer.vue → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/modules/WebBannerModal.Style#Drawer.vue View File


jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue/modules/WebBannerModal.vue → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue/modules/WebBannerModal.vue View File


jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue3/WebBanner.api.ts → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/WebBanner.api.ts View File

@ -2,13 +2,13 @@ import {defHttp} from '/@/utils/http/axios';
import {Modal} from 'ant-design-vue';
enum Api {
list = '/webBanner/webBanner/list',
save='/webBanner/webBanner/add',
edit='/webBanner/webBanner/edit',
deleteOne = '/webBanner/webBanner/delete',
deleteBatch = '/webBanner/webBanner/deleteBatch',
importExcel = '/webBanner/webBanner/importExcel',
exportXls = '/webBanner/webBanner/exportXls',
list = '/banner/webBanner/list',
save='/banner/webBanner/add',
edit='/banner/webBanner/edit',
deleteOne = '/banner/webBanner/delete',
deleteBatch = '/banner/webBanner/deleteBatch',
importExcel = '/banner/webBanner/importExcel',
exportXls = '/banner/webBanner/exportXls',
}
/**
* api

+ 91
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/WebBanner.data.ts View File

@ -0,0 +1,91 @@
import {BasicColumn} from '/@/components/Table';
import {FormSchema} from '/@/components/Table';
import { rules} from '/@/utils/helper/validator';
import { render } from '/@/utils/common/renderUtils';
//列表数据
export const columns: BasicColumn[] = [
{
title: '图片',
align:"center",
dataIndex: 'image',
customRender:render.renderAvatar,
},
{
title: '跳转地址',
align:"center",
dataIndex: 'toUrl'
},
{
title: '排序',
align:"center",
dataIndex: 'sort'
},
{
title: '0 首页上方banner轮播 1 首页第二处 2首页第三处',
align:"center",
dataIndex: 'type_dictText'
},
{
title: '是否删除 0否 1是',
align:"center",
dataIndex: 'isDisable_dictText'
},
];
//查询数据
export const searchFormSchema: FormSchema[] = [
];
//表单数据
export const formSchema: FormSchema[] = [
{
label: '图片',
field: 'image',
component: 'JImageUpload',
componentProps:{
},
},
{
label: '跳转地址',
field: 'toUrl',
component: 'Input',
},
{
label: '排序',
field: 'sort',
component: 'JPopup',
componentProps: ({ formActionType }) => {
const {setFieldsValue} = formActionType;
return{
setFieldsValue:setFieldsValue,
code:"",
fieldConfig:,
multi:true,
}
},
dynamicRules: ({model,schema}) => {
return [
{ required: true, message: '请输入排序!'},
];
},
},
{
label: '0 首页上方banner轮播 1 首页第二处 2首页第三处',
field: 'type',
component: 'JDictSelectTag',
componentProps:{
dictCode:"bannerType"
},
},
{
label: '是否删除 0否 1是',
field: 'isDisable',
component: 'JDictSelectTag',
componentProps:{
dictCode:"is_disable"
},
dynamicRules: ({model,schema}) => {
return [
{ required: true, message: '请输入是否删除 0否 1是!'},
];
},
},
];

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue3/WebBannerList.vue → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/WebBannerList.vue View File

@ -39,7 +39,7 @@
</div>
</template>
<script lang="ts" name="webBanner-webBanner" setup>
<script lang="ts" name="banner-webBanner" setup>
import {ref, computed, unref} from 'vue';
import {BasicTable, useTable, TableAction} from '/@/components/Table';
import {useModal} from '/@/components/Modal';
@ -53,7 +53,7 @@
//table
const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
tableProps:{
title: '网站banner图',
title: 'banner设置',
api: list,
columns,
canResize:false,
@ -70,7 +70,7 @@
},
},
exportConfig: {
name:"网站banner图",
name:"banner设置",
url: getExportUrl,
},
importConfig: {

jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue3/components/WebBannerModal.vue → jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/banner/vue3/components/WebBannerModal.vue View File


+ 0
- 58
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/entity/WebBanner.java View File

@ -1,58 +0,0 @@
package org.jeecg.modules.webBanner.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 网站banner图
* @Author: jeecg-boot
* @Date: 2024-10-11
* @Version: V1.0
*/
@Data
@TableName("web_banner")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="web_banner对象", description="网站banner图")
public class WebBanner implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**图片*/
@Excel(name = "图片", width = 15)
@ApiModelProperty(value = "图片")
private java.lang.String image;
/**位置*/
@Excel(name = "位置", width = 15)
@ApiModelProperty(value = "位置")
private java.lang.Integer type;
}

+ 0
- 17
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/mapper/WebBannerMapper.java View File

@ -1,17 +0,0 @@
package org.jeecg.modules.webBanner.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.webBanner.entity.WebBanner;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 网站banner图
* @Author: jeecg-boot
* @Date: 2024-10-11
* @Version: V1.0
*/
public interface WebBannerMapper extends BaseMapper<WebBanner> {
}

+ 0
- 36
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/webBanner/vue3/WebBanner.data.ts View File

@ -1,36 +0,0 @@
import {BasicColumn} from '/@/components/Table';
import {FormSchema} from '/@/components/Table';
import { rules} from '/@/utils/helper/validator';
import { render } from '/@/utils/common/renderUtils';
//列表数据
export const columns: BasicColumn[] = [
{
title: '图片',
align:"center",
dataIndex: 'image',
customRender:render.renderAvatar,
},
{
title: '位置',
align:"center",
dataIndex: 'type'
},
];
//查询数据
export const searchFormSchema: FormSchema[] = [
];
//表单数据
export const formSchema: FormSchema[] = [
{
label: '图片',
field: 'image',
component: 'JImageUpload',
componentProps:{
},
},
{
label: '位置',
field: 'type',
component: 'InputNumber',
},
];

+ 1
- 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/AddressController.java View File

@ -87,7 +87,7 @@ public class AddressController extends JeecgController<TbAddress, ITbAddressServ
* @return
*/
@ApiOperation(value="用户地址表-编辑", notes="用户地址表-编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
@RequestMapping(value = "/edit", method = {RequestMethod.POST})
public Result<String> edit(@RequestBody AddressReq tbAddress) {
TbAddress tbAddress1 = new TbAddress();
BeanUtils.copyProperties(tbAddress, tbAddress1);


+ 22
- 12
jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/IndexController.java View File

@ -6,12 +6,10 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.config.shiro.ShiroRealm;
import org.jeecg.modules.alUser.service.UserService;
import org.jeecg.modules.alUser.service.IndexService;
import org.jeecg.modules.banner.entity.WebBanner;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.postBean.SuggestReq;
import org.jeecg.modules.tbSuggest.entity.TbSuggest;
import org.jeecg.modules.tbSuggest.service.ITbSuggestService;
@ -19,6 +17,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* @Author scott
* @since 2018-12-17
@ -31,7 +32,7 @@ public class IndexController {
@Autowired
private ITbSuggestService tbSuggestService;
@Autowired
private IHanHaiMemberService hanHaiMemberService;
private IndexService indexService;
@Autowired
private ShiroRealm shiroRealm;
@ -46,16 +47,23 @@ public class IndexController {
@ApiOperation(value = "我的头像昵称,平台客户电话等信息")
@RequestMapping(value = "/index", method = RequestMethod.POST)
public Result<JSONObject> index(@RequestHeader("X-Access-Token") String token) {
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(token);
hanHaiMember.setPasswordSalt(null);
JSONObject jsonObject = new JSONObject();
jsonObject.put("phone","123456");
jsonObject.put("my",hanHaiMember);
public Result index(@RequestHeader("X-Access-Token") String token) {
return Result.ok(jsonObject);
Result<?> indexInfo = indexService.getIndexInfo(token);
return indexInfo;
}
@ApiOperation(value = "获取banner列表")
@RequestMapping(value = "/bannerList", method = RequestMethod.POST)
public Result<Map<Integer, List<WebBanner>>> bannerList(@RequestHeader("X-Access-Token") String token) {
return indexService.bannerList();
}
@ApiOperation(value="帮助与反馈", notes="帮助与反馈")
@PostMapping(value = "/addSuggest")
public Result<String> addSuggest(@RequestBody SuggestReq tbSuggest, @RequestHeader("X-Access-Token") String token) {
@ -68,4 +76,6 @@ public class IndexController {
}
}

+ 25
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/UserLoginController.java View File

@ -13,6 +13,7 @@ import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.alUser.service.UserService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.postBean.PwdModel;
import org.jeecg.modules.postBean.ReqUserRole;
import org.jeecg.modules.postBean.UserLoginModel;
import org.jeecg.modules.utils.SmsClient;
@ -68,6 +69,30 @@ public class UserLoginController {
return userService.reg(userLoginModel);
}
@ApiOperation(value = "忘记密码")
@RequestMapping(value = "/newPassword", method = RequestMethod.POST)
public Result<JSONObject> newPassword(@RequestBody PwdModel pwdModel) {
if (ValidateTool.isNull(pwdModel)) {
return Result.error("参数错误");
}
if (ValidateTool.isNull(pwdModel.getUsername())) {
return Result.error("请填写手机号");
}
if (ValidateTool.isNull(pwdModel.getPassword())) {
return Result.error("请填写密码");
}
if (ValidateTool.isNull(pwdModel.getNewPassword())) {
return Result.error("请填写确认密码");
}
if (ValidateTool.isNull(pwdModel.getCaptcha())) {
return Result.error("请填写验证码");
}
return userService.newPassword(pwdModel);
}
@ApiOperation(value = "选择身份")
@RequestMapping(value = "/role", method = RequestMethod.POST)
public Result<JSONObject> role(@RequestBody ReqUserRole reqUserRole) {


+ 17
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/IndexService.java View File

@ -0,0 +1,17 @@
package org.jeecg.modules.alUser.service;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.banner.entity.WebBanner;
import java.util.List;
import java.util.Map;
public interface IndexService {
//获取首页基础信息
Result<?> getIndexInfo(String token);
Result<Map<Integer, List<WebBanner>>> bannerList();
}

+ 2
- 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/UserService.java View File

@ -2,17 +2,13 @@ package org.jeecg.modules.alUser.service;
import com.alibaba.fastjson.JSONObject;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.postBean.PwdModel;
import org.jeecg.modules.postBean.ReqUserRole;
import org.jeecg.modules.postBean.UserLoginModel;
import org.springframework.web.bind.annotation.RequestBody;
public interface UserService {
//获取首页基础信息
Result<?> getIndexInfo();
Result<JSONObject> login(UserLoginModel userLoginModel);
Result<JSONObject> reg(UserLoginModel userLoginModel);
@ -21,5 +17,6 @@ public interface UserService {
Result<JSONObject> role(ReqUserRole reqUserRole);
Result<JSONObject> newPassword(PwdModel pwdModel);
}

+ 72
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/impl/IndexServiceImpl.java View File

@ -0,0 +1,72 @@
package org.jeecg.modules.alUser.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.jeecg.common.api.vo.Result;
import org.jeecg.config.shiro.ShiroRealm;
import org.jeecg.modules.alUser.service.IndexService;
import org.jeecg.modules.banner.entity.WebBanner;
import org.jeecg.modules.banner.service.IWebBannerService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.userRole.entity.TbUserRole;
import org.jeecg.modules.userRole.service.ITbUserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class IndexServiceImpl implements IndexService {
@Resource
private IWebBannerService webBannerService;
@Autowired
private IHanHaiMemberService iHanHaiMemberService;
@Autowired
private ShiroRealm shiroRealm;
@Resource
private ITbUserRoleService tbUserRoleService;
@Override
public Result<?> getIndexInfo(String token) {
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(token);
hanHaiMember.setPasswordSalt(null);
JSONObject jsonObject = new JSONObject();
jsonObject.put("phone", "123456");
jsonObject.put("my", hanHaiMember);
LambdaQueryWrapper<TbUserRole> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
objectLambdaQueryWrapper.eq(TbUserRole::getUserId, hanHaiMember.getId()).
eq(TbUserRole::getRole, 0).eq(TbUserRole::getAuditStatus, 1);
TbUserRole cg = tbUserRoleService.getOne(objectLambdaQueryWrapper);
LambdaQueryWrapper<TbUserRole> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(TbUserRole::getUserId, hanHaiMember.getId()).
eq(TbUserRole::getRole, 1).eq(TbUserRole::getAuditStatus, 1);
TbUserRole shop = tbUserRoleService.getOne(queryWrapper1);
// 返回采购商身份信息
jsonObject.put("buy", cg);
// 返回供应商身份信息
jsonObject.put("shop", shop);
return Result.OK(jsonObject);
}
@Override
public Result< Map<Integer, List<WebBanner>>> bannerList() {
//获取banner
QueryWrapper<WebBanner> objectQueryWrapper = new QueryWrapper<>();
objectQueryWrapper.eq("is_disable", 0).orderByDesc("sort");
List<WebBanner> bannerList = webBannerService.list(objectQueryWrapper);
Map<Integer, List<WebBanner>> collect = bannerList.stream().sorted(Comparator.comparing(WebBanner::getSort).reversed()).collect(Collectors.groupingBy(WebBanner::getType));
return Result.ok(collect);
}
}

+ 33
- 25
jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/service/impl/UserServiceImpl.java View File

@ -3,39 +3,34 @@ package org.jeecg.modules.alUser.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.hibernate.cache.spi.support.CollectionNonStrictReadWriteAccess;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.util.PasswordUtil;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.alUser.service.UserService;
import org.jeecg.modules.banner.service.IWebBannerService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.postBean.PwdModel;
import org.jeecg.modules.postBean.ReqUserRole;
import org.jeecg.modules.postBean.UserLoginModel;
import org.jeecg.modules.userRole.entity.TbUserRole;
import org.jeecg.modules.userRole.service.ITbUserRoleService;
import org.jeecg.modules.utils.ValidateTool;
import org.jeecg.modules.webBanner.entity.WebBanner;
import org.jeecg.modules.webBanner.service.IWebBannerService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class UserServiceImpl implements UserService {
@Resource
private IWebBannerService webBannerService;
@Autowired
@ -194,24 +189,37 @@ public class UserServiceImpl implements UserService {
return result;
}
//获取首页基础信息
@Override
public Result<?> getIndexInfo(){
Map<String,Object> map=new HashMap<>();
map.put("title","高端网站定制");
List list=new ArrayList();
list.add("企业官网");
list.add("电商官网");
list.add("H5官网");
list.add("小程序");
map.put("list",list);
map.put("details","网站定制介绍");
//获取banner
List<WebBanner> bannerList = webBannerService.list();
map.put("bannerList",bannerList);
return Result.OK(map);
public Result<JSONObject> newPassword(PwdModel pwdModel) {
Result<JSONObject> result = new Result<JSONObject>();
if (!pwdModel.getPassword().equals(pwdModel.getNewPassword())){
return result.error500("两次输入密码不一致");
}
//1. 校验用户是否有效
LambdaQueryWrapper<HanHaiMember> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HanHaiMember::getAccount, pwdModel.getUsername());
HanHaiMember one = iHanHaiMemberService.getOne(queryWrapper);
if (ValidateTool.isNull(one)) {
return result.error500("用户不存在");
}
String smscode = pwdModel.getCaptcha();
String username = pwdModel.getUsername();
//手机验证码登陆
Object code = redisUtil.get(CommonConstant.PHONE_CODE + username);
if (ValidateTool.isNull(code)) {
result.error500("手机验证码错误");
}
if (!smscode.equals(code)) {
result.error500("手机验证码错误");
return result;
}
String passwordEncode = PasswordUtil.encrypt(pwdModel.getUsername(), pwdModel.getPassword(), one.getPasswordSalt());
one.setPassword(passwordEncode);
iHanHaiMemberService.updateById(one);
redisUtil.del(CommonConstant.PHONE_CODE + username);
return Result.ok();
}


+ 2
- 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/WebApiServiceImpl.java View File

@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.api.bean.CaseBean;
import org.jeecg.modules.api.service.WebApiService;
import org.jeecg.modules.webBanner.entity.WebBanner;
import org.jeecg.modules.webBanner.service.IWebBannerService;
import org.jeecg.modules.banner.entity.WebBanner;
import org.jeecg.modules.banner.service.IWebBannerService;
import org.jeecg.modules.webCase.entity.WebCase;
import org.jeecg.modules.webCase.service.IWebCaseService;
import org.jeecg.modules.webObject.service.IWebObjectService;


+ 29
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/postBean/PwdModel.java View File

@ -0,0 +1,29 @@
package org.jeecg.modules.postBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 登录表单
*
* @Author scott
* @since 2019-01-18
*/
@Data
@ApiModel(value="忘记密码对象", description="忘记密码对象")
public class PwdModel {
@ApiModelProperty(value = "账号/手机号")
private String username;
@ApiModelProperty(value = "新密码")
private String password;
@ApiModelProperty(value = "验证码")
private String captcha;
@ApiModelProperty(value = "确认密码")
private String newPassword;
}

+ 1
- 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/postBean/UserLoginModel.java View File

@ -13,7 +13,7 @@ import lombok.Data;
@Data
@ApiModel(value="登录对象", description="登录对象")
public class UserLoginModel {
@ApiModelProperty(value = "账号")
@ApiModelProperty(value = "账号/手机号")
private String username;
@ApiModelProperty(value = "密码")
private String password;


Loading…
Cancel
Save