src/main/java/com/zy/crm/common/CodeBuilder.java
@@ -17,13 +17,13 @@ // generator.password="xltys1995"; // generator.table="sys_host"; // sqlserver generator.url="127.0.0.1:1433;databasename=zy_crm"; generator.url="192.168.4.15:1433;databasename=zy_crm"; generator.username="sa"; generator.password="sa@123"; // generator.url="localhost:1433;databasename=zy_crm"; // generator.username="sa"; // generator.password="sa@123"; generator.table="man_weekly_cost_types"; generator.table="man_cstmr_grade"; generator.packagePath="com.zy.crm.manager"; generator.js = false; generator.html = false; src/main/java/com/zy/crm/manager/controller/CstmrGradeController.java
New file @@ -0,0 +1,135 @@ package com.zy.crm.manager.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; import com.zy.crm.manager.entity.CstmrGrade; import com.zy.crm.manager.service.CstmrGradeService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; import com.core.domain.KeyValueVo; import com.zy.crm.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.*; @RestController public class CstmrGradeController extends BaseController { @Autowired private CstmrGradeService cstmrGradeService; @RequestMapping(value = "/cstmrGrade/{id}/auth") @ManagerAuth public R get(@PathVariable("id") String id) { return R.ok(cstmrGradeService.selectById(String.valueOf(id))); } @RequestMapping(value = "/cstmrGrade/list/auth") @ManagerAuth public R list(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @RequestParam(required = false)String orderByField, @RequestParam(required = false)String orderByType, @RequestParam(required = false)String condition, @RequestParam Map<String, Object> param){ EntityWrapper<CstmrGrade> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); allLike(CstmrGrade.class, param.keySet(), wrapper, condition); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} return R.ok(cstmrGradeService.selectPage(new Page<>(curr, limit), wrapper)); } private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ for (Map.Entry<String, Object> entry : map.entrySet()){ String val = String.valueOf(entry.getValue()); if (val.contains(RANGE_TIME_LINK)){ String[] dates = val.split(RANGE_TIME_LINK); wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); } else { wrapper.like(entry.getKey(), val); } } } @RequestMapping(value = "/cstmrGrade/add/auth") @ManagerAuth public R add(CstmrGrade cstmrGrade) { cstmrGradeService.insert(cstmrGrade); return R.ok(); } @RequestMapping(value = "/cstmrGrade/update/auth") @ManagerAuth public R update(CstmrGrade cstmrGrade){ if (Cools.isEmpty(cstmrGrade) || null==cstmrGrade.getId()){ return R.error(); } cstmrGradeService.updateById(cstmrGrade); return R.ok(); } @RequestMapping(value = "/cstmrGrade/delete/auth") @ManagerAuth public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ cstmrGradeService.deleteById(id); } return R.ok(); } @RequestMapping(value = "/cstmrGrade/export/auth") @ManagerAuth public R export(@RequestBody JSONObject param){ EntityWrapper<CstmrGrade> wrapper = new EntityWrapper<>(); List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); Map<String, Object> map = excludeTrash(param.getJSONObject("cstmrGrade")); convert(map, wrapper); List<CstmrGrade> list = cstmrGradeService.selectList(wrapper); return R.ok(exportSupport(list, fields)); } @RequestMapping(value = "/cstmrGradeQuery/auth") @ManagerAuth public R query(String condition) { EntityWrapper<CstmrGrade> wrapper = new EntityWrapper<>(); wrapper.like("name", condition); Page<CstmrGrade> page = cstmrGradeService.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); for (CstmrGrade cstmrGrade : page.getRecords()){ Map<String, Object> map = new HashMap<>(); map.put("id", cstmrGrade.getId()); map.put("value", cstmrGrade.getName()); result.add(map); } return R.ok(result); } @RequestMapping(value = "/cstmrGrade/check/column/auth") @ManagerAuth public R query(@RequestBody JSONObject param) { Wrapper<CstmrGrade> wrapper = new EntityWrapper<CstmrGrade>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); if (null != cstmrGradeService.selectOne(wrapper)){ return R.parse(BaseRes.REPEAT).add(getComment(CstmrGrade.class, String.valueOf(param.get("key")))); } return R.ok(); } @RequestMapping("/cstmrGrade/all/get/kv") @ManagerAuth public R getDataKV(@RequestParam(required = false) String condition) { List<KeyValueVo> vos = new ArrayList<>(); Wrapper<CstmrGrade> wrapper = new EntityWrapper<CstmrGrade>().andNew().like("name", condition).orderBy("create_time", false); cstmrGradeService.selectPage(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(String.valueOf(item.getName()), item.getId()))); return R.ok().add(vos); } } src/main/java/com/zy/crm/manager/controller/CstmrTypeController.java
@@ -10,7 +10,9 @@ import com.core.common.DateUtils; import com.core.common.R; import com.zy.crm.common.web.BaseController; import com.zy.crm.manager.entity.CstmrGrade; import com.zy.crm.manager.entity.CstmrType; import com.zy.crm.manager.service.CstmrGradeService; import com.zy.crm.manager.service.CstmrTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -106,7 +108,7 @@ @RequestMapping(value = "/cstmrTypeQuery/auth") @ManagerAuth public R query(String condition) { public R queryType(String condition) { EntityWrapper<CstmrType> wrapper = new EntityWrapper<>(); wrapper.like("id", condition); Page<CstmrType> page = cstmrTypeService.selectPage(new Page<>(0, 10), wrapper); src/main/java/com/zy/crm/manager/entity/Cstmr.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.crm.manager.service.CstmrGradeService; import com.zy.crm.manager.service.CstmrTypeService; import com.zy.crm.manager.service.OrderProductTypeService; import com.zy.crm.system.entity.Dept; @@ -64,6 +65,13 @@ @ApiModelProperty(value= "客户类别") @TableField("cstmr_type") private Long cstmrType; /** * 客户类别 */ @ApiModelProperty(value= "客户类别") @TableField("cstmr_grade") private Long cstmrGrade; /** * 客户代号 @@ -366,6 +374,15 @@ return null; } public String getCstmrGrade$(){ CstmrGradeService service = SpringUtils.getBean(CstmrGradeService.class); CstmrGrade cstmrGrade = service.selectById(this.cstmrGrade); if (!Cools.isEmpty(cstmrGrade)){ return String.valueOf(cstmrGrade.getName()); } return null; } public String getDirector$(){ if (Cools.isEmpty(this.director)) return null; UserService service = SpringUtils.getBean(UserService.class); src/main/java/com/zy/crm/manager/entity/CstmrGrade.java
New file @@ -0,0 +1,198 @@ package com.zy.crm.manager.entity; import com.core.common.Cools;import com.core.common.SpringUtils; import com.zy.crm.system.entity.Dept; import com.zy.crm.system.service.DeptService; import com.zy.crm.system.service.HostService; import com.zy.crm.system.entity.Host; import com.baomidou.mybatisplus.annotations.TableField; import com.core.common.SpringUtils; import com.core.common.SpringUtils; import com.zy.crm.system.service.UserService; import com.zy.crm.system.entity.User; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import com.core.common.SpringUtils; import com.zy.crm.system.service.UserService; import com.zy.crm.system.entity.User; import java.text.SimpleDateFormat; import java.util.Date; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import com.baomidou.mybatisplus.annotations.TableName; import java.io.Serializable; @Data @TableName("man_cstmr_grade") public class CstmrGrade implements Serializable { private static final long serialVersionUID = 1L; /** * ID */ @ApiModelProperty(value= "ID") private Long id; /** * 所属商户 */ @ApiModelProperty(value= "所属商户") @TableField("host_id") private Long hostId; /** * 所属部门 */ @ApiModelProperty(value= "所属部门") @TableField("dept_id") private Long deptId; /** * 名称 */ @ApiModelProperty(value= "名称") private String name; /** * 标识 */ @ApiModelProperty(value= "标识") private String flag; /** * 状态 1: 正常 0: 禁用 */ @ApiModelProperty(value= "状态 1: 正常 0: 禁用 ") private Integer status; /** * 添加人员 */ @ApiModelProperty(value= "添加人员") @TableField("create_by") private Long createBy; /** * 添加时间 */ @ApiModelProperty(value= "添加时间") @TableField("create_time") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 修改人员 */ @ApiModelProperty(value= "修改人员") @TableField("update_by") private Long updateBy; /** * 修改时间 */ @ApiModelProperty(value= "修改时间") @TableField("update_time") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 备注 */ @ApiModelProperty(value= "备注") private String memo; public CstmrGrade() {} public CstmrGrade(Long hostId,Long deptId,String name,String flag,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { this.hostId = hostId; this.deptId = deptId; this.name = name; this.flag = flag; this.status = status; this.createBy = createBy; this.createTime = createTime; this.updateBy = updateBy; this.updateTime = updateTime; this.memo = memo; } // CstmrGrade cstmrGrade = new CstmrGrade( // null, // 所属商户 // null, // 所属部门 // null, // 名称[非空] // null, // 标识 // null, // 状态 // null, // 添加人员 // null, // 添加时间 // null, // 修改人员 // null, // 修改时间 // null // 备注 // ); public String getHostId$(){ HostService service = SpringUtils.getBean(HostService.class); Host host = service.selectById(this.hostId); if (!Cools.isEmpty(host)){ return String.valueOf(host.getName()); } return null; } public String getDeptId$(){ DeptService service = SpringUtils.getBean(DeptService.class); Dept dept = service.selectById(this.deptId); if (!Cools.isEmpty(dept)){ return String.valueOf(dept.getName()); } return null; } public String getStatus$(){ if (null == this.status){ return null; } switch (this.status){ case 1: return "正常"; case 0: return "禁用"; default: return String.valueOf(this.status); } } public String getCreateBy$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.selectById(this.createBy); if (!Cools.isEmpty(user)){ return String.valueOf(user.getNickname()); } return null; } public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } public String getUpdateBy$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.selectById(this.updateBy); if (!Cools.isEmpty(user)){ return String.valueOf(user.getNickname()); } return null; } public String getUpdateTime$(){ if (Cools.isEmpty(this.updateTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } } src/main/java/com/zy/crm/manager/mapper/CstmrGradeMapper.java
New file @@ -0,0 +1,12 @@ package com.zy.crm.manager.mapper; import com.zy.crm.manager.entity.CstmrGrade; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Mapper @Repository public interface CstmrGradeMapper extends BaseMapper<CstmrGrade> { } src/main/java/com/zy/crm/manager/service/CstmrGradeService.java
New file @@ -0,0 +1,8 @@ package com.zy.crm.manager.service; import com.zy.crm.manager.entity.CstmrGrade; import com.baomidou.mybatisplus.service.IService; public interface CstmrGradeService extends IService<CstmrGrade> { } src/main/java/com/zy/crm/manager/service/impl/CstmrGradeServiceImpl.java
New file @@ -0,0 +1,12 @@ package com.zy.crm.manager.service.impl; import com.zy.crm.manager.mapper.CstmrGradeMapper; import com.zy.crm.manager.entity.CstmrGrade; import com.zy.crm.manager.service.CstmrGradeService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @Service("cstmrGradeService") public class CstmrGradeServiceImpl extends ServiceImpl<CstmrGradeMapper, CstmrGrade> implements CstmrGradeService { } src/main/resources/mapper/CstmrGradeMapper.xml
New file @@ -0,0 +1,21 @@ <?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.zy.crm.manager.mapper.CstmrGradeMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.crm.manager.entity.CstmrGrade"> <id column="id" property="id" /> <result column="host_id" property="hostId" /> <result column="dept_id" property="deptId" /> <result column="name" property="name" /> <result column="flag" property="flag" /> <result column="status" property="status" /> <result column="create_by" property="createBy" /> <result column="create_time" property="createTime" /> <result column="update_by" property="updateBy" /> <result column="update_time" property="updateTime" /> <result column="memo" property="memo" /> </resultMap> </mapper> src/main/resources/mapper/CstmrMapper.xml
@@ -35,6 +35,7 @@ <result column="credit_code" property="creditCode" /> <result column="issue_time" property="issueTime" /> <result column="company_type" property="companyType" /> <result column="company_grade" property="companyGrade" /> <result column="company_person" property="companyPerson" /> <result column="company_status" property="companyStatus" /> <result column="reg_money" property="regMoney" /> src/main/webapp/static/js/cstmr/cstmr.js
@@ -149,6 +149,7 @@ ,{field: 'weeklyDailyReality', align: 'center',title: '行程',hide : false, toolbar: '#tbLookReality'} ,{field: 'remarks', align: 'left',title: '备注', hide: false, templet:function(d){return emptyShow(d.remarks)}} ,{field: 'cstmrType$', align: 'left',title: '客户类别', hide: false} ,{field: 'cstmrGrade$', align: 'left',title: '客户类别', hide: false} ,{field: 'industry', align: 'left',title: '客户行业', hide: false} ,{field: 'productCategory', align: 'left',title: '产品类型', hide: false} ,{field: 'userId$', align: 'left',title: '添加人员', hide: true} src/main/webapp/views/cstmr/cstmr.html
@@ -175,6 +175,18 @@ </div> </div> <div class="layui-form-item"> <label class="layui-form-label layui-form-required">客户等级: </label> <div class="layui-input-block cool-auto-complete"> <input class="layui-input" name="cstmrGrade" placeholder="请输入客户等级" lay-vertype="tips" lay-verify="required" style="display: none"> <input id="cstmrGrade$" name="cstmrGrade$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入客户等级" onfocus=this.blur()> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="cstmrGradeQueryBycstmrGrade" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="cstmrGradeQueryBycstmrGradeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> </select> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label layui-form-required">客户行业: </label> <div class="layui-input-block cool-auto-complete"> <input class="layui-input" name="industry" placeholder="请输入客户行业" style="display: none"> src/main/webapp/views/cstmr/cstmr2.html
@@ -188,6 +188,18 @@ </div> </div> <div class="layui-form-item"> <label class="layui-form-label layui-form-required">客户等级: </label> <div class="layui-input-block cool-auto-complete"> <input class="layui-input" name="cstmrGrade" placeholder="请输入客户等级" lay-vertype="tips" lay-verify="required" style="display: none"> <input id="cstmrGrade$" name="cstmrGrade$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入客户等级" onfocus=this.blur()> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="cstmrGradeQueryBycstmrGrade" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="cstmrGradeQueryBycstmrGradeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> </select> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label layui-form-required">客户行业: </label> <div class="layui-input-block cool-auto-complete"> <input class="layui-input" name="industry" placeholder="请输入客户行业" style="display: none">