parent
a90353eaa4
commit
b7ab8de509
|
@ -6,6 +6,7 @@ import com.ruoyi.business.req.ReqBusStoreInfo;
|
|||
import com.ruoyi.business.resp.RespBusStoreInfo;
|
||||
import com.ruoyi.business.service.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.config.RuoYiConfig;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
|
@ -65,6 +66,8 @@ public class BusStoreInfoController extends BaseController {
|
|||
@Autowired
|
||||
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("#five",busStoreDayInfo1.getLastFiveStarReviewsNum()+"");
|
||||
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());
|
||||
int a = busStoreDayInfo1.getLastPositiveReviewsNum();//todo 好评-五星
|
||||
int b = busStoreDayInfo1.getLastReturnVisitNum();
|
||||
|
|
|
@ -122,6 +122,9 @@ public class BusTemplateInfoController extends BaseController
|
|||
{
|
||||
busTemplateInfo.setUpdateId(SecurityUtils.getUserId());
|
||||
busTemplateInfo.setUpdateUser(SecurityUtils.getUsername());
|
||||
int start = busTemplateInfo.getCodeUrl().indexOf("/profile");
|
||||
String url = busTemplateInfo.getCodeUrl().substring(start);
|
||||
busTemplateInfo.setCodeUrl(url);
|
||||
return toAjax(busTemplateInfoService.updateBusTemplateInfo(busTemplateInfo));
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ public class BusTemplateAttrConfig extends BaseEntity
|
|||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** $column.columnComment */
|
||||
private Long id;
|
||||
private Long attrId;
|
||||
|
||||
/** 模版类型 */
|
||||
@Excel(name = "模版类型")
|
||||
|
@ -38,14 +38,14 @@ public class BusTemplateAttrConfig extends BaseEntity
|
|||
@Excel(name = "原始排序")
|
||||
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)
|
||||
{
|
||||
|
@ -96,7 +96,7 @@ public class BusTemplateAttrConfig extends BaseEntity
|
|||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("attrId", getAttrId())
|
||||
.append("templateType", getTemplateType())
|
||||
.append("attrValue", getAttrValue())
|
||||
.append("attrName", getAttrName())
|
||||
|
|
|
@ -58,4 +58,6 @@ public interface BusTemplateAttrInfoMapper
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteBusTemplateAttrInfoByIds(Long[] ids);
|
||||
|
||||
void deleteBusTemplateAttrInfoByTId(Long id);
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
|
|||
import com.ruoyi.business.mapper.BusTemplateInfoMapper;
|
||||
import com.ruoyi.business.domain.BusTemplateInfo;
|
||||
import com.ruoyi.business.service.IBusTemplateInfoService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 模版Service业务层处理
|
||||
|
@ -50,6 +51,7 @@ public class BusTemplateInfoServiceImpl implements IBusTemplateInfoService
|
|||
BusTemplateAttrConfig busTemplateAttrConfig = new BusTemplateAttrConfig();
|
||||
busTemplateAttrConfig.setTemplateType("word");
|
||||
busTemplateInfo.setAttrInfoList(list1);
|
||||
busTemplateInfo.setCodeUrl(ruoyiConfig.getBaseUrl()+busTemplateInfo.getCodeUrl());
|
||||
return busTemplateInfo;
|
||||
}
|
||||
|
||||
|
@ -72,10 +74,24 @@ public class BusTemplateInfoServiceImpl implements IBusTemplateInfoService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
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());
|
||||
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 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int updateBusTemplateInfo(BusTemplateInfo busTemplateInfo)
|
||||
{
|
||||
String content = "";
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -694,7 +694,12 @@ public class MeituanServiceImpl implements IMeituanService {
|
|||
try {
|
||||
returnVisitInfo.setOrderCompleteTime(sdf.parse(orderInfo.getCompleteTime()));
|
||||
} 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.setReturnVisitTime(new Date());
|
||||
|
|
|
@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<mapper namespace="com.ruoyi.business.mapper.BusTemplateAttrConfigMapper">
|
||||
|
||||
<resultMap type="BusTemplateAttrConfig" id="BusTemplateAttrConfigResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="attrId" column="attr_id" />
|
||||
<result property="templateType" column="template_type" />
|
||||
<result property="attrValue" column="attr_value" />
|
||||
<result property="attrName" column="attr_name" />
|
||||
|
@ -14,7 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<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>
|
||||
|
||||
<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">
|
||||
<include refid="selectBusTemplateAttrConfigVo"/>
|
||||
where id = #{id}
|
||||
where attr_id = #{id}
|
||||
</select>
|
||||
|
||||
<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="attrSort != null">attr_sort = #{attrSort},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
where attr_id = #{id}
|
||||
</update>
|
||||
|
||||
<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 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=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
|
|
|
@ -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="attrSort != null "> and attr_sort = #{attrSort}</if>
|
||||
</where>
|
||||
order by attr_sort
|
||||
</select>
|
||||
|
||||
<select id="selectBusTemplateAttrInfoById" parameterType="Long" resultMap="BusTemplateAttrInfoResult">
|
||||
|
@ -78,4 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
<delete id="deleteBusTemplateAttrInfoByTId">
|
||||
delete from bus_template_attr_info where template_id = #{id}
|
||||
</delete>
|
||||
</mapper>
|
|
@ -95,7 +95,7 @@
|
|||
<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-item label="模版名称" prop="templateName">
|
||||
<el-input v-model="form.templateName" placeholder="请输入模版名称" />
|
||||
<el-input style="width: 90%" v-model="form.templateName" placeholder="请输入模版名称" />
|
||||
</el-form-item>
|
||||
<!-- <draggable v-model="attrConfigList" @end="onDragEnd">
|
||||
<el-form-item
|
||||
|
@ -107,57 +107,38 @@
|
|||
</el-form-item>
|
||||
</draggable> -->
|
||||
<el-form-item label="选择内容">
|
||||
<draggable v-model="attrConfigList" @end="onDragEnd">
|
||||
<el-row v-for="item in attrConfigList"
|
||||
:key="item.id"
|
||||
size="small"
|
||||
closable
|
||||
>
|
||||
<!-- <el-button type="primary">{{item.attrValue}}</el-button> -->
|
||||
<el-col :span="20"><el-tag class="bg-purple-dark">{{item.attrValue}}</el-tag></el-col>
|
||||
</el-row>
|
||||
</draggable>
|
||||
</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"
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="6">
|
||||
<div class="grid-content bg-purple">
|
||||
<el-row 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 :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="11">
|
||||
<el-card shadow="always">
|
||||
<el-col :span="16">
|
||||
<div class="grid-content bg-purple">
|
||||
<draggable v-model="attrList" @end="onDragEnd">
|
||||
<el-tag v-for="item in attrList"
|
||||
:key="item.id"
|
||||
<el-row v-for="item in attrList"
|
||||
:key="item.attrId"
|
||||
size="small"
|
||||
closable
|
||||
>{{item.attrValue}}
|
||||
</el-tag>
|
||||
>
|
||||
<el-col :span="20" style="padding-left: 5%"><el-tag style="width: inherit;">{{item.attrValue}}</el-tag></el-col>
|
||||
</el-row>
|
||||
</draggable>
|
||||
</el-card>
|
||||
</div>
|
||||
</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-row>
|
||||
</el-form-item>
|
||||
<el-form-item label="文本内容" prop="remark">
|
||||
<el-input
|
||||
type="textarea"
|
||||
|
@ -274,7 +255,11 @@ export default {
|
|||
console.log(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) {
|
||||
console.log(file);
|
||||
|
@ -287,19 +272,24 @@ export default {
|
|||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
templateName: null,
|
||||
templateType: null,
|
||||
templateContent: null,
|
||||
templateStatus: null,
|
||||
createId: null,
|
||||
createUser: null,
|
||||
createTime: null,
|
||||
updateId: null,
|
||||
updateUser: null,
|
||||
updateTime: null,
|
||||
sort: null
|
||||
id: undefined,
|
||||
templateName: undefined,
|
||||
templateType: undefined,
|
||||
templateContent: undefined,
|
||||
templateStatus: undefined,
|
||||
createId: undefined,
|
||||
createUser: undefined,
|
||||
createTime: undefined,
|
||||
updateId: undefined,
|
||||
updateUser: undefined,
|
||||
updateTime: undefined,
|
||||
sort: undefined,
|
||||
codeUrl: undefined,
|
||||
attrInfoList: [],
|
||||
remark: undefined
|
||||
};
|
||||
this.attrList = [];
|
||||
this.fileList = [];
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
|
@ -330,6 +320,12 @@ export default {
|
|||
const id = row.id || this.ids
|
||||
getTemplate(id).then(response => {
|
||||
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.title = "修改模版";
|
||||
});
|
||||
|
@ -338,6 +334,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
this.form.attrInfoList = this.attrList;
|
||||
if (this.form.id != null) {
|
||||
updateTemplate(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
|
@ -373,15 +370,25 @@ export default {
|
|||
containsChinese(str) {
|
||||
return /[\u4e00-\u9fa5]/.test(str);
|
||||
},
|
||||
clickContent(event,content){
|
||||
// console.log(event,content)
|
||||
clickContent(event,item){
|
||||
console.log(event,item)
|
||||
if(this.isElementPresent(item)>-1){
|
||||
return
|
||||
}else{
|
||||
this.attrList.push(item)
|
||||
}
|
||||
// if(!this.containsChinese(this.form.templateContent)){
|
||||
// this.form.templateContent = '<p>'+content+'</p>'
|
||||
// }else{
|
||||
// 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>'
|
||||
// this.form.templateContent = this.form.templateContent.replace(content, '');
|
||||
},
|
||||
|
@ -390,22 +397,40 @@ export default {
|
|||
this.attrConfigList = response.data
|
||||
});
|
||||
},
|
||||
isElementPresent(item) {
|
||||
return this.attrList.indexOf(item);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
|
||||
.el-row {
|
||||
/* margin-bottom: 20px; */
|
||||
/* .el-row {
|
||||
margin-bottom: 10px;
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
.el-col {
|
||||
border-radius: 4px;
|
||||
}
|
||||
} */
|
||||
.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>
|
Loading…
Reference in New Issue