mirror of
https://gitee.com/guchengwuyue/crm.git
synced 2025-12-06 08:58:27 +08:00
update sql 及其他修复
This commit is contained in:
parent
83e691d625
commit
74d5040b37
@ -109,8 +109,6 @@ yshop-crm意象客户关系管理系统,专门为企业销售团队量身定
|
|||||||
- element-plus:https://element-plus.gitee.io/zh-CN/
|
- element-plus:https://element-plus.gitee.io/zh-CN/
|
||||||
- vue:https://cn.vuejs.org/
|
- vue:https://cn.vuejs.org/
|
||||||
- pay-java-parent:https://gitee.com/egzosn/pay-java-parent
|
- pay-java-parent:https://gitee.com/egzosn/pay-java-parent
|
||||||
- uvui:https://www.uvui.cn/
|
|
||||||
- uniapp:https://uniapp.dcloud.net.cn/
|
|
||||||
|
|
||||||
|
|
||||||
## 使用须知
|
## 使用须知
|
||||||
|
|||||||
@ -332,9 +332,9 @@ export const handleTree3 = (data: any[], id?: string, parentId?: string, childre
|
|||||||
|
|
||||||
for (const d of data) {
|
for (const d of data) {
|
||||||
const parentId = d[config.parentId]
|
const parentId = d[config.parentId]
|
||||||
if (parentId == 0) {
|
// if (parentId == 0) {
|
||||||
d.disabled = true
|
// d.disabled = true
|
||||||
}
|
// }
|
||||||
if (childrenListMap[parentId] == null) {
|
if (childrenListMap[parentId] == null) {
|
||||||
childrenListMap[parentId] = []
|
childrenListMap[parentId] = []
|
||||||
}
|
}
|
||||||
|
|||||||
@ -74,14 +74,14 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
||||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
@click="openForm('create')"
|
@click="openForm('create')"
|
||||||
v-hasPermi="['crm:customer-contacts:create']"
|
v-hasPermi="['crm:customer-contacts:create']"
|
||||||
>
|
>
|
||||||
<Icon icon="ep:delete" class="mr-5px" /> 回收站
|
<Icon icon="ep:delete" class="mr-5px" /> 回收站
|
||||||
</el-button>
|
</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|||||||
@ -71,7 +71,7 @@ const formData = ref({
|
|||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
parentId: [{ required: true, message: '请选择上级分类', trigger: 'blur' }],
|
parentId: [{ required: true, message: '请选择上级分类', trigger: 'blur' }],
|
||||||
name: [{ required: true, message: '分类名称不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '分类名称不能为空', trigger: 'blur' }],
|
||||||
picUrl: [{ required: true, message: '分类图片不能为空', trigger: 'blur' }],
|
//picUrl: [{ required: true, message: '分类图片不能为空', trigger: 'blur' }],
|
||||||
sort: [{ required: true, message: '分类排序不能为空', trigger: 'blur' }],
|
sort: [{ required: true, message: '分类排序不能为空', trigger: 'blur' }],
|
||||||
status: [{ required: true, message: '开启状态不能为空', trigger: 'blur' }]
|
status: [{ required: true, message: '开启状态不能为空', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
|
|||||||
@ -222,8 +222,8 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button v-if="activeName !== 'one'" @click="upTab">上一步</el-button>
|
<el-button v-if="activeName !== 'one'" @click="upTab">上一步</el-button>
|
||||||
<el-button type="primary" v-if="activeName !== 'four'" @click="downTab">下一步</el-button>
|
<el-button type="primary" v-if="activeName !== 'three'" @click="downTab">下一步</el-button>
|
||||||
<el-button v-if="activeName == 'four'" @click="submitForm" type="primary" :disabled="formLoading">保 存</el-button>
|
<el-button v-if="activeName == 'three'" @click="submitForm" type="primary" :disabled="formLoading">保 存</el-button>
|
||||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
</template>
|
</template>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
@ -469,7 +469,7 @@ const open = async (type: string, id?: number) => {
|
|||||||
}
|
}
|
||||||
getInfo(id)
|
getInfo(id)
|
||||||
// 获得分类树
|
// 获得分类树
|
||||||
// await getTree()
|
getTree()
|
||||||
|
|
||||||
}
|
}
|
||||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
|
|||||||
@ -71,7 +71,6 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="所属门店" align="center" prop="shopName" />
|
|
||||||
<el-table-column label="商品名称" align="center" prop="storeName" />
|
<el-table-column label="商品名称" align="center" prop="storeName" />
|
||||||
<el-table-column label="商品价格" align="center" prop="price" />
|
<el-table-column label="商品价格" align="center" prop="price" />
|
||||||
<el-table-column label="销量" align="center" width="80" prop="sales" />
|
<el-table-column label="销量" align="center" width="80" prop="sales" />
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -24,12 +24,26 @@ public class DemoFilter extends OncePerRequestFilter {
|
|||||||
String method = request.getMethod();
|
String method = request.getMethod();
|
||||||
String path = request.getRequestURI();
|
String path = request.getRequestURI();
|
||||||
//app端不过滤
|
//app端不过滤
|
||||||
Boolean res = StrUtil.contains(path,"/app-api/");
|
// Boolean res = StrUtil.contains(path,"/app-api/");
|
||||||
|
|
||||||
|
|
||||||
Boolean res6 = StrUtil.contains(path,"/admin-api/cashier/");
|
|
||||||
|
|
||||||
//系统模块特殊处理
|
//系统模块特殊处理
|
||||||
Boolean res2 = StrUtil.contains(path,"/admin-api/order/store-order/update");
|
Boolean res2 = StrUtil.contains(path,"/admin-api/crm/flow/create");
|
||||||
|
Boolean res22 = StrUtil.contains(path,"/admin-api/crm/flow/update");
|
||||||
|
if(res2 || res22){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Boolean res6 = StrUtil.contains(path,"/admin-api/crm/");
|
||||||
|
if(res6 && !StrUtil.equalsAnyIgnoreCase(method, "DELETE") ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Boolean res66 = StrUtil.contains(path,"/admin-api/product/store-product/isFormatAttr");
|
||||||
|
if(res66) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Boolean res3 = StrUtil.contains(path,"/admin-api/system/auth/logout");
|
Boolean res3 = StrUtil.contains(path,"/admin-api/system/auth/logout");
|
||||||
|
|
||||||
@ -37,7 +51,7 @@ public class DemoFilter extends OncePerRequestFilter {
|
|||||||
|
|
||||||
Boolean res5 = StrUtil.contains(path,"/admin-api/system/captcha/get");
|
Boolean res5 = StrUtil.contains(path,"/admin-api/system/captcha/get");
|
||||||
|
|
||||||
return res || res6 || res2 || res3 || res4 || res5 || !StrUtil.equalsAnyIgnoreCase(method, "POST","PUT", "DELETE") // 写操作时,不进行过滤率
|
return res3 || res4 || res5 || !StrUtil.equalsAnyIgnoreCase(method, "POST","PUT", "DELETE") // 写操作时,不进行过滤率
|
||||||
|| WebFrameworkUtils.getLoginUserId(request) == null; // 非登录用户时,不进行过滤
|
|| WebFrameworkUtils.getLoginUserId(request) == null; // 非登录用户时,不进行过滤
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ public interface StoreProductAttrValueMapper extends BaseMapperX<StoreProductAtt
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Update("update yshop_store_product_attr_value set stock=stock-#{num}, sales=sales+#{num}" +
|
@Update("update yshop_store_product_attr_value set stock=stock-#{num}, sales=sales+#{num}" +
|
||||||
" where product_id=#{productId} and `sku`=#{unique} and stock >= #{num}")
|
" where product_id=#{productId} and `unique`=#{unique} and stock >= #{num}")
|
||||||
int decStockIncSales(@Param("num") Integer num, @Param("productId") Long productId,
|
int decStockIncSales(@Param("num") Integer num, @Param("productId") Long productId,
|
||||||
@Param("unique") String unique);
|
@Param("unique") String unique);
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ public interface StoreProductAttrValueMapper extends BaseMapperX<StoreProductAtt
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Update("update yshop_store_product_attr_value set stock=stock+#{num}, sales=sales-#{num}" +
|
@Update("update yshop_store_product_attr_value set stock=stock+#{num}, sales=sales-#{num}" +
|
||||||
" where product_id=#{productId} and `sku`=#{unique}")
|
" where product_id=#{productId} and `unique`=#{unique}")
|
||||||
int incStockDecSales(@Param("num") Integer num,@Param("productId") Long productId,
|
int incStockDecSales(@Param("num") Integer num,@Param("productId") Long productId,
|
||||||
@Param("unique") String unique);
|
@Param("unique") String unique);
|
||||||
|
|
||||||
|
|||||||
@ -54,7 +54,7 @@ public class StoreProductDto
|
|||||||
private String storeInfo;
|
private String storeInfo;
|
||||||
|
|
||||||
/** 关键字 */
|
/** 关键字 */
|
||||||
@NotBlank(message = "关键字不能为空")
|
//@NotBlank(message = "关键字不能为空")
|
||||||
private String keyword;
|
private String keyword;
|
||||||
|
|
||||||
/** 商品条码(一维码) */
|
/** 商品条码(一维码) */
|
||||||
|
|||||||
@ -170,7 +170,7 @@ yshop:
|
|||||||
pay:
|
pay:
|
||||||
order-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址
|
order-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址
|
||||||
refund-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址
|
refund-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址
|
||||||
demo: false # 开启演示模式
|
demo: true # 开启演示模式
|
||||||
tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc
|
tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc
|
||||||
file-path: /www/wwwroot/drink/file/
|
file-path: /www/wwwroot/drink/file/
|
||||||
h5: https://www.yixiang.co/h5
|
h5: https://www.yixiang.co/h5
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user