1;日报模板

2;特殊订单 日期中有”门店设置“字样
This commit is contained in:
wangshuai 2024-07-27 02:17:11 +08:00
parent a90353eaa4
commit b7ab8de509
9 changed files with 150 additions and 80 deletions

View File

@ -6,6 +6,7 @@ import com.ruoyi.business.req.ReqBusStoreInfo;
import com.ruoyi.business.resp.RespBusStoreInfo; import com.ruoyi.business.resp.RespBusStoreInfo;
import com.ruoyi.business.service.*; import com.ruoyi.business.service.*;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
@ -65,6 +66,8 @@ public class BusStoreInfoController extends BaseController {
@Autowired @Autowired
private SysDictDataMapper sysDictDataMapper; private SysDictDataMapper sysDictDataMapper;
@Autowired
private RuoYiConfig ruoYiConfig;
/** /**
* 查询店铺信息列表 * 查询店铺信息列表
*/ */
@ -215,7 +218,7 @@ public class BusStoreInfoController extends BaseController {
content = content.replaceAll("#good",busStoreDayInfo1.getLastPositiveReviewsNum()+""); content = content.replaceAll("#good",busStoreDayInfo1.getLastPositiveReviewsNum()+"");
content = content.replaceAll("#five",busStoreDayInfo1.getLastFiveStarReviewsNum()+""); content = content.replaceAll("#five",busStoreDayInfo1.getLastFiveStarReviewsNum()+"");
content = content.replaceAll("#score", busStoreDayInfo1.getScore()); content = content.replaceAll("#score", busStoreDayInfo1.getScore());
content = content.replaceAll("#QRCode", busTemplateInfo.getCodeUrl()); content = content.replaceAll("#QRCode", ruoYiConfig.getBaseUrl()+busTemplateInfo.getCodeUrl());
content = content.replaceAll("#text", busTemplateInfo.getRemark()); content = content.replaceAll("#text", busTemplateInfo.getRemark());
int a = busStoreDayInfo1.getLastPositiveReviewsNum();//todo 好评-五星 int a = busStoreDayInfo1.getLastPositiveReviewsNum();//todo 好评-五星
int b = busStoreDayInfo1.getLastReturnVisitNum(); int b = busStoreDayInfo1.getLastReturnVisitNum();

View File

@ -122,6 +122,9 @@ public class BusTemplateInfoController extends BaseController
{ {
busTemplateInfo.setUpdateId(SecurityUtils.getUserId()); busTemplateInfo.setUpdateId(SecurityUtils.getUserId());
busTemplateInfo.setUpdateUser(SecurityUtils.getUsername()); busTemplateInfo.setUpdateUser(SecurityUtils.getUsername());
int start = busTemplateInfo.getCodeUrl().indexOf("/profile");
String url = busTemplateInfo.getCodeUrl().substring(start);
busTemplateInfo.setCodeUrl(url);
return toAjax(busTemplateInfoService.updateBusTemplateInfo(busTemplateInfo)); return toAjax(busTemplateInfoService.updateBusTemplateInfo(busTemplateInfo));
} }

View File

@ -16,7 +16,7 @@ public class BusTemplateAttrConfig extends BaseEntity
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** $column.columnComment */ /** $column.columnComment */
private Long id; private Long attrId;
/** 模版类型 */ /** 模版类型 */
@Excel(name = "模版类型") @Excel(name = "模版类型")
@ -38,14 +38,14 @@ public class BusTemplateAttrConfig extends BaseEntity
@Excel(name = "原始排序") @Excel(name = "原始排序")
private Long attrSort; private Long attrSort;
public void setId(Long id) public void setAttrId(Long attrId)
{ {
this.id = id; this.attrId = attrId;
} }
public Long getId() public Long getAttrId()
{ {
return id; return attrId;
} }
public void setTemplateType(String templateType) public void setTemplateType(String templateType)
{ {
@ -96,7 +96,7 @@ public class BusTemplateAttrConfig extends BaseEntity
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId()) .append("attrId", getAttrId())
.append("templateType", getTemplateType()) .append("templateType", getTemplateType())
.append("attrValue", getAttrValue()) .append("attrValue", getAttrValue())
.append("attrName", getAttrName()) .append("attrName", getAttrName())

View File

@ -58,4 +58,6 @@ public interface BusTemplateAttrInfoMapper
* @return 结果 * @return 结果
*/ */
public int deleteBusTemplateAttrInfoByIds(Long[] ids); public int deleteBusTemplateAttrInfoByIds(Long[] ids);
void deleteBusTemplateAttrInfoByTId(Long id);
} }

View File

@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.BusTemplateInfoMapper; import com.ruoyi.business.mapper.BusTemplateInfoMapper;
import com.ruoyi.business.domain.BusTemplateInfo; import com.ruoyi.business.domain.BusTemplateInfo;
import com.ruoyi.business.service.IBusTemplateInfoService; import com.ruoyi.business.service.IBusTemplateInfoService;
import org.springframework.transaction.annotation.Transactional;
/** /**
* 模版Service业务层处理 * 模版Service业务层处理
@ -50,6 +51,7 @@ public class BusTemplateInfoServiceImpl implements IBusTemplateInfoService
BusTemplateAttrConfig busTemplateAttrConfig = new BusTemplateAttrConfig(); BusTemplateAttrConfig busTemplateAttrConfig = new BusTemplateAttrConfig();
busTemplateAttrConfig.setTemplateType("word"); busTemplateAttrConfig.setTemplateType("word");
busTemplateInfo.setAttrInfoList(list1); busTemplateInfo.setAttrInfoList(list1);
busTemplateInfo.setCodeUrl(ruoyiConfig.getBaseUrl()+busTemplateInfo.getCodeUrl());
return busTemplateInfo; return busTemplateInfo;
} }
@ -72,10 +74,24 @@ public class BusTemplateInfoServiceImpl implements IBusTemplateInfoService
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional
public int insertBusTemplateInfo(BusTemplateInfo busTemplateInfo) public int insertBusTemplateInfo(BusTemplateInfo busTemplateInfo)
{ {
String content = "";
for(BusTemplateAttrInfo attrInfo: busTemplateInfo.getAttrInfoList()){
content = content+"<p>"+attrInfo.getAttrName() + "</p>";
}
busTemplateInfo.setTemplateContent(content);
busTemplateInfo.setCreateTime(DateUtils.getNowDate()); busTemplateInfo.setCreateTime(DateUtils.getNowDate());
return busTemplateInfoMapper.insertBusTemplateInfo(busTemplateInfo); int row = busTemplateInfoMapper.insertBusTemplateInfo(busTemplateInfo);
Long ll = 1L;
for(BusTemplateAttrInfo attrInfo: busTemplateInfo.getAttrInfoList()){
attrInfo.setTemplateId(busTemplateInfo.getId());
attrInfo.setAttrSort(ll);
busTemplateAttrInfoMapper.insertBusTemplateAttrInfo(attrInfo);
ll = ll+1;
}
return row;
} }
/** /**
@ -85,9 +101,21 @@ public class BusTemplateInfoServiceImpl implements IBusTemplateInfoService
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional
public int updateBusTemplateInfo(BusTemplateInfo busTemplateInfo) public int updateBusTemplateInfo(BusTemplateInfo busTemplateInfo)
{ {
String content = "";
busTemplateInfo.setUpdateTime(DateUtils.getNowDate()); busTemplateInfo.setUpdateTime(DateUtils.getNowDate());
busTemplateAttrInfoMapper.deleteBusTemplateAttrInfoByTId(busTemplateInfo.getId());
Long ll = 1L;
for(BusTemplateAttrInfo attrInfo: busTemplateInfo.getAttrInfoList()){
attrInfo.setTemplateId(busTemplateInfo.getId());
attrInfo.setAttrSort(ll);
ll = ll+1;
busTemplateAttrInfoMapper.insertBusTemplateAttrInfo(attrInfo);
content = content+"<p>"+attrInfo.getAttrName() + "</p>";
}
busTemplateInfo.setTemplateContent(content);
return busTemplateInfoMapper.updateBusTemplateInfo(busTemplateInfo); return busTemplateInfoMapper.updateBusTemplateInfo(busTemplateInfo);
} }

View File

@ -694,7 +694,12 @@ public class MeituanServiceImpl implements IMeituanService {
try { try {
returnVisitInfo.setOrderCompleteTime(sdf.parse(orderInfo.getCompleteTime())); returnVisitInfo.setOrderCompleteTime(sdf.parse(orderInfo.getCompleteTime()));
} catch (ParseException e) { } catch (ParseException e) {
throw new RuntimeException(e); e.printStackTrace();
if("门店设置".equals(orderInfo.getCompleteTime())){
// TODO: 2024-07-27
}else{
continue;
}
} }
//returnVisitInfo.setFinishTime(busOrderInfo.getCompleteTime()); todo //returnVisitInfo.setFinishTime(busOrderInfo.getCompleteTime()); todo
// returnVisitInfo.setReturnVisitTime(new Date()); // returnVisitInfo.setReturnVisitTime(new Date());

View File

@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.ruoyi.business.mapper.BusTemplateAttrConfigMapper"> <mapper namespace="com.ruoyi.business.mapper.BusTemplateAttrConfigMapper">
<resultMap type="BusTemplateAttrConfig" id="BusTemplateAttrConfigResult"> <resultMap type="BusTemplateAttrConfig" id="BusTemplateAttrConfigResult">
<result property="id" column="id" /> <result property="attrId" column="attr_id" />
<result property="templateType" column="template_type" /> <result property="templateType" column="template_type" />
<result property="attrValue" column="attr_value" /> <result property="attrValue" column="attr_value" />
<result property="attrName" column="attr_name" /> <result property="attrName" column="attr_name" />
@ -14,7 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectBusTemplateAttrConfigVo"> <sql id="selectBusTemplateAttrConfigVo">
select id, template_type, attr_value, attr_name, attr_status, attr_sort from bus_template_attr_config select attr_id, template_type, attr_value, attr_name, attr_status, attr_sort from bus_template_attr_config
</sql> </sql>
<select id="selectBusTemplateAttrConfigList" parameterType="BusTemplateAttrConfig" resultMap="BusTemplateAttrConfigResult"> <select id="selectBusTemplateAttrConfigList" parameterType="BusTemplateAttrConfig" resultMap="BusTemplateAttrConfigResult">
@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectBusTemplateAttrConfigById" parameterType="Long" resultMap="BusTemplateAttrConfigResult"> <select id="selectBusTemplateAttrConfigById" parameterType="Long" resultMap="BusTemplateAttrConfigResult">
<include refid="selectBusTemplateAttrConfigVo"/> <include refid="selectBusTemplateAttrConfigVo"/>
where id = #{id} where attr_id = #{id}
</select> </select>
<insert id="insertBusTemplateAttrConfig" parameterType="BusTemplateAttrConfig" useGeneratedKeys="true" keyProperty="id"> <insert id="insertBusTemplateAttrConfig" parameterType="BusTemplateAttrConfig" useGeneratedKeys="true" keyProperty="id">
@ -57,15 +57,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="attrStatus != null">attr_status = #{attrStatus},</if> <if test="attrStatus != null">attr_status = #{attrStatus},</if>
<if test="attrSort != null">attr_sort = #{attrSort},</if> <if test="attrSort != null">attr_sort = #{attrSort},</if>
</trim> </trim>
where id = #{id} where attr_id = #{id}
</update> </update>
<delete id="deleteBusTemplateAttrConfigById" parameterType="Long"> <delete id="deleteBusTemplateAttrConfigById" parameterType="Long">
delete from bus_template_attr_config where id = #{id} delete from bus_template_attr_config where attr_id = #{id}
</delete> </delete>
<delete id="deleteBusTemplateAttrConfigByIds" parameterType="String"> <delete id="deleteBusTemplateAttrConfigByIds" parameterType="String">
delete from bus_template_attr_config where id in delete from bus_template_attr_config where attr_id in
<foreach item="id" collection="array" open="(" separator="," close=")"> <foreach item="id" collection="array" open="(" separator="," close=")">
#{id} #{id}
</foreach> </foreach>

View File

@ -28,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="attrStatus != null and attrStatus != ''"> and attr_status = #{attrStatus}</if> <if test="attrStatus != null and attrStatus != ''"> and attr_status = #{attrStatus}</if>
<if test="attrSort != null "> and attr_sort = #{attrSort}</if> <if test="attrSort != null "> and attr_sort = #{attrSort}</if>
</where> </where>
order by attr_sort
</select> </select>
<select id="selectBusTemplateAttrInfoById" parameterType="Long" resultMap="BusTemplateAttrInfoResult"> <select id="selectBusTemplateAttrInfoById" parameterType="Long" resultMap="BusTemplateAttrInfoResult">
@ -78,4 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<delete id="deleteBusTemplateAttrInfoByTId">
delete from bus_template_attr_info where template_id = #{id}
</delete>
</mapper> </mapper>

View File

@ -95,7 +95,7 @@
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="模版名称" prop="templateName"> <el-form-item label="模版名称" prop="templateName">
<el-input v-model="form.templateName" placeholder="请输入模版名称" /> <el-input style="width: 90%" v-model="form.templateName" placeholder="请输入模版名称" />
</el-form-item> </el-form-item>
<!-- <draggable v-model="attrConfigList" @end="onDragEnd"> <!-- <draggable v-model="attrConfigList" @end="onDragEnd">
<el-form-item <el-form-item
@ -107,57 +107,38 @@
</el-form-item> </el-form-item>
</draggable> --> </draggable> -->
<el-form-item label="选择内容"> <el-form-item label="选择内容">
<draggable v-model="attrConfigList" @end="onDragEnd"> <el-row :gutter="24">
<el-col :span="6">
<div class="grid-content bg-purple">
<el-row v-for="item in attrConfigList" <el-row v-for="item in attrConfigList"
:key="item.id" :key="item.id"
size="small" size="small"
>
<el-col :span="20" style="padding-left: 5%">
<el-tag style="width: inherit;" closable
@click="clickContent($event,item)"
@close="handleClose(item)">
{{item.attrValue}}
</el-tag>
</el-col>
</el-row>
</div>
</el-col>
<el-col :span="16">
<div class="grid-content bg-purple">
<draggable v-model="attrList" @end="onDragEnd">
<el-row v-for="item in attrList"
:key="item.attrId"
size="small"
closable closable
> >
<!-- <el-button type="primary">{{item.attrValue}}</el-button> --> <el-col :span="20" style="padding-left: 5%"><el-tag style="width: inherit;">{{item.attrValue}}</el-tag></el-col>
<el-col :span="20"><el-tag class="bg-purple-dark">{{item.attrValue}}</el-tag></el-col>
</el-row> </el-row>
</draggable> </draggable>
</div>
</el-col>
</el-row>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-row :gutter="12">
<el-col :span="11">
<el-card shadow="never">
<el-tag v-for="item in attrConfigList"
:key="item.id"
size="small"
closable
@click="clickContent($event,item.attrName)"
@close="handleClose(item.attrName)"
>{{item.attrValue}}
</el-tag>
</el-card>
</el-col>
<el-col :span="11">
<el-card shadow="always">
<draggable v-model="attrList" @end="onDragEnd">
<el-tag v-for="item in attrList"
:key="item.id"
size="small"
closable
>{{item.attrValue}}
</el-tag>
</draggable>
</el-card>
</el-col>
</el-row> -->
<!-- <draggable v-model="attrConfigList" @end="onDragEnd">
<el-tag v-for="item in attrConfigList"
:key="item.id"
size="small"
closable
@click="clickContent($event,item.attrName)"
@close="handleClose(item.attrName)"
>{{item.attrName}}
</el-tag>
</draggable> -->
<!-- <el-form-item label="内容">
<editor v-model="form.templateContent" :min-height="192" readOnly/>
</el-form-item> -->
<el-form-item label="文本内容" prop="remark"> <el-form-item label="文本内容" prop="remark">
<el-input <el-input
type="textarea" type="textarea"
@ -274,7 +255,11 @@ export default {
console.log(file, fileList); console.log(file, fileList);
}, },
handleSuccess(response, file, fileList){ handleSuccess(response, file, fileList){
this.form.codeUrl = response.url; if(response.code==200){
this.form.codeUrl = response.fileName;
}else{
this.$modal.msgError("上传失败");
}
}, },
handlePreview(file) { handlePreview(file) {
console.log(file); console.log(file);
@ -287,19 +272,24 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
id: null, id: undefined,
templateName: null, templateName: undefined,
templateType: null, templateType: undefined,
templateContent: null, templateContent: undefined,
templateStatus: null, templateStatus: undefined,
createId: null, createId: undefined,
createUser: null, createUser: undefined,
createTime: null, createTime: undefined,
updateId: null, updateId: undefined,
updateUser: null, updateUser: undefined,
updateTime: null, updateTime: undefined,
sort: null sort: undefined,
codeUrl: undefined,
attrInfoList: [],
remark: undefined
}; };
this.attrList = [];
this.fileList = [];
this.resetForm("form"); this.resetForm("form");
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@ -330,6 +320,12 @@ export default {
const id = row.id || this.ids const id = row.id || this.ids
getTemplate(id).then(response => { getTemplate(id).then(response => {
this.form = response.data; this.form = response.data;
if(response.data.codeUrl.slice(response.data.codeUrl.length-4,response.data.codeUrl.length) !== "null"){
this.fileList.push({
url: response.data.codeUrl
})
}
this.attrList = response.data.attrInfoList;
this.open = true; this.open = true;
this.title = "修改模版"; this.title = "修改模版";
}); });
@ -338,6 +334,7 @@ export default {
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
this.form.attrInfoList = this.attrList;
if (this.form.id != null) { if (this.form.id != null) {
updateTemplate(this.form).then(response => { updateTemplate(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
@ -373,15 +370,25 @@ export default {
containsChinese(str) { containsChinese(str) {
return /[\u4e00-\u9fa5]/.test(str); return /[\u4e00-\u9fa5]/.test(str);
}, },
clickContent(event,content){ clickContent(event,item){
// console.log(event,content) console.log(event,item)
if(this.isElementPresent(item)>-1){
return
}else{
this.attrList.push(item)
}
// if(!this.containsChinese(this.form.templateContent)){ // if(!this.containsChinese(this.form.templateContent)){
// this.form.templateContent = '<p>'+content+'</p>' // this.form.templateContent = '<p>'+content+'</p>'
// }else{ // }else{
// this.form.templateContent += '<p>'+content+'</p>' // this.form.templateContent += '<p>'+content+'</p>'
// } // }
}, },
handleClose(content){ handleClose(item){
if(this.isElementPresent(item)>-1){
this.attrList.splice(this.isElementPresent(item), 1);
}else{
return
}
// content = '<p>'+content+'</p>' // content = '<p>'+content+'</p>'
// this.form.templateContent = this.form.templateContent.replace(content, ''); // this.form.templateContent = this.form.templateContent.replace(content, '');
}, },
@ -390,22 +397,40 @@ export default {
this.attrConfigList = response.data this.attrConfigList = response.data
}); });
}, },
isElementPresent(item) {
return this.attrList.indexOf(item);
}
} }
}; };
</script> </script>
<style> <style>
.el-row { /* .el-row {
/* margin-bottom: 20px; */ margin-bottom: 10px;
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
} }
.el-col { .el-col {
border-radius: 4px; border-radius: 4px;
} } */
.bg-purple-dark { .bg-purple-dark {
width: inherit; background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
height: 400px;
border-radius: 4px;
min-height: 36px;
}
.row-bg {
padding: 5px 0;
background-color: #f9fafc;
} }
</style> </style>