1.文案调整(完成)

归属人员 这个称呼改为 公众号负责人
作者花名: 这个成为改为 文章默认作者名

2.在创建文章的时候,没有填作者名,则将公众号作者名带入 (完成)

3.文章标签修改时增加默认示例,示例内容为:微信/淘系/视频号,且文本框调整为3行 (完成)

4.文章标签抽出来单独一个菜单 (完成)

5.用户阅读文章时,需要将文章标签存储到用户表 playlet_public_user
This commit is contained in:
kuang.yife 2024-08-14 15:42:43 +08:00
parent cbcfd50553
commit bcdae44440
26 changed files with 800 additions and 36 deletions

View File

@ -79,7 +79,7 @@ public class PlayletPublicAccountController extends BaseController
{ {
// 判断是否是管理员 // 判断是否是管理员
if(!this.getSysUser().isAdmin()){ if(!this.getSysUser().isAdmin()){
playletPublicAccount.setManagerId(this.getUserId()); playletPublicAccount.setManagerIds(this.getUserId().toString());
} }
startPage(); startPage();
List<PlayletPublicAccount> list = playletPublicAccountService.selectPlayletPublicAccountList(playletPublicAccount); List<PlayletPublicAccount> list = playletPublicAccountService.selectPlayletPublicAccountList(playletPublicAccount);

View File

@ -5,12 +5,13 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.playlet.common.core.domain.entity.SysDept;
import com.playlet.common.utils.StringUtils; import com.playlet.common.utils.StringUtils;
import com.playlet.system.domain.PlayletPublicAccount; import com.playlet.system.domain.PlayletPublicAccount;
import com.playlet.system.domain.PublicDeptTags;
import com.playlet.system.domain.PublicDetailComment; import com.playlet.system.domain.PublicDetailComment;
import com.playlet.system.service.IPlayletItemService; import com.playlet.system.service.*;
import com.playlet.system.service.IPlayletPublicAccountService; import com.playlet.web.req.PublicDetailTag;
import com.playlet.system.service.IPublicDetailShareService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -19,7 +20,6 @@ import org.springframework.web.bind.annotation.*;
import com.playlet.common.annotation.Log; import com.playlet.common.annotation.Log;
import com.playlet.common.enums.BusinessType; import com.playlet.common.enums.BusinessType;
import com.playlet.system.domain.PlayletPublicDetail; import com.playlet.system.domain.PlayletPublicDetail;
import com.playlet.system.service.IPlayletPublicDetailService;
import com.playlet.common.core.controller.BaseController; import com.playlet.common.core.controller.BaseController;
import com.playlet.common.core.domain.AjaxResult; import com.playlet.common.core.domain.AjaxResult;
import com.playlet.common.utils.poi.ExcelUtil; import com.playlet.common.utils.poi.ExcelUtil;
@ -49,6 +49,11 @@ public class PlayletPublicDetailController extends BaseController
@Autowired @Autowired
private IPublicDetailShareService publicDetailShareService; private IPublicDetailShareService publicDetailShareService;
@Autowired
private ISysDeptService deptService;
@Autowired
private IPublicDeptTagsService deptTagsService;
@GetMapping("/wxQrcode/{id}") @GetMapping("/wxQrcode/{id}")
public String wxQrcode(@PathVariable("id") String id, ModelMap mmap) { public String wxQrcode(@PathVariable("id") String id, ModelMap mmap) {
@ -101,7 +106,7 @@ public class PlayletPublicDetailController extends BaseController
{ {
if(!this.getSysUser().isAdmin()){ if(!this.getSysUser().isAdmin()){
List<PlayletPublicAccount> accounts = playletPublicAccountService.lambdaQuery().select(PlayletPublicAccount::getId) List<PlayletPublicAccount> accounts = playletPublicAccountService.lambdaQuery().select(PlayletPublicAccount::getId)
.eq(PlayletPublicAccount::getManagerId, this.getUserId()) .like(PlayletPublicAccount::getManagerIds, this.getUserId())
.list(); .list();
if(CollectionUtil.isEmpty(accounts)){ if(CollectionUtil.isEmpty(accounts)){
return getDataTable(new ArrayList<>()); return getDataTable(new ArrayList<>());
@ -149,6 +154,20 @@ public class PlayletPublicDetailController extends BaseController
}else { }else {
modelMap.put("publicAccounts", playletPublicAccountService.selectPlayletPublicAccountList(new PlayletPublicAccount())); modelMap.put("publicAccounts", playletPublicAccountService.selectPlayletPublicAccountList(new PlayletPublicAccount()));
} }
PublicDeptTags tagsList = deptTagsService.lambdaQuery().eq(PublicDeptTags::getDeptId, this.getSysUser().getDeptId()).one();
if(tagsList != null){
String detailTags = tagsList.getTags();
if(StringUtils.isNotEmpty(detailTags)){
List<PublicDetailTag> tags = new ArrayList<>();
String [] arr = detailTags.split("/");
for (String str : arr) {
PublicDetailTag tag = new PublicDetailTag();
tag.setTag(str);
tags.add(tag);
}
modelMap.put("tags", tags);
}
}
return prefix + "/add"; return prefix + "/add";
} }
@ -164,6 +183,12 @@ public class PlayletPublicDetailController extends BaseController
if("02".equals(playletPublicDetail.getType())){ if("02".equals(playletPublicDetail.getType())){
playletPublicDetail.setContent(playletPublicDetail.getPdfUrl()); playletPublicDetail.setContent(playletPublicDetail.getPdfUrl());
} }
if(StringUtils.isEmpty(playletPublicDetail.getAuthorAlias()) && playletPublicDetail.getPublicId() != null){
PlayletPublicAccount account = playletPublicAccountService.getById(playletPublicDetail.getPublicId());
if(account != null){
playletPublicDetail.setAuthorAlias(account.getAuthorAlias());
}
}
return toAjax(playletPublicDetailService.insertPlayletPublicDetail(playletPublicDetail)); return toAjax(playletPublicDetailService.insertPlayletPublicDetail(playletPublicDetail));
} }
@ -184,6 +209,20 @@ public class PlayletPublicDetailController extends BaseController
mmap.put("publicAccounts", playletPublicAccountService.selectPlayletPublicAccountList(new PlayletPublicAccount())); mmap.put("publicAccounts", playletPublicAccountService.selectPlayletPublicAccountList(new PlayletPublicAccount()));
} }
mmap.put("playletPublicDetail", playletPublicDetail); mmap.put("playletPublicDetail", playletPublicDetail);
PublicDeptTags tagsList = deptTagsService.lambdaQuery().eq(PublicDeptTags::getDeptId, this.getSysUser().getDeptId()).one();
if(tagsList != null){
String detailTags = tagsList.getTags();
if(StringUtils.isNotEmpty(detailTags)){
List<PublicDetailTag> tags = new ArrayList<>();
String [] arr = detailTags.split("/");
for (String str : arr) {
PublicDetailTag tag = new PublicDetailTag();
tag.setTag(str);
tags.add(tag);
}
mmap.put("tags", tags);
}
}
return prefix + "/edit"; return prefix + "/edit";
} }

View File

@ -0,0 +1,136 @@
package com.playlet.web.controller.system;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.playlet.common.annotation.Log;
import com.playlet.common.enums.BusinessType;
import com.playlet.system.domain.PublicDeptTags;
import com.playlet.system.service.IPublicDeptTagsService;
import com.playlet.common.core.controller.BaseController;
import com.playlet.common.core.domain.AjaxResult;
import com.playlet.common.utils.poi.ExcelUtil;
import com.playlet.common.core.page.TableDataInfo;
/**
* 文章标签Controller
*
* @author ruoyi
* @date 2024-08-14
*/
@Controller
@RequestMapping("/system/tags")
public class PublicDeptTagsController extends BaseController
{
private String prefix = "system/tags";
@Autowired
private IPublicDeptTagsService publicDeptTagsService;
// @RequiresPermissions("system:tags:view")
@GetMapping()
public String tags()
{
return prefix + "/tags";
}
/**
* 查询文章标签列表
*/
// @RequiresPermissions("system:tags:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(PublicDeptTags publicDeptTags)
{
if(!this.getSysUser().isAdmin()){
publicDeptTags.setDeptId(this.getSysUser().getDeptId());
}
startPage();
List<PublicDeptTags> list = publicDeptTagsService.selectPublicDeptTagsList(publicDeptTags);
return getDataTable(list);
}
/**
* 导出文章标签列表
*/
// @RequiresPermissions("system:tags:export")
@Log(title = "文章标签", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(PublicDeptTags publicDeptTags)
{
List<PublicDeptTags> list = publicDeptTagsService.selectPublicDeptTagsList(publicDeptTags);
ExcelUtil<PublicDeptTags> util = new ExcelUtil<PublicDeptTags>(PublicDeptTags.class);
return util.exportExcel(list, "文章标签数据");
}
/**
* 新增文章标签
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
* 新增保存文章标签
*/
// @RequiresPermissions("system:tags:add")
@Log(title = "文章标签", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(PublicDeptTags publicDeptTags)
{
long count = publicDeptTagsService.lambdaQuery().eq(PublicDeptTags::getDeptId, this.getSysUser().getDeptId()).count();
if(count > 0){
return AjaxResult.error("请在已存在标签上做修改!");
}
publicDeptTags.setDeptId(this.getSysUser().getDeptId());
return toAjax(publicDeptTagsService.insertPublicDeptTags(publicDeptTags));
}
/**
* 修改文章标签
*/
// @RequiresPermissions("system:tags:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
PublicDeptTags publicDeptTags = publicDeptTagsService.selectPublicDeptTagsById(id);
mmap.put("publicDeptTags", publicDeptTags);
return prefix + "/edit";
}
/**
* 修改保存文章标签
*/
// @RequiresPermissions("system:tags:edit")
@Log(title = "文章标签", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(PublicDeptTags publicDeptTags)
{
publicDeptTags.setDeptId(this.getSysUser().getDeptId());
return toAjax(publicDeptTagsService.updatePublicDeptTags(publicDeptTags));
}
/**
* 删除文章标签
*/
// @RequiresPermissions("system:tags:remove")
@Log(title = "文章标签", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(publicDeptTagsService.deletePublicDeptTagsByIds(ids));
}
}

View File

@ -66,7 +66,7 @@ public class PublicDetailCommentController extends BaseController
if(!this.getSysUser().isAdmin()){ if(!this.getSysUser().isAdmin()){
// 公众号 // 公众号
List<PlayletPublicAccount> accounts = playletPublicAccountService.lambdaQuery().select(PlayletPublicAccount::getId) List<PlayletPublicAccount> accounts = playletPublicAccountService.lambdaQuery().select(PlayletPublicAccount::getId)
.eq(PlayletPublicAccount::getManagerId, this.getUserId()) .like(PlayletPublicAccount::getManagerIds, this.getUserId())
.list(); .list();
if(CollectionUtil.isEmpty(accounts)){ if(CollectionUtil.isEmpty(accounts)){
return getDataTable(new ArrayList<>()); return getDataTable(new ArrayList<>());

View File

@ -0,0 +1,13 @@
package com.playlet.web.req;
import lombok.Data;
/**
* @author clunt
*/
@Data
public class PublicDetailTag {
private String tag;
}

View File

@ -25,6 +25,8 @@ public class PublicDetailShareAppServiceImpl implements PublicDetailShareAppServ
@Override @Override
public void addRecord(PublicDetailShare publicDetailShare) { public void addRecord(PublicDetailShare publicDetailShare) {
// 文章信息
PlayletPublicDetail detail = iPlayletPublicDetailService.getById(publicDetailShare.getDetailId());
// 翻译 // 翻译
PlayletPublicUser share = iPlayletPublicUserService.selectPlayletPublicUserById(publicDetailShare.getAuthorId()); PlayletPublicUser share = iPlayletPublicUserService.selectPlayletPublicUserById(publicDetailShare.getAuthorId());
PlayletPublicUser userOne = iPlayletPublicUserService.selectPlayletPublicUserById(publicDetailShare.getReaderOneId()); PlayletPublicUser userOne = iPlayletPublicUserService.selectPlayletPublicUserById(publicDetailShare.getReaderOneId());
@ -35,9 +37,17 @@ public class PublicDetailShareAppServiceImpl implements PublicDetailShareAppServ
} }
if(userOne != null){ if(userOne != null){
publicDetailShare.setReaderOneName(userOne.getName()); publicDetailShare.setReaderOneName(userOne.getName());
// 增加1的阅读标签
if(!userOne.getRemark().contains(detail.getDetailTag())){
userOne.setRemark(userOne.getRemark()+"|" + detail.getDetailTag());
iPlayletPublicUserService.updateById(userOne);
}
} }
if(userTwo != null){ if(userTwo != null){
publicDetailShare.setReaderTwoName(userTwo.getName()); publicDetailShare.setReaderTwoName(userTwo.getName());
// 增加用户2的阅读标签
userTwo.setRemark(userTwo.getRemark()+"|" + detail.getDetailTag());
iPlayletPublicUserService.updateById(userTwo);
} }
// 查询是否二次记录 // 查询是否二次记录
long readCount = iPublicDetailShareService.lambdaQuery() long readCount = iPublicDetailShareService.lambdaQuery()

View File

@ -34,6 +34,12 @@
<input class="form-control" type="text" name="publicAccountLimit"> <input class="form-control" type="text" name="publicAccountLimit">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">文章自定义标签:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="detailTags">
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required">显示排序:</label> <label class="col-sm-3 control-label is-required">显示排序:</label>
<div class="col-sm-8"> <div class="col-sm-8">

View File

@ -82,6 +82,11 @@
align: "left" align: "left"
}, },
{ {
field: 'detailTags',
title: '文章标签',
align: "left"
},
{
field: 'orderNum', field: 'orderNum',
title: '排序', title: '排序',
align: "left" align: "left"

View File

@ -35,6 +35,12 @@
<input class="form-control" type="text" name="publicAccountLimit" th:field="*{publicAccountLimit}" id="publicAccountLimit" required> <input class="form-control" type="text" name="publicAccountLimit" th:field="*{publicAccountLimit}" id="publicAccountLimit" required>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">文章标签:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="detailTags" th:field="*{detailTags}" id="detailTags" required>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required">显示排序:</label> <label class="col-sm-3 control-label is-required">显示排序:</label>
<div class="col-sm-8"> <div class="col-sm-8">

View File

@ -72,10 +72,7 @@
{ {
field: 'publicType', field: 'publicType',
title: '内容方向', title: '内容方向',
align: 'center', align: 'center'
formatter: function(value, row, index) {
return $.table.selectDictLabel(typeDict, value);
}
}, },
{ {
field: 'introduction', field: 'introduction',
@ -84,7 +81,7 @@
}, },
{ {
field: 'authorAlias', field: 'authorAlias',
title: '作者名' title: '文章默认作者名'
}, },
{ {
field: 'logoUrl', field: 'logoUrl',
@ -108,7 +105,7 @@
}, },
{ {
field: 'managerName', field: 'managerName',
title: '运营人员' title: '公众号负责人'
}, },
{ {
field: 'remark', field: 'remark',

View File

@ -2,6 +2,7 @@
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head> <head>
<th:block th:include="include :: header('新增公众号列')" /> <th:block th:include="include :: header('新增公众号列')" />
<th:block th:include="include :: select2-css" />
<th:block th:include="include :: summernote-css" /> <th:block th:include="include :: summernote-css" />
<th:block th:include="include :: bootstrap-fileinput-css"/> <th:block th:include="include :: bootstrap-fileinput-css"/>
</head> </head>
@ -17,9 +18,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">内容方向:</label> <label class="col-sm-3 control-label">内容方向:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<select name="publicType" class="form-control m-b" th:with="type=${@dict.getType('sys_public_type')}"> <input name="publicType" class="form-control" type="text">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -38,7 +37,7 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">运营人员</label> <label class="col-sm-3 control-label">公众号负责人</label>
<div class="col-sm-8"> <div class="col-sm-8">
<select id="managerId" name="managerId" class="form-control m-b" required> <select id="managerId" name="managerId" class="form-control m-b" required>
<option th:each="user:${users}" th:value="${user.userId}" th:text="${user.userName}"></option> <option th:each="user:${users}" th:value="${user.userId}" th:text="${user.userName}"></option>
@ -46,7 +45,15 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">作者花名:</label> <label class="col-xs-3 control-label">运营人员:</label>
<div class="col-xs-8">
<select id="managerIds" class="form-control select2-multiple" multiple>
<option th:each="user:${users}" th:value="${user.userId}" th:text="${user.userName}" ></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">文章默认作者名:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="authorAlias" class="form-control" type="text"> <input name="authorAlias" class="form-control" type="text">
</div> </div>
@ -82,6 +89,7 @@
</form> </form>
</div> </div>
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
<th:block th:include="include :: select2-js" />
<th:block th:include="include :: summernote-js" /> <th:block th:include="include :: summernote-js" />
<th:block th:include="include :: bootstrap-fileinput-js"/> <th:block th:include="include :: bootstrap-fileinput-js"/>
<script th:inline="javascript"> <script th:inline="javascript">
@ -111,10 +119,20 @@
function submitHandler() { function submitHandler() {
if ($.validate.form()) { if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-account-add').serialize()); var data = $("#form-account-add").serializeArray();
var managerIds = $.form.selectSelects("managerIds");
data.push({"name": "managerIds", "value": managerIds});
$.operate.save(prefix + "/add", data);
} }
} }
$(function() {
$('#managerIds').select2({
placeholder: "请选择运营人员",
allowClear: true
});
})
$(function() { $(function() {
$('.summernote').summernote({ $('.summernote').summernote({
lang: 'zh-CN', lang: 'zh-CN',

View File

@ -2,6 +2,7 @@
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head> <head>
<th:block th:include="include :: header('修改公众号列')" /> <th:block th:include="include :: header('修改公众号列')" />
<th:block th:include="include :: select2-css" />
<th:block th:include="include :: summernote-css" /> <th:block th:include="include :: summernote-css" />
<th:block th:include="include :: bootstrap-fileinput-css"/> <th:block th:include="include :: bootstrap-fileinput-css"/>
</head> </head>
@ -18,9 +19,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">内容方向:</label> <label class="col-sm-3 control-label">内容方向:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<select name="publicType" class="form-control m-b" th:with="type=${@dict.getType('sys_public_type')}"> <input name="publicType" th:field="*{publicType}" class="form-control" type="text">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{publicType}"></option>
</select>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -39,7 +38,7 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">作者名:</label> <label class="col-sm-3 control-label">文章默认作者名:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="authorAlias" th:field="*{authorAlias}" class="form-control" type="text"> <input name="authorAlias" th:field="*{authorAlias}" class="form-control" type="text">
</div> </div>
@ -51,13 +50,21 @@
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">运营人员</label> <label class="col-sm-3 control-label">公众号负责人</label>
<div class="col-sm-8"> <div class="col-sm-8">
<select id="managerId" name="managerId" class="form-control m-b" required> <select id="managerId" name="managerId" class="form-control m-b" required>
<option th:each="user:${users}" th:value="${user.userId}" th:text="${user.userName}" th:field="*{managerId}"></option> <option th:each="user:${users}" th:value="${user.userId}" th:text="${user.userName}" th:field="*{managerId}"></option>
</select> </select>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">运营人员:</label>
<div class="col-sm-8">
<select id="managerIds" class="form-control select2-multiple" multiple>
<option th:each="user:${users}" th:value="${user.userId}" th:text="${user.userName}"></option>
</select>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">头像:</label> <label class="col-sm-3 control-label">头像:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -95,6 +102,7 @@
</form> </form>
</div> </div>
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
<th:block th:include="include :: select2-js" />
<th:block th:include="include :: summernote-js" /> <th:block th:include="include :: summernote-js" />
<th:block th:include="include :: bootstrap-fileinput-js"/> <th:block th:include="include :: bootstrap-fileinput-js"/>
<script th:inline="javascript"> <script th:inline="javascript">
@ -103,9 +111,19 @@
focusCleanup: true focusCleanup: true
}); });
$(function() {
$('#managerIds').select2({
placeholder: "请选择运营人员",
allowClear: true
});
})
function submitHandler() { function submitHandler() {
if ($.validate.form()) { if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-account-edit').serialize()); var data = $("#form-account-edit").serializeArray();
var managerIds = $.form.selectSelects("managerIds");
data.push({"name": "managerIds", "value": managerIds});
$.operate.save(prefix + "/edit", data);
} }
} }

View File

@ -97,10 +97,9 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">文章标签:</label> <label class="col-sm-2 control-label">文章标签:</label>
<div class="col-sm-10"> <div class="col-sm-10">
<select name="detailTag" class="form-control m-b" <select id="detailTag" name="detailTag" class="form-control m-b" required>
th:with="type=${@dict.getType('playlet_detail_tag')}"> <option th:each="tag:${tags}" th:value="${tag.tag}"
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"> th:text="${tag.tag}"></option>
</option>
</select> </select>
</div> </div>
</div> </div>

View File

@ -86,10 +86,9 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">文章标签:</label> <label class="col-sm-2 control-label">文章标签:</label>
<div class="col-sm-10"> <div class="col-sm-10">
<select name="detailTag" class="form-control m-b" <select id="detailTag" name="detailTag" class="form-control m-b" required>
th:with="type=${@dict.getType('playlet_detail_tag')}"> <option th:each="tag:${tags}" th:value="${tag.tag}"
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" th:text="${tag.tag}" th:field="*{detailTag}"></option>
th:field="*{detailTag}"></option>
</select> </select>
</div> </div>
</div> </div>

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增文章标签')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-tags-add">
<div class="form-group">
<label class="col-sm-3 control-label">文章标签:</label>
<div class="col-sm-8">
<textarea name="tags" class="form-control" placeholder="微信/淘系/视频号"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "system/tags"
$("#form-tags-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-tags-add').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改文章标签')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-tags-edit" th:object="${publicDeptTags}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">文章标签:</label>
<div class="col-sm-8">
<textarea name="tags" class="form-control" placeholder="微信/淘系/视频号">[[*{tags}]]</textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "system/tags";
$("#form-tags-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-tags-edit').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('文章标签列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>公司id</label>
<input type="text" name="deptId"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" >
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" >
<i class="fa fa-remove"></i> 删除
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
// var editFlag = [[${@permission.hasPermi('system:tags:edit')}]];
// var removeFlag = [[${@permission.hasPermi('system:tags:remove')}]];
var prefix = ctx + "system/tags";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "文章标签",
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键',
visible: false
},
{
field: 'deptId',
title: '公司id',
visible: false
},
{
field: 'tags',
title: '文章标签'
},
{
field: 'remark',
title: '备注',
visible: false
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs " href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -58,6 +58,19 @@ public class SysDept extends BaseEntity
private Integer publicAccountLimit; private Integer publicAccountLimit;
/**
*
*/
private String detailTags;
public String getDetailTags() {
return detailTags;
}
public void setDetailTags(String detailTags) {
this.detailTags = detailTags;
}
public Integer getStaffLimit() { public Integer getStaffLimit() {
return staffLimit; return staffLimit;
} }

View File

@ -58,6 +58,9 @@ public class PlayletPublicAccount extends BaseEntity
@ApiModelProperty(value = "运营人员id") @ApiModelProperty(value = "运营人员id")
private Long managerId; private Long managerId;
@ApiModelProperty(value = "运营人员ids")
private String managerIds;
@TableField(exist = false) @TableField(exist = false)
private String managerName; private String managerName;

View File

@ -0,0 +1,33 @@
package com.playlet.system.domain;
import com.playlet.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.playlet.common.annotation.Excel;
/**
* 文章标签对象 public_dept_tags
*
* @author ruoyi
* @date 2024-08-14
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "public_dept_tags")
public class PublicDeptTags extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 公司id */
@Excel(name = "公司id")
private Long deptId;
/** 文章标签 */
@Excel(name = "文章标签")
private String tags;
}

View File

@ -0,0 +1,62 @@
package com.playlet.system.mapper;
import java.util.List;
import com.playlet.system.domain.PublicDeptTags;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 文章标签Mapper接口
*
* @author ruoyi
* @date 2024-08-14
*/
public interface PublicDeptTagsMapper extends BaseMapper<PublicDeptTags>
{
/**
* 查询文章标签
*
* @param id 文章标签主键
* @return 文章标签
*/
public PublicDeptTags selectPublicDeptTagsById(Long id);
/**
* 查询文章标签列表
*
* @param publicDeptTags 文章标签
* @return 文章标签集合
*/
public List<PublicDeptTags> selectPublicDeptTagsList(PublicDeptTags publicDeptTags);
/**
* 新增文章标签
*
* @param publicDeptTags 文章标签
* @return 结果
*/
public int insertPublicDeptTags(PublicDeptTags publicDeptTags);
/**
* 修改文章标签
*
* @param publicDeptTags 文章标签
* @return 结果
*/
public int updatePublicDeptTags(PublicDeptTags publicDeptTags);
/**
* 删除文章标签
*
* @param id 文章标签主键
* @return 结果
*/
public int deletePublicDeptTagsById(Long id);
/**
* 批量删除文章标签
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deletePublicDeptTagsByIds(String[] ids);
}

View File

@ -0,0 +1,62 @@
package com.playlet.system.service;
import java.util.List;
import com.playlet.system.domain.PublicDeptTags;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 文章标签Service接口
*
* @author ruoyi
* @date 2024-08-14
*/
public interface IPublicDeptTagsService extends IService<PublicDeptTags>
{
/**
* 查询文章标签
*
* @param id 文章标签主键
* @return 文章标签
*/
public PublicDeptTags selectPublicDeptTagsById(Long id);
/**
* 查询文章标签列表
*
* @param publicDeptTags 文章标签
* @return 文章标签集合
*/
public List<PublicDeptTags> selectPublicDeptTagsList(PublicDeptTags publicDeptTags);
/**
* 新增文章标签
*
* @param publicDeptTags 文章标签
* @return 结果
*/
public int insertPublicDeptTags(PublicDeptTags publicDeptTags);
/**
* 修改文章标签
*
* @param publicDeptTags 文章标签
* @return 结果
*/
public int updatePublicDeptTags(PublicDeptTags publicDeptTags);
/**
* 批量删除文章标签
*
* @param ids 需要删除的文章标签主键集合
* @return 结果
*/
public int deletePublicDeptTagsByIds(String ids);
/**
* 删除文章标签信息
*
* @param id 文章标签主键
* @return 结果
*/
public int deletePublicDeptTagsById(Long id);
}

View File

@ -0,0 +1,98 @@
package com.playlet.system.service.impl;
import java.util.List;
import com.playlet.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.playlet.system.mapper.PublicDeptTagsMapper;
import com.playlet.system.domain.PublicDeptTags;
import com.playlet.system.service.IPublicDeptTagsService;
import com.playlet.common.core.text.Convert;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* 文章标签Service业务层处理
*
* @author ruoyi
* @date 2024-08-14
*/
@Service
public class PublicDeptTagsServiceImpl extends ServiceImpl<PublicDeptTagsMapper, PublicDeptTags> implements IPublicDeptTagsService
{
@Autowired
private PublicDeptTagsMapper publicDeptTagsMapper;
/**
* 查询文章标签
*
* @param id 文章标签主键
* @return 文章标签
*/
@Override
public PublicDeptTags selectPublicDeptTagsById(Long id)
{
return publicDeptTagsMapper.selectPublicDeptTagsById(id);
}
/**
* 查询文章标签列表
*
* @param publicDeptTags 文章标签
* @return 文章标签
*/
@Override
public List<PublicDeptTags> selectPublicDeptTagsList(PublicDeptTags publicDeptTags)
{
return publicDeptTagsMapper.selectPublicDeptTagsList(publicDeptTags);
}
/**
* 新增文章标签
*
* @param publicDeptTags 文章标签
* @return 结果
*/
@Override
public int insertPublicDeptTags(PublicDeptTags publicDeptTags)
{
publicDeptTags.setCreateTime(DateUtils.getNowDate());
return publicDeptTagsMapper.insertPublicDeptTags(publicDeptTags);
}
/**
* 修改文章标签
*
* @param publicDeptTags 文章标签
* @return 结果
*/
@Override
public int updatePublicDeptTags(PublicDeptTags publicDeptTags)
{
publicDeptTags.setUpdateTime(DateUtils.getNowDate());
return publicDeptTagsMapper.updatePublicDeptTags(publicDeptTags);
}
/**
* 批量删除文章标签
*
* @param ids 需要删除的文章标签主键
* @return 结果
*/
@Override
public int deletePublicDeptTagsByIds(String ids)
{
return publicDeptTagsMapper.deletePublicDeptTagsByIds(Convert.toStrArray(ids));
}
/**
* 删除文章标签信息
*
* @param id 文章标签主键
* @return 结果
*/
@Override
public int deletePublicDeptTagsById(Long id)
{
return publicDeptTagsMapper.deletePublicDeptTagsById(id);
}
}

View File

@ -13,6 +13,7 @@
<result property="introduction" column="introduction" /> <result property="introduction" column="introduction" />
<result property="authorAlias" column="author_alias" /> <result property="authorAlias" column="author_alias" />
<result property="managerId" column="manager_id" /> <result property="managerId" column="manager_id" />
<result property="managerIds" column="manager_ids" />
<result property="logoUrl" column="logo_url" /> <result property="logoUrl" column="logo_url" />
<result property="address" column="address" /> <result property="address" column="address" />
<result property="originalContentCount" column="original_content_count" /> <result property="originalContentCount" column="original_content_count" />
@ -25,7 +26,7 @@
</resultMap> </resultMap>
<sql id="selectPlayletPublicAccountVo"> <sql id="selectPlayletPublicAccountVo">
select id, name, public_type, detail_type, detail_tags, introduction, author_alias, manager_id, logo_url, address, original_content_count, followers_count, create_by, create_time, update_by, update_time, remark from playlet_public_account select id, name, public_type, detail_type, detail_tags, introduction, author_alias, manager_id, manager_ids, logo_url, address, original_content_count, followers_count, create_by, create_time, update_by, update_time, remark from playlet_public_account
</sql> </sql>
<select id="selectPlayletPublicAccountList" parameterType="PlayletPublicAccount" resultMap="PlayletPublicAccountResult"> <select id="selectPlayletPublicAccountList" parameterType="PlayletPublicAccount" resultMap="PlayletPublicAccountResult">
@ -33,6 +34,7 @@
<where> <where>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="managerId != null"> and manager_id = #{managerId}</if> <if test="managerId != null"> and manager_id = #{managerId}</if>
<if test="managerIds != null"> and manager_ids like concat('%',#{managerIds},'%') </if>
<if test="introduction != null and introduction != ''"> and introduction = #{introduction}</if> <if test="introduction != null and introduction != ''"> and introduction = #{introduction}</if>
<if test="authorAlias != null and authorAlias != ''"> and author_alias = #{authorAlias}</if> <if test="authorAlias != null and authorAlias != ''"> and author_alias = #{authorAlias}</if>
<if test="logoUrl != null and logoUrl != ''"> and logo_url = #{logoUrl}</if> <if test="logoUrl != null and logoUrl != ''"> and logo_url = #{logoUrl}</if>
@ -58,6 +60,7 @@
<if test="introduction != null">introduction,</if> <if test="introduction != null">introduction,</if>
<if test="authorAlias != null">author_alias,</if> <if test="authorAlias != null">author_alias,</if>
<if test="managerId != null">manager_id,</if> <if test="managerId != null">manager_id,</if>
<if test="managerIds != null">manager_ids,</if>
<if test="logoUrl != null">logo_url,</if> <if test="logoUrl != null">logo_url,</if>
<if test="address != null">address,</if> <if test="address != null">address,</if>
<if test="originalContentCount != null">original_content_count,</if> <if test="originalContentCount != null">original_content_count,</if>
@ -76,6 +79,7 @@
<if test="introduction != null">#{introduction},</if> <if test="introduction != null">#{introduction},</if>
<if test="authorAlias != null">#{authorAlias},</if> <if test="authorAlias != null">#{authorAlias},</if>
<if test="managerId != null">#{managerId},</if> <if test="managerId != null">#{managerId},</if>
<if test="managerIds != null">#{managerIds},</if>
<if test="logoUrl != null">#{logoUrl},</if> <if test="logoUrl != null">#{logoUrl},</if>
<if test="address != null">#{address},</if> <if test="address != null">#{address},</if>
<if test="originalContentCount != null">#{originalContentCount},</if> <if test="originalContentCount != null">#{originalContentCount},</if>
@ -98,6 +102,7 @@
<if test="introduction != null">introduction = #{introduction},</if> <if test="introduction != null">introduction = #{introduction},</if>
<if test="authorAlias != null">author_alias = #{authorAlias},</if> <if test="authorAlias != null">author_alias = #{authorAlias},</if>
<if test="managerId != null">manager_id = #{managerId},</if> <if test="managerId != null">manager_id = #{managerId},</if>
<if test="managerIds != null">manager_ids = #{managerIds},</if>
<if test="logoUrl != null">logo_url = #{logoUrl},</if> <if test="logoUrl != null">logo_url = #{logoUrl},</if>
<if test="address != null">address = #{address},</if> <if test="address != null">address = #{address},</if>
<if test="originalContentCount != null">original_content_count = #{originalContentCount},</if> <if test="originalContentCount != null">original_content_count = #{originalContentCount},</if>

View File

@ -0,0 +1,82 @@
<?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.playlet.system.mapper.PublicDeptTagsMapper">
<resultMap type="PublicDeptTags" id="PublicDeptTagsResult">
<result property="id" column="id" />
<result property="deptId" column="dept_id" />
<result property="tags" column="tags" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectPublicDeptTagsVo">
select id, dept_id, tags, create_time, create_by, update_time, update_by, remark from public_dept_tags
</sql>
<select id="selectPublicDeptTagsList" parameterType="PublicDeptTags" resultMap="PublicDeptTagsResult">
<include refid="selectPublicDeptTagsVo"/>
<where>
<if test="deptId != null "> and dept_id = #{deptId}</if>
<if test="tags != null and tags != ''"> and tags = #{tags}</if>
</where>
</select>
<select id="selectPublicDeptTagsById" parameterType="Long" resultMap="PublicDeptTagsResult">
<include refid="selectPublicDeptTagsVo"/>
where id = #{id}
</select>
<insert id="insertPublicDeptTags" parameterType="PublicDeptTags" useGeneratedKeys="true" keyProperty="id">
insert into public_dept_tags
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="deptId != null">dept_id,</if>
<if test="tags != null">tags,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deptId != null">#{deptId},</if>
<if test="tags != null">#{tags},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updatePublicDeptTags" parameterType="PublicDeptTags">
update public_dept_tags
<trim prefix="SET" suffixOverrides=",">
<if test="deptId != null">dept_id = #{deptId},</if>
<if test="tags != null">tags = #{tags},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deletePublicDeptTagsById" parameterType="Long">
delete from public_dept_tags where id = #{id}
</delete>
<delete id="deletePublicDeptTagsByIds" parameterType="String">
delete from public_dept_tags where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="parentName" column="parent_name" /> <result property="parentName" column="parent_name" />
<result property="staffLimit" column="staff_limit" /> <result property="staffLimit" column="staff_limit" />
<result property="detailTags" column="detail_tags" />
<result property="publicAccountLimit" column="public_account_limit" /> <result property="publicAccountLimit" column="public_account_limit" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
@ -25,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectDeptVo"> <sql id="selectDeptVo">
select d.dept_id, d.staff_limit, d.public_account_limit, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time select d.dept_id, d.staff_limit, d.detail_tags, d.public_account_limit, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
from sys_dept d from sys_dept d
</sql> </sql>
@ -74,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult"> <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
select d.dept_id, d.parent_id, d.ancestors, d.staff_limit, d.public_account_limit, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, select d.dept_id, d.parent_id, d.ancestors, d.detail_tags, d.staff_limit, d.public_account_limit, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,
(select dept_name from sys_dept where dept_id = d.parent_id) parent_name (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
from sys_dept d from sys_dept d
where d.dept_id = #{deptId} where d.dept_id = #{deptId}
@ -100,6 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null and email != ''">email,</if> <if test="email != null and email != ''">email,</if>
<if test="status != null">status,</if> <if test="status != null">status,</if>
<if test="staffLimit != null">staff_limit,</if> <if test="staffLimit != null">staff_limit,</if>
<if test="detailTags != null">detail_tags,</if>
<if test="publicAccountLimit != null">public_account_limit,</if> <if test="publicAccountLimit != null">public_account_limit,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
create_time create_time
@ -114,6 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null and email != ''">#{email},</if> <if test="email != null and email != ''">#{email},</if>
<if test="status != null">#{status},</if> <if test="status != null">#{status},</if>
<if test="staffLimit != null">#{staffLimit},</if> <if test="staffLimit != null">#{staffLimit},</if>
<if test="detailTags != null">#{detailTags},</if>
<if test="publicAccountLimit != null">#{publicAccountLimit},</if> <if test="publicAccountLimit != null">#{publicAccountLimit},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate() sysdate()
@ -132,6 +135,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null">email = #{email},</if> <if test="email != null">email = #{email},</if>
<if test="status != null and status != ''">status = #{status},</if> <if test="status != null and status != ''">status = #{status},</if>
<if test="staffLimit != null">staff_limit = #{staffLimit},</if> <if test="staffLimit != null">staff_limit = #{staffLimit},</if>
<if test="detailTags != null">detail_tags = #{detailTags},</if>
<if test="publicAccountLimit != null">public_account_limit = #{publicAccountLimit},</if> <if test="publicAccountLimit != null">public_account_limit = #{publicAccountLimit},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = sysdate() update_time = sysdate()