在若依3.8.1基本上,新建privavte-farm模块,用于私家农场(CSA,社区支持农业)系统的开发。

对系统进行了配置,并增加客户管理-访客管理示例功能。
This commit is contained in:
jlt
2022-03-20 23:41:34 +08:00
parent 857054179c
commit be13b2ec59
17 changed files with 2277 additions and 225 deletions

View File

@ -0,0 +1,105 @@
package com.jlt.farming.crm.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jlt.farming.crm.domain.Visitor;
import com.jlt.farming.crm.service.IVisitorService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 访客信息Controller
*
* @author ruoyi
* @date 2022-02-08
*/
@RestController
@RequestMapping("/crm/visitor")
public class VisitorController extends BaseController
{
@Autowired
private IVisitorService VisitorService;
/**
* 查询访客信息列表
*/
@PreAuthorize("@ss.hasPermi('crm:visitor:list')")
@GetMapping("/list")
public TableDataInfo list(Visitor Visitor)
{
startPage();
List<Visitor> list = VisitorService.selectVisitorList(Visitor);
return getDataTable(list);
}
/**
* 导出访客信息列表
*/
@PreAuthorize("@ss.hasPermi('crm:visitor:export')")
@Log(title = "访客信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Visitor Visitor)
{
List<Visitor> list = VisitorService.selectVisitorList(Visitor);
ExcelUtil<Visitor> util = new ExcelUtil<Visitor>(Visitor.class);
util.exportExcel(response, list, "访客信息数据");
}
/**
* 获取访客信息详细信息
*/
@PreAuthorize("@ss.hasPermi('crm:visitor:query')")
@GetMapping(value = "/{visitorId}")
public AjaxResult getInfo(@PathVariable("visitorId") Long visitorId)
{
return AjaxResult.success(VisitorService.selectVisitorByVisitorId(visitorId));
}
/**
* 新增访客信息
*/
@PreAuthorize("@ss.hasPermi('crm:visitor:add')")
@Log(title = "访客信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Visitor Visitor)
{
return toAjax(VisitorService.insertVisitor(Visitor));
}
/**
* 修改访客信息
*/
@PreAuthorize("@ss.hasPermi('crm:visitor:edit')")
@Log(title = "访客信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Visitor Visitor)
{
return toAjax(VisitorService.updateVisitor(Visitor));
}
/**
* 删除访客信息
*/
@PreAuthorize("@ss.hasPermi('crm:visitor:remove')")
@Log(title = "访客信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{visitorIds}")
public AjaxResult remove(@PathVariable Long[] visitorIds)
{
return toAjax(VisitorService.deleteVisitorByVisitorIds(visitorIds));
}
}

View File

@ -0,0 +1,129 @@
package com.jlt.farming.crm.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 访客信息对象 pr_visitor
*
* @author ruoyi
* @date 2022-02-08
*/
public class Visitor extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 访客Id */
private Long visitorId;
/** 访客姓名 */
@Excel(name = "访客姓名")
private String visitorName;
/** 访客电话 */
@Excel(name = "访客电话")
private String phone;
/** 访客事由 */
@Excel(name = "访客事由")
private String matter;
/** 待办事项 */
@Excel(name = "待办事项")
private String backlog;
/** 访问时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date visitTime;
/** 状态0正常 1停用 */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
public void setVisitorId(Long visitorId)
{
this.visitorId = visitorId;
}
public Long getVisitorId()
{
return visitorId;
}
public void setVisitorName(String visitorName)
{
this.visitorName = visitorName;
}
public String getVisitorName()
{
return visitorName;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getPhone()
{
return phone;
}
public void setMatter(String matter)
{
this.matter = matter;
}
public String getMatter()
{
return matter;
}
public void setBacklog(String backlog)
{
this.backlog = backlog;
}
public String getBacklog()
{
return backlog;
}
public void setVisitTime(Date visitTime)
{
this.visitTime = visitTime;
}
public Date getVisitTime()
{
return visitTime;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("visitorId", getVisitorId())
.append("visitorName", getVisitorName())
.append("phone", getPhone())
.append("matter", getMatter())
.append("backlog", getBacklog())
.append("visitTime", getVisitTime())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,61 @@
package com.jlt.farming.crm.mapper;
import java.util.List;
import com.jlt.farming.crm.domain.Visitor;
/**
* 访客信息Mapper接口
*
* @author ruoyi
* @date 2022-02-08
*/
public interface VisitorMapper
{
/**
* 查询访客信息
*
* @param visitorId 访客信息主键
* @return 访客信息
*/
public Visitor selectVisitorByVisitorId(Long visitorId);
/**
* 查询访客信息列表
*
* @param Visitor 访客信息
* @return 访客信息集合
*/
public List<Visitor> selectVisitorList(Visitor Visitor);
/**
* 新增访客信息
*
* @param Visitor 访客信息
* @return 结果
*/
public int insertVisitor(Visitor Visitor);
/**
* 修改访客信息
*
* @param Visitor 访客信息
* @return 结果
*/
public int updateVisitor(Visitor Visitor);
/**
* 删除访客信息
*
* @param visitorId 访客信息主键
* @return 结果
*/
public int deleteVisitorByVisitorId(Long visitorId);
/**
* 批量删除访客信息
*
* @param visitorIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteVisitorByVisitorIds(Long[] visitorIds);
}

View File

@ -0,0 +1,61 @@
package com.jlt.farming.crm.service;
import java.util.List;
import com.jlt.farming.crm.domain.Visitor;
/**
* 访客信息Service接口
*
* @author ruoyi
* @date 2022-02-08
*/
public interface IVisitorService
{
/**
* 查询访客信息
*
* @param visitorId 访客信息主键
* @return 访客信息
*/
public Visitor selectVisitorByVisitorId(Long visitorId);
/**
* 查询访客信息列表
*
* @param Visitor 访客信息
* @return 访客信息集合
*/
public List<Visitor> selectVisitorList(Visitor Visitor);
/**
* 新增访客信息
*
* @param Visitor 访客信息
* @return 结果
*/
public int insertVisitor(Visitor Visitor);
/**
* 修改访客信息
*
* @param Visitor 访客信息
* @return 结果
*/
public int updateVisitor(Visitor Visitor);
/**
* 批量删除访客信息
*
* @param visitorIds 需要删除的访客信息主键集合
* @return 结果
*/
public int deleteVisitorByVisitorIds(Long[] visitorIds);
/**
* 删除访客信息信息
*
* @param visitorId 访客信息主键
* @return 结果
*/
public int deleteVisitorByVisitorId(Long visitorId);
}

View File

@ -0,0 +1,97 @@
package com.jlt.farming.crm.service.impl;
import java.util.List;
import com.jlt.farming.crm.domain.Visitor;
import com.jlt.farming.crm.mapper.VisitorMapper;
import com.jlt.farming.crm.service.IVisitorService;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 访客信息Service业务层处理
*
* @author ruoyi
* @date 2022-02-08
*/
@Service
public class VisitorServiceImpl implements IVisitorService
{
@Autowired
private VisitorMapper VisitorMapper;
/**
* 查询访客信息
*
* @param visitorId 访客信息主键
* @return 访客信息
*/
@Override
public Visitor selectVisitorByVisitorId(Long visitorId)
{
return VisitorMapper.selectVisitorByVisitorId(visitorId);
}
/**
* 查询访客信息列表
*
* @param Visitor 访客信息
* @return 访客信息
*/
@Override
public List<Visitor> selectVisitorList(Visitor Visitor)
{
return VisitorMapper.selectVisitorList(Visitor);
}
/**
* 新增访客信息
*
* @param Visitor 访客信息
* @return 结果
*/
@Override
public int insertVisitor(Visitor Visitor)
{
Visitor.setCreateTime(DateUtils.getNowDate());
return VisitorMapper.insertVisitor(Visitor);
}
/**
* 修改访客信息
*
* @param Visitor 访客信息
* @return 结果
*/
@Override
public int updateVisitor(Visitor Visitor)
{
Visitor.setUpdateTime(DateUtils.getNowDate());
return VisitorMapper.updateVisitor(Visitor);
}
/**
* 批量删除访客信息
*
* @param visitorIds 需要删除的访客信息主键
* @return 结果
*/
@Override
public int deleteVisitorByVisitorIds(Long[] visitorIds)
{
return VisitorMapper.deleteVisitorByVisitorIds(visitorIds);
}
/**
* 删除访客信息信息
*
* @param visitorId 访客信息主键
* @return 结果
*/
@Override
public int deleteVisitorByVisitorId(Long visitorId)
{
return VisitorMapper.deleteVisitorByVisitorId(visitorId);
}
}

View File

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jlt.farming.crm.mapper.VisitorMapper">
<resultMap type="Visitor" id="VisitorResult">
<result property="visitorId" column="visitor_id" />
<result property="visitorName" column="visitor_name" />
<result property="phone" column="phone" />
<result property="matter" column="matter" />
<result property="backlog" column="backlog" />
<result property="visitTime" column="visit_time" />
<result property="status" column="status" />
<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="remark" column="remark" />
</resultMap>
<sql id="selectVisitorVo">
select visitor_id, visitor_name, phone, matter, backlog, visit_time, status, create_by, create_time, update_by, update_time, remark from crm_visitor
</sql>
<select id="selectVisitorList" parameterType="Visitor" resultMap="VisitorResult">
<include refid="selectVisitorVo"/>
<where>
<if test="visitorName != null and visitorName != ''"> and visitor_name like concat('%', #{visitorName}, '%')</if>
<if test="phone != null and phone != ''"> and phone like concat('%', #{phone}, '%')</if>
<if test="matter != null and matter != ''"> and matter like concat('%', #{matter}, '%')</if>
<if test="backlog != null and backlog != ''"> and backlog like concat('%', #{backlog}, '%')</if>
<if test="params.beginVisitTime != null and params.beginVisitTime != '' and params.endVisitTime != null and params.endVisitTime != ''"> and visit_time between #{params.beginVisitTime} and #{params.endVisitTime}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
</select>
<select id="selectVisitorByVisitorId" parameterType="Long" resultMap="VisitorResult">
<include refid="selectVisitorVo"/>
where visitor_id = #{visitorId}
</select>
<insert id="insertVisitor" parameterType="Visitor" useGeneratedKeys="true" keyProperty="visitorId">
insert into crm_visitor
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="visitorName != null and visitorName != ''">visitor_name,</if>
<if test="phone != null and phone != ''">phone,</if>
<if test="matter != null and matter != ''">matter,</if>
<if test="backlog != null">backlog,</if>
<if test="visitTime != null">visit_time,</if>
<if test="status != null and status != ''">status,</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="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="visitorName != null and visitorName != ''">#{visitorName},</if>
<if test="phone != null and phone != ''">#{phone},</if>
<if test="matter != null and matter != ''">#{matter},</if>
<if test="backlog != null">#{backlog},</if>
<if test="visitTime != null">#{visitTime},</if>
<if test="status != null and status != ''">#{status},</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="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateVisitor" parameterType="Visitor">
update crm_visitor
<trim prefix="SET" suffixOverrides=",">
<if test="visitorName != null and visitorName != ''">visitor_name = #{visitorName},</if>
<if test="phone != null and phone != ''">phone = #{phone},</if>
<if test="matter != null and matter != ''">matter = #{matter},</if>
<if test="backlog != null">backlog = #{backlog},</if>
<if test="visitTime != null">visit_time = #{visitTime},</if>
<if test="status != null and status != ''">status = #{status},</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="remark != null">remark = #{remark},</if>
</trim>
where visitor_id = #{visitorId}
</update>
<delete id="deleteVisitorByVisitorId" parameterType="Long">
delete from crm_visitor where visitor_id = #{visitorId}
</delete>
<delete id="deleteVisitorByVisitorIds" parameterType="String">
delete from crm_visitor where visitor_id in
<foreach item="visitorId" collection="array" open="(" separator="," close=")">
#{visitorId}
</foreach>
</delete>
</mapper>