Commit 9c25c602 authored by daniel's avatar daniel

feat(module): 自助服务模块配置

parent cdbfa57e
package com.dlbridge.jadp.plugins.cmpt.dao.mapper;
import com.dlbridge.jadp.plugins.cmpt.dao.model.JoyfunModule;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface JoyfunModuleMapper {
int insertModule(JoyfunModule joyfunModule);
int logicDeleteModule(JoyfunModule joyfunModule);
List<JoyfunModule> selectModuleList(@Param("status") Integer status);
int updateModuleStatus(JoyfunModule joyfunModule);
int updateModuleSort(JoyfunModule joyfunModule);
JoyfunModule getModuleById(Integer moduleId);
JoyfunModule getModuleByName(String name);
int updateModule(JoyfunModule joyfunModule);
}
<?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.dlbridge.jadp.plugins.cmpt.dao.mapper.JoyfunModuleMapper">
<insert id="insertModule">
INSERT INTO joyfun_module (
icon, name, sort, path, is_deleted, status, create_time, update_time
) VALUES (
#{icon}, #{name}, #{sort}, #{path}, #{isDeleted}, #{status}, NOW(), NOW()
)
</insert>
<update id="logicDeleteModule">
UPDATE joyfun_module
SET is_deleted = true
WHERE id = #{id}
</update>
<select id="selectModuleList" resultType="com.dlbridge.jadp.plugins.cmpt.dao.model.JoyfunModule">
SELECT id, icon, name,path, sort, is_deleted AS isDeleted, status, create_time AS createTime, update_time AS updateTime
FROM joyfun_module
WHERE is_deleted = 0
<if test="status!= null">
AND status = #{status}
</if>
ORDER BY sort ASC
</select>
<select id="getModuleById" resultType="com.dlbridge.jadp.plugins.cmpt.dao.model.JoyfunModule">
SELECT id, icon, name,path, sort, is_deleted AS isDeleted, status, create_time AS createTime, update_time AS updateTime
FROM joyfun_module
WHERE id = #{id} AND is_deleted = 0
</select>
<select id="getModuleByName" resultType="com.dlbridge.jadp.plugins.cmpt.dao.model.JoyfunModule">
SELECT id, icon, name,path, sort, is_deleted AS isDeleted, status, create_time AS createTime, update_time AS updateTime
FROM joyfun_module
WHERE name = #{name} AND is_deleted = 0
</select>
<update id="updateModuleStatus">
UPDATE joyfun_module
SET status = #{status}, update_time = NOW()
WHERE id = #{id}
</update>
<update id="updateModuleSort">
UPDATE joyfun_module
SET sort = #{sort}, update_time = NOW()
WHERE id = #{id}
</update>
<update id="updateModule">
UPDATE joyfun_module
<set>
<if test="icon != null and icon != ''">
icon = #{icon},
</if>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="sort != null">
sort = #{sort},
</if>
<if test="path != null and path != ''">
path = #{path},
</if>
<if test="status != null">
status = #{status},
</if>
update_time = NOW()
</set>
WHERE id = #{id}
</update>
</mapper>
package com.dlbridge.jadp.plugins.cmpt.dao.model;
import lombok.Data;
import java.sql.Timestamp;
@Data
public class JoyfunModule {
private Long id;
// 图标URL
private String icon;
// 服务名称
private String name;
// 跳转路径
private String path;
//排序序号
private Integer sort;
// 是否删除
private Integer isDeleted;
// 状态(0:无效,1:有效)
private Integer status;
// 创建时间
//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Timestamp createTime;
// 更新时间
//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Timestamp updateTime;
}
package com.dlbridge.jadp.plugins.cmpt.service;
import com.dlbridge.jadp.plugins.cmpt.dao.mapper.JoyfunModuleMapper;
import com.dlbridge.jadp.plugins.cmpt.dao.model.JoyfunModule;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class JoyfunModuleService {
@Resource
private JoyfunModuleMapper joyfunModuleMapper;
public int addModule(JoyfunModule joyfunModule) {
return joyfunModuleMapper.insertModule(joyfunModule);
}
public int deleteModule(JoyfunModule joyfunModule) {
return joyfunModuleMapper.logicDeleteModule(joyfunModule);
}
public List<JoyfunModule> listModules(Integer status) {
return joyfunModuleMapper.selectModuleList(status);
}
public int updateModuleStatus(JoyfunModule joyfunModule) {
return joyfunModuleMapper.updateModuleStatus(joyfunModule);
}
public int updateModuleSort(JoyfunModule joyfunModule) {
return joyfunModuleMapper.updateModuleSort(joyfunModule);
}
public JoyfunModule getModuleByName(String name) {
return joyfunModuleMapper.getModuleByName(name);
}
public JoyfunModule getModuleById(Integer id) {
return joyfunModuleMapper.getModuleById(id);
}
public int updateModule(JoyfunModule joyfunModule) {
return joyfunModuleMapper.updateModule(joyfunModule);
}
}
package com.dlbridge.jadp.plugins.cmpt.web; package com.dlbridge.jadp.plugins.cmpt.web;
import com.dlbridge.jadp.plugins.cmpt.bean.JoyfulRichTextBean; import com.dlbridge.jadp.plugins.cmpt.bean.JoyfulRichTextBean;
import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting; import com.dlbridge.jadp.plugins.cmpt.dao.model.*;
import com.dlbridge.jadp.plugins.cmpt.dao.model.JoyfulCheckinRecords;
import com.dlbridge.jadp.plugins.cmpt.dao.model.JoyfulRichText;
import com.dlbridge.jadp.plugins.cmpt.dao.model.UserPoint;
import com.dlbridge.jadp.plugins.cmpt.service.*; import com.dlbridge.jadp.plugins.cmpt.service.*;
import com.neusoft.www.utils.web.Result; import com.neusoft.www.utils.web.Result;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -44,6 +42,8 @@ public class JoyfulRoadController { ...@@ -44,6 +42,8 @@ public class JoyfulRoadController {
@Resource @Resource
private WeatherService weatherService; private WeatherService weatherService;
@Resource
private JoyfunModuleService joyfunModuleService;
@PostMapping(value = "/updCmptsettingName") @PostMapping(value = "/updCmptsettingName")
@ResponseBody @ResponseBody
...@@ -200,4 +200,97 @@ public class JoyfulRoadController { ...@@ -200,4 +200,97 @@ public class JoyfulRoadController {
List<JoyfulCheckinRecords> joyfulCheckinRecordsList = joyfulCheckinRecordsService.getJoyfulCheckinRecordsList(userId, pageNo, pageCount); List<JoyfulCheckinRecords> joyfulCheckinRecordsList = joyfulCheckinRecordsService.getJoyfulCheckinRecordsList(userId, pageNo, pageCount);
return Result.success().setContent(joyfulCheckinRecordsList); return Result.success().setContent(joyfulCheckinRecordsList);
} }
//-------------------------自助服务模块-----------------------
@PostMapping("/addModule")
@ApiOperation(value = "新增服务模块", notes = "新增一个新的服务模块")
public Result addModule(@RequestBody JoyfunModule joyfunModule) {
// 判断内容
if (StringUtils.isBlank(joyfunModule.getName())) {
return Result.fail().setMsg("服务模块名称不能为空!");
}
if (StringUtils.isBlank(joyfunModule.getIcon())) {
return Result.fail().setMsg("服务模块图标不能为空!");
}
if (StringUtils.isBlank(joyfunModule.getIcon())) {
return Result.fail().setMsg("服务模块图标不能为空!");
}
JoyfunModule exitModule = joyfunModuleService.getModuleByName(joyfunModule.getName());
if(exitModule != null){
return Result.fail().setMsg("服务模块已存在!");
}
int result = joyfunModuleService.addModule(joyfunModule);
if (result != 1) {
return Result.fail().setMsg("新增失败!");
}
return Result.success().setMsg("新增成功。");
}
@PostMapping("/updateModule")
@ApiOperation(value = "更新服务模块", notes = "更新服务模块")
public Result updateModule(@RequestBody JoyfunModule joyfunModule) {
// 判断内容
if (StringUtils.isBlank(joyfunModule.getName())) {
return Result.fail().setMsg("服务模块名称不能为空!");
}
if (StringUtils.isBlank(joyfunModule.getIcon())) {
return Result.fail().setMsg("服务模块图标不能为空!");
}
if (StringUtils.isBlank(joyfunModule.getPath())) {
return Result.fail().setMsg("跳转路径不能为空!");
}
int result = joyfunModuleService.updateModule(joyfunModule);
if (result != 1) {
return Result.fail().setMsg("更新失败!");
}
return Result.success().setMsg("更新成功。");
}
@PostMapping("/delModule")
@ApiOperation(value = "逻辑删除服务模块", notes = "逻辑删除一个服务模块")
public Result deleteModule(@RequestBody JoyfunModule joyfunModule) {
int result = joyfunModuleService.deleteModule(joyfunModule);
if (result != 1) {
return Result.fail().setMsg("删除失败!");
}
return Result.success().setMsg("删除成功。");
}
@GetMapping("/getModule/{id}")
@ApiOperation(value = "获取服务模块详情", notes = "获取服务模块详情")
public Result getModule(@PathVariable("id") Integer id) {
JoyfunModule data = joyfunModuleService.getModuleById(id);
return Result.success().setContent(data);
}
@GetMapping("/modules")
@ApiOperation(value = "获取服务模块列表", notes = "获取所有服务模块列表")
public Result<List<JoyfunModule>> listModules(@RequestParam(value = "status", required = false) Integer status) {
List<JoyfunModule> serviceModules = joyfunModuleService.listModules(status);
return Result.success().setContent(serviceModules);
}
@PostMapping("/updateModuleStatus")
@ApiOperation(value = "修改服务模块状态", notes = "修改服务模块的状态")
public Result updateModuleStatus(@RequestBody JoyfunModule joyfunModule) {
int result = joyfunModuleService.updateModuleStatus(joyfunModule);
if (result != 1) {
return Result.fail().setMsg("状态修改失败!");
}
return Result.success().setMsg("状态修改成功。");
}
@PostMapping("/updateModuleSort")
@ApiOperation(value = "更新服务模块排序", notes = "更新服务模块的排序序号")
public Result updateModuleSort(@RequestBody JoyfunModule joyfunModule) {
int result = joyfunModuleService.updateModuleSort(joyfunModule);
if (result != 1) {
return Result.fail().setMsg("排序更新失败!");
}
return Result.success().setMsg("排序更新成功。");
}
} }
\ No newline at end of file
package com.dlbridge.jadp.plugins.cmpt.web;
import com.dlbridge.jadp.common.interceptor.PageView;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.service.CmptService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
@Controller
@Log4j2
@RequestMapping("gk/module/")
@ApiIgnore
public class ModuleSettingController {
@Resource
private CmptService cmptService;
@RequestMapping("index/{cmptId}")
@PageView
public ModelAndView outterLink(@PathVariable("cmptId") Integer cmptId, ModelAndView mv) {
Cmpt cmpt = cmptService.queryCmptBycmptId(cmptId);
mv.addObject("cmpt", cmpt);
mv.setViewName("cmpt/module");
return mv;
}
}
This diff is collapsed.
...@@ -331,7 +331,7 @@ ...@@ -331,7 +331,7 @@
</td> </td>
<td style="text-align: center"> <td style="text-align: center">
<span class="badge badge-pill" <span class="badge badge-pill"
:class="[item.status==1?'badge-success':'badge-default']" :class="[item.status==1?'badge-success':'badge-danger']"
v-text="statusType[item.status]"></span> v-text="statusType[item.status]"></span>
</td> </td>
<td style="text-align: center"> <td style="text-align: center">
...@@ -387,27 +387,8 @@ ...@@ -387,27 +387,8 @@
<span class="title-new">服务类型</span> <span class="title-new">服务类型</span>
<div class="label-box"> <div class="label-box">
<label v-for="item in modules" :key="item.value">
<label> <input type="radio" v-model="service.type" :value="item.value"> {{item.name}}
<input type="radio" v-model="service.type" :value="3"> 特色民宿
</label>
<label>
<input type="radio" v-model="service.type" :value="4"> 旅游景点
</label>
<label>
<input type="radio" v-model="service.type" :value="5"> 特色餐饮
</label>
<label>
<input type="radio" v-model="service.type" :value="6"> 当地特产
</label>
<label>
<input type="radio" v-model="service.type" :value="7"> 应急避险
</label>
<label>
<input type="radio" v-model="service.type" :value="8"> 医疗点位
</label>
<label>
<input type="radio" v-model="service.type" :value="9"> 运动产品
</label> </label>
</div> </div>
</div> </div>
...@@ -415,20 +396,8 @@ ...@@ -415,20 +396,8 @@
<div class="func"> <div class="func">
<span class="title-new">子类型</span> <span class="title-new">子类型</span>
<div class="label-box"> <div class="label-box">
<label> <label v-for="item in categoryOptions" :key="item.value">
<input type="checkbox" v-model="service.category" :value="1"> 打卡点 <input type="checkbox" v-model="service.category" :value="item.value"> {{item.name}}
</label>
<label>
<input type="checkbox" v-model="service.category" :value="2"> 服务驿站
</label>
<label>
<input type="checkbox" v-model="service.category" :value="3"> 民宿
</label>
<label>
<input type="checkbox" v-model="service.category" :value="4"> 景点
</label>
<label>
<input type="checkbox" v-model="service.category" :value="5"> 餐饮
</label> </label>
</div> </div>
</div> </div>
...@@ -558,40 +527,8 @@ ...@@ -558,40 +527,8 @@
pageSize: 10, pageSize: 10,
totalPage: 1, totalPage: 1,
// 3:特色民宿:4:旅游景点,5:特色餐饮 6:当地特产 7: 应急避险 8: 医疗点位 9:运动产品 // 3:特色民宿:4:旅游景点,5:特色餐饮 6:当地特产 7: 应急避险 8: 医疗点位 9:运动产品
serviceTypes: { serviceTypes: {},
0: { modules: [],
name: '全部',
value: 0,
},
3: {
name: '特色民宿',
value: 3,
},
4: {
name: '旅游景点',
value: 4,
},
5: {
name: '特色餐饮',
value: 5,
},
6: {
name: '当地特产',
value: 6,
},
7: {
name: '应急避险',
value: 7,
},
8: {
name: '医疗点位',
value: 8,
},
9: {
name: '运动产品',
value: 9,
},
},
// 子类目 // 子类目
categoryOptions: [ categoryOptions: [
{ {
...@@ -748,6 +685,41 @@ ...@@ -748,6 +685,41 @@
cancel() { cancel() {
this.dialog = false; this.dialog = false;
}, },
queryModules() {
if (!getCId) return
const url = '/api/joyfulRoad/modules'
$.ajax({
type: 'GET',
contentType: 'application/json',
url,
beforeSend: () => {
layer.load()
},
complete: () => {
layer.closeAll()
},
success: (data) => {
const filters = data.content.filter(v=>v.name!=='天气服务')
let list = filters.map(item => {
return {
[item.id]: {
value: item.id,
name: item.name
}
};
});
this.modules = filters
list.unshift({
0:{
value: 0,
name: '全部'
}
})
this.serviceTypes = Object.assign({}, ...list);
this.queryAll()
}
})
},
// 查询所有 // 查询所有
queryAll() { queryAll() {
if (!getCId) return if (!getCId) return
...@@ -841,7 +813,7 @@ ...@@ -841,7 +813,7 @@
} }
} }
}); });
app.queryAll(); app.queryModules();
</script> </script>
</body> </body>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment