|  | @@ -5,6 +5,8 @@ import (
 | 
	
		
			
				|  |  |  	"net/http"
 | 
	
		
			
				|  |  |  	"strconv"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	"gitee.com/xuyiping_admin/pkg/xerr"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 | 
	
		
			
				|  |  |  	operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
 | 
	
		
			
				|  |  |  	"gitee.com/xuyiping_admin/pkg/apierr"
 | 
	
	
		
			
				|  | @@ -174,7 +176,7 @@ func PrescriptionDetail(c *gin.Context) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func SearchImmunizationList(c *gin.Context) {
 | 
	
		
			
				|  |  | -	var req pasturePb.ImmunizationRequest
 | 
	
		
			
				|  |  | +	var req pasturePb.SearchEventImmunizationRequest
 | 
	
		
			
				|  |  |  	if err := ginutil.BindProto(c, &req); err != nil {
 | 
	
		
			
				|  |  |  		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  |  		return
 | 
	
	
		
			
				|  | @@ -240,3 +242,169 @@ func ImmunizationIsShow(c *gin.Context) {
 | 
	
		
			
				|  |  |  		Data: &operationPb.Success{Success: true},
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// SameTimeCreatedOrUpdate 同期策略添加或者更新
 | 
	
		
			
				|  |  | +func SameTimeCreatedOrUpdate(c *gin.Context) {
 | 
	
		
			
				|  |  | +	var req pasturePb.SearchSameTimeList
 | 
	
		
			
				|  |  | +	if err := ginutil.BindProto(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if err := valid.ValidateStruct(&req,
 | 
	
		
			
				|  |  | +		valid.Field(&req.Name, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.CowType, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.WeekType, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.PostpartumDaysStart, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.PostpartumDaysEnd, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.CollateNodes, valid.Required),
 | 
	
		
			
				|  |  | +	); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if req.PostpartumDaysStart > req.PostpartumDaysEnd {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, xerr.New("开始天数不能大于结束天数"))
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if len(req.CollateNodes) < 0 {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, xerr.New("错误的同期策略数据"))
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if err := middleware.BackendOperation(c).OpsService.CreateOrUpdateSameTime(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, &operationPb.CommonOK{
 | 
	
		
			
				|  |  | +		Code: http.StatusOK,
 | 
	
		
			
				|  |  | +		Msg:  "ok",
 | 
	
		
			
				|  |  | +		Data: &operationPb.Success{Success: true},
 | 
	
		
			
				|  |  | +	})
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// SameTimeList 同步策略列表
 | 
	
		
			
				|  |  | +func SameTimeList(c *gin.Context) {
 | 
	
		
			
				|  |  | +	var req pasturePb.SearchNameRequest
 | 
	
		
			
				|  |  | +	if err := ginutil.BindProto(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	pagination := &pasturePb.PaginationModel{
 | 
	
		
			
				|  |  | +		Page:       int32(c.GetInt(middleware.Page)),
 | 
	
		
			
				|  |  | +		PageSize:   int32(c.GetInt(middleware.PageSize)),
 | 
	
		
			
				|  |  | +		PageOffset: int32(c.GetInt(middleware.PageOffset)),
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	res, err := middleware.BackendOperation(c).OpsService.SearchSameTimeList(c, &req, pagination)
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, res)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func SameTimeIsShow(c *gin.Context) {
 | 
	
		
			
				|  |  | +	sameTimeIdStr := c.Param("id")
 | 
	
		
			
				|  |  | +	sameTimeId, _ := strconv.Atoi(sameTimeIdStr)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if err := valid.Validate(sameTimeId, valid.Required, valid.Min(1)); err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if err := middleware.BackendOperation(c).OpsService.SameTimeIsShow(c, int64(sameTimeId)); err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, &operationPb.CommonOK{
 | 
	
		
			
				|  |  | +		Code: http.StatusOK,
 | 
	
		
			
				|  |  | +		Msg:  "ok",
 | 
	
		
			
				|  |  | +		Data: &operationPb.Success{Success: true},
 | 
	
		
			
				|  |  | +	})
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func SystemBasicList(c *gin.Context) {
 | 
	
		
			
				|  |  | +	res, err := middleware.BackendOperation(c).OpsService.SystemBasicList(c)
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, res)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func SystemBasicEdit(c *gin.Context) {
 | 
	
		
			
				|  |  | +	var req pasturePb.BaseDataConfigBatch
 | 
	
		
			
				|  |  | +	if err := ginutil.BindProto(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if err := valid.ValidateStruct(&req,
 | 
	
		
			
				|  |  | +		valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
 | 
	
		
			
				|  |  | +			s := value.(pasturePb.BaseDataConfig)
 | 
	
		
			
				|  |  | +			return valid.ValidateStruct(&s,
 | 
	
		
			
				|  |  | +				valid.Field(&s.Id, valid.Required),
 | 
	
		
			
				|  |  | +				valid.Field(&s.Name, valid.Required),
 | 
	
		
			
				|  |  | +			)
 | 
	
		
			
				|  |  | +		}))),
 | 
	
		
			
				|  |  | +	); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	err := middleware.BackendOperation(c).OpsService.SystemBasicEdit(c, &req)
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, &operationPb.CommonOK{
 | 
	
		
			
				|  |  | +		Code: http.StatusOK,
 | 
	
		
			
				|  |  | +		Msg:  "ok",
 | 
	
		
			
				|  |  | +		Data: &operationPb.Success{Success: true},
 | 
	
		
			
				|  |  | +	})
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func SaleDealerCreateOrUpdate(c *gin.Context) {
 | 
	
		
			
				|  |  | +	var req pasturePb.DealerItem
 | 
	
		
			
				|  |  | +	if err := ginutil.BindProto(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if err := valid.ValidateStruct(&req,
 | 
	
		
			
				|  |  | +		valid.Field(&req.Name, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.Phone, valid.Required),
 | 
	
		
			
				|  |  | +		valid.Field(&req.Contacts, valid.Required),
 | 
	
		
			
				|  |  | +	); err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if err := middleware.BackendOperation(c).OpsService.CreateOrUpdateDealer(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, &operationPb.CommonOK{
 | 
	
		
			
				|  |  | +		Code: http.StatusOK,
 | 
	
		
			
				|  |  | +		Msg:  "ok",
 | 
	
		
			
				|  |  | +		Data: &operationPb.Success{Success: true},
 | 
	
		
			
				|  |  | +	})
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func SaleDealerList(c *gin.Context) {
 | 
	
		
			
				|  |  | +	var req pasturePb.SearchNameRequest
 | 
	
		
			
				|  |  | +	if err := ginutil.BindProto(c, &req); err != nil {
 | 
	
		
			
				|  |  | +		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	res, err := middleware.BackendOperation(c).OpsService.SearchDealerList(c, &req)
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		apierr.ClassifiedAbort(c, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	ginutil.JSONResp(c, res)
 | 
	
		
			
				|  |  | +}
 |