package controllers
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/360EntSecGroup-Skylar/excelize"
|
|
"github.com/kataras/iris"
|
|
"lapp_-wy/utils"
|
|
"lapp_-wy/web/middleware/glog"
|
|
"lapp_-wy/web/middleware/jwts"
|
|
"lapp_-wy/web/models"
|
|
"lapp_-wy/web/supports"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func InsertContracttab(ctx iris.Context) {
|
|
user, ok := jwts.ParseToken(ctx)
|
|
utils.TrimStruct(user, *user)
|
|
if !ok {
|
|
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
|
|
return
|
|
}
|
|
//日志
|
|
logs := new(models.LeitServerLog)
|
|
logs.File = "/controllers/Carporttab_controller.go"
|
|
logs.Level = "info"
|
|
logs.Function = "InsertContracttab"
|
|
logs.Message = "缴费"
|
|
logs.Operator = user.Userid
|
|
logs.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
|
|
logs.InsertRecord()
|
|
data := new(models.ContractInfo)
|
|
if err := ctx.ReadJSON(data); err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil)
|
|
return
|
|
}
|
|
var err error
|
|
_, err = utils.TimeParseyyyyMMdd(data.Chargetime)
|
|
if err != nil {
|
|
data.Chargetime = utils.TimeFormat(time.Now(), "yyyy-MM-dd")
|
|
}
|
|
me := new(models.Contracttab)
|
|
me = &data.Contracttab
|
|
me.Chargableexpense = data.Contracttab.Chargedexpense
|
|
me.Cid = data.Cid
|
|
me.Chargetype = data.Chargetype
|
|
me.Chargeway = data.Contracttab.Chargeway
|
|
lengthdate := 0.0
|
|
switch data.Chargetype {
|
|
case 1:
|
|
start, err := time.Parse("2006-01-02", data.Begindate)
|
|
if err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
|
|
return
|
|
}
|
|
fmt.Println("controller endate:", data.Enddate)
|
|
end, err := time.Parse("2006-01-02", data.Enddate)
|
|
if err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
|
|
return
|
|
}
|
|
days := (end.Unix() - start.Unix()) / (86400*30)
|
|
fmt.Println("days:", days)
|
|
lengthdate = float64(days)
|
|
case 2:
|
|
//
|
|
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
|
|
//判断是否
|
|
access := new(models.Accesscardtab)
|
|
access.Cid = user.Pid
|
|
access.Propertyid = data.Propertyid
|
|
access.Status = 1
|
|
access.Propertytypeid = "电梯费"
|
|
access.Accesscardid = data.Accesscardid
|
|
access.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
|
|
access.Lastmodifytime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
|
|
access.Descr = "电梯卡费"
|
|
access.Lastmodifyby = user.Userid
|
|
err := access.Add()
|
|
if err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
|
|
return
|
|
}
|
|
case 3:
|
|
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
|
|
carport := new(models.Carporttab)
|
|
carport.Cid = user.Pid
|
|
carport.Cid = user.Pid
|
|
carport.Carportid = data.Carportid
|
|
_, err := carport.SelectOne()
|
|
if err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
|
|
return
|
|
}
|
|
}
|
|
me.Mobile = data.Phone1
|
|
me.Linkman = data.Contact
|
|
me.Begdate = data.Begindate
|
|
me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdate), 0)
|
|
me.Chargetime = data.Chargetime
|
|
//if data.Chargetype == 1 {
|
|
//
|
|
//} else {
|
|
// me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdate), 0)
|
|
//}
|
|
me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
|
|
if utils.ValueIsEmpty(me.Createby) {
|
|
me.Createby = user.Name
|
|
}
|
|
lengthdate = float64(me.Lengthdate)
|
|
if utils.ValueIsEmpty(me.Contractid) {
|
|
err = me.Add(data, lengthdate)
|
|
} else {
|
|
err = me.Update(data, lengthdate)
|
|
}
|
|
|
|
if err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
|
|
return
|
|
}
|
|
supports.Ok(ctx, supports.OptionSuccess, "")
|
|
}
|
|
|
|
func UpdateContracttab(ctx iris.Context) {
|
|
user, ok := jwts.ParseToken(ctx)
|
|
utils.TrimStruct(user, *user)
|
|
if !ok {
|
|
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
|
|
return
|
|
}
|
|
//日志
|
|
logs := new(models.LeitServerLog)
|
|
logs.File = "/controllers/Carporttab_controller.go"
|
|
logs.Level = "info"
|
|
logs.Function = "UpdateContracttab"
|
|
logs.Message = "需交合同"
|
|
logs.Operator = user.Userid
|
|
logs.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
|
|
logs.InsertRecord()
|
|
data := new(models.ContractInfo)
|
|
if err := ctx.ReadJSON(data); err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil)
|
|
return
|
|
}
|
|
me := new(models.Contracttab)
|
|
me = &data.Contracttab
|
|
me.Chargableexpense = data.Contracttab.Chargedexpense
|
|
me.Cid = data.Cid
|
|
me.Chargetype = data.Chargetype
|
|
me.Mobile = data.Phone1
|
|
me.Linkman = data.Contact
|
|
lengthdate := 0.0
|
|
switch data.Chargetype {
|
|
case 1:
|
|
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice / data.Constructionarea
|
|
case 2:
|
|
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
|
|
case 3:
|
|
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
|
|
default:
|
|
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
|
|
}
|
|
|
|
me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdate), 0)
|
|
me.Chargetime = data.Chargetime
|
|
me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
|
|
if utils.ValueIsEmpty(me.Createby) {
|
|
me.Createby = user.Name
|
|
}
|
|
err := me.Update(data, lengthdate)
|
|
if err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, "更新失败", nil)
|
|
return
|
|
}
|
|
|
|
supports.Ok(ctx, "续交成功", "")
|
|
}
|
|
|
|
//上传excel
|
|
func ExcelContracttab(ctx iris.Context) {
|
|
|
|
user, ok := jwts.ParseToken(ctx)
|
|
utils.TrimStruct(user, *user)
|
|
if !ok {
|
|
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
|
|
return
|
|
}
|
|
|
|
//获取通过iris.WithPostMaxMemory获取的最大上传值大小。
|
|
maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
|
|
err := ctx.Request().ParseMultipartForm(maxSize)
|
|
if err != nil {
|
|
ctx.StatusCode(iris.StatusInternalServerError)
|
|
ctx.WriteString(err.Error())
|
|
return
|
|
}
|
|
form := ctx.Request().MultipartForm
|
|
files := form.File["upload[]"]
|
|
|
|
guid := utils.MakeOrderSn("test")
|
|
savePath := "web/public/uploadxlsx/" + guid + ".xlsx"
|
|
|
|
for _, file := range files {
|
|
// 上传文件至指定目录
|
|
err := utils.SaveUploadedFile(file, savePath)
|
|
if err != nil {
|
|
return
|
|
}
|
|
}
|
|
|
|
xlsx, err := excelize.OpenFile(savePath)
|
|
if err != nil {
|
|
return
|
|
}
|
|
rows := xlsx.GetRows("Sheet1")
|
|
for _, v := range rows {
|
|
|
|
info := new(models.Propertytab)
|
|
info.Cid = user.Pid
|
|
info.Propertyid = utils.ValueToString(v[0], "")
|
|
infodata, err := info.SelectOne()
|
|
if err != nil {
|
|
continue
|
|
}
|
|
glog.InfoExtln("导入合同", "Propertyid", info.Propertyid)
|
|
data := new(models.ContractInfo)
|
|
data.Propertyid = strings.TrimSpace(utils.ValueToString(v[0], ""))
|
|
me := new(models.Contracttab)
|
|
//取整
|
|
glog.InfoExtln("导入合同", "缴费金额", v[3])
|
|
money := fmt.Sprintf("%.0f",utils.ValueToFloat(v[3], 0.0))
|
|
glog.InfoExtln("导入合同", "缴费金额保留一位小数",money)
|
|
me.Chargableexpense = utils.ValueToFloat(money, 0.0)
|
|
me.Chargedexpense = utils.ValueToFloat(money, 0.0)
|
|
glog.InfoExtln("导入合同", "Chargedexpense",me.Chargedexpense)
|
|
me.Cid = user.Pid
|
|
me.Chargetype = 1
|
|
tt1 := utils.ValueToString(strings.TrimSpace(v[1]), "")
|
|
tt2 := utils.ValueToString(strings.TrimSpace(v[2]), "")
|
|
ttt1 := strings.Split(tt1, ".")
|
|
if len(strings.TrimSpace(ttt1[1])) == 1 {
|
|
ttt1[1] = "0" + strings.TrimSpace(ttt1[1])
|
|
}
|
|
if len(strings.Trim(ttt1[2], "")) == 1 {
|
|
ttt1[2] = "0" + strings.TrimSpace(ttt1[2])
|
|
}
|
|
ttt2 := strings.Split(tt2, ".")
|
|
if len(strings.TrimSpace(ttt2[1])) == 1 {
|
|
ttt2[1] = "0" + strings.TrimSpace(ttt2[1])
|
|
}
|
|
if len(strings.TrimSpace(ttt2[2])) == 1 {
|
|
ttt2[2] = "0" + strings.TrimSpace(ttt2[2])
|
|
}
|
|
tt1 = ttt1[0] + "-" + ttt1[1] + "-" + ttt1[2]
|
|
tt2 = ttt2[0] + "-" + ttt2[1] + "-" + ttt2[2]
|
|
|
|
me.Mobile = infodata.Phone1
|
|
me.Linkman = infodata.Contact
|
|
me.Begdate = strings.TrimSpace(tt1)
|
|
|
|
tt3 := utils.ValueToString(v[5], "")
|
|
ttt3 := strings.Split(tt3, ".")
|
|
if len(strings.TrimSpace(ttt3[1])) == 1 {
|
|
ttt3[1] = "0" + strings.TrimSpace(ttt3[1])
|
|
}
|
|
if len(strings.TrimSpace(ttt3[2])) == 1 {
|
|
ttt3[2] = "0" + strings.TrimSpace(ttt3[2])
|
|
}
|
|
tt3 = ttt3[0] + "-" + ttt3[1] + "-" + ttt3[2]
|
|
me.Chargetime = strings.TrimSpace(tt3)
|
|
me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
|
|
me.Createby = utils.ValueToString(v[4], "")
|
|
|
|
//lengthdays := utils.TimeSub(t2, t1)
|
|
//lengthday := utils.ValueToFloat(lengthdays, 0.0) / 30
|
|
|
|
//查询楼栋信息
|
|
build := new(models.Buildingtab)
|
|
build.Cid = me.Cid
|
|
build.Buildingid = infodata.Buildingid
|
|
builds, err := build.SelectOne()
|
|
if err != nil {
|
|
glog.InfoExtln("导入合同", "err is:", err)
|
|
}
|
|
//查询物业费
|
|
pro := new(models.Propertytypetab)
|
|
pro.Cid = me.Cid
|
|
pro.Propertytypeid = builds.Propertytypeid
|
|
price, err := pro.SelectOne()
|
|
if err != nil {
|
|
glog.InfoExtln("导入合同", "err is:", err)
|
|
}
|
|
lengthdays := me.Chargedexpense / price.Unitprice / infodata.Constructionarea
|
|
me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdays), 0)
|
|
glog.InfoExtln("导入合同", "Propertyid", infodata.Propertyid)
|
|
glog.InfoExtln("导入合同", "tt1", tt1)
|
|
glog.InfoExtln("导入合同", "tt2", tt2)
|
|
glog.InfoExtln("导入合同", "Chargedexpense", me.Chargedexpense)
|
|
glog.InfoExtln("导入合同", "Unitprice", price.Unitprice)
|
|
glog.InfoExtln("导入合同", "Constructionarea", infodata.Constructionarea)
|
|
glog.InfoExtln("导入合同", "lengthdays", lengthdays)
|
|
glog.InfoExtln("导入合同", "Lengthdate", me.Lengthdate)
|
|
data.Chargetime = me.Chargetime
|
|
if utils.ValueIsEmpty(infodata.Contractid) {
|
|
err = me.Add(data, lengthdays)
|
|
} else {
|
|
err = me.Update(data, lengthdays)
|
|
}
|
|
|
|
if err != nil {
|
|
glog.InfoExtln("导入合同", "err", err)
|
|
continue
|
|
}
|
|
|
|
}
|
|
return
|
|
}
|