发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967
课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。
腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518
第二个视频发布 https://edu.csdn.net/course/detail/27109
腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518
介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。
第三个视频发布:https://edu.csdn.net/course/detail/27574
详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------
groovy.lang.MissingPropertyException: No such property: skuId for class: grails.orm.HibernateCriteriaBuilder
at com.zy.wms.aftersale.ReturnOnShelfInfo$_search_closure1$$EQKQrfqf.doCall(ReturnOnShelfInfo.groovy:46)
at com.zy.wms.aftersale.ReturnOnShelfInfo$$EQKQrfqf.search(ReturnOnShelfInfo.groovy:56)
at com.zy.wms.warehouse.GoodsStockDetailController.returnOnShelfInfoListData(GoodsStockDetailController.groovy:638)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
static search(params){
def searchClosure = {
if (params.qOrderStartDate) {
ge('gmtCreated', DateUtils.getSecondFromDateString(params.qOrderStartDate as String, "MM/dd/yyyy"))
}
if (params.qOrderEndDate) {
lt('gmtCreated', DateUtils.getSecondFromDateString(params.qOrderEndDate as String, "MM/dd/yyyy") + 86400)
}
if(params.qStatus) {
eq('status',params.qStatus as Integer)
}
if(params.qReturnOnShelfQTypeText){
if(params.qReturnOnShelfQType=='1'){
eq('onShelfSn',params.qReturnOnShelfQTypeText)
}else if(params.qReturnOnShelfQType=='2'){
returnOnShelfGoods(eq(skuId,params.qReturnOnShelfQTypeText))
}
}
if(params.qDepotId){
eq('depotId',params.qDepotId as Long)
}
}
def c = ReturnOnShelfInfo.createCriteria()
return c.list(params,searchClosure)
}
解决后代码:
static search(params){
def searchClosure = {
if (params.qOrderStartDate) {
ge('gmtCreated', DateUtils.getSecondFromDateString(params.qOrderStartDate as String, "MM/dd/yyyy"))
}
if (params.qOrderEndDate) {
lt('gmtCreated', DateUtils.getSecondFromDateString(params.qOrderEndDate as String, "MM/dd/yyyy") + 86400)
}
if(params.qStatus) {
eq('status',params.qStatus as Integer)
}
if(params.qReturnOnShelfQTypeText){
if(params.qReturnOnShelfQType=='1'){
eq('onShelfSn',params.qReturnOnShelfQTypeText)
}
if(params.qReturnOnShelfQType=='2'){
returnOnShelfGoods {
eq("skuId",params.qReturnOnShelfQTypeText as Long)
}
}
}
if(params.qDepotId){
eq('depotId',params.qDepotId as Long)
}
}
def c = ReturnOnShelfInfo.createCriteria()
return c.list(params,searchClosure)
}