Browse Source

支持按月和按天缴费

feature_charge
娄文智 3 years ago
parent
commit
6feb8130ee
7 changed files with 277 additions and 150 deletions
  1. +73
    -17
      utils/time.go
  2. +39
    -0
      web/controllers/chargetab_controller.go
  3. +118
    -49
      web/controllers/contracttab_controller.go
  4. +2
    -0
      web/models/accesscardtab.go
  5. +38
    -18
      web/models/chargetab.go
  6. +6
    -66
      web/models/contracttab.go
  7. +1
    -0
      web/routes/routes.go

+ 73
- 17
utils/time.go View File

@ -2,6 +2,7 @@ package utils
import (
"errors"
"fmt"
"log"
"math"
"strconv"
@ -285,17 +286,26 @@ func Timelen(t1 string, t2 string) (int, error) {
//获取某一天的0点时间
func GetZeroTime(d time.Time) time.Time {
now := time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, d.Location())
now := time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, d.Location())
return now
}
//返回格式:例如2016-05-01 00:00:00的时间戳到2016-06-01 00:00:00的时间戳
func TimeReturnMonth(now time.Time) (firstMonth string, lastMonth string) {
func ReturnMonth(now time.Time) (firstMonth string, lastMonth string) {
currentYear, currentMonth, _ := now.Date()
currentLocation := now.Location()
firstOfMonth := time.Date(currentYear, currentMonth, 1, 0, 0, 0, 0, currentLocation)
lastOfMonth := firstOfMonth.AddDate(0, 1, 0).Add(time.Second * -1)
return TimeFormat(firstOfMonth,"yyyyMMdd"), TimeFormat(lastOfMonth,"yyyyMMdd")
return TimeFormat(firstOfMonth, "yyyyMMdd"), TimeFormat(lastOfMonth, "yyyyMMdd")
}
//返回格式:例如2016-05-01 00:00:00的时间戳到2016-06-01 00:00:00的时间戳
func TimeReturnMonth(now time.Time) (firstMonth time.Time, lastMonth time.Time) {
currentYear, currentMonth, _ := now.Date()
currentLocation := now.Location()
firstOfMonth := time.Date(currentYear, currentMonth, 1, 0, 0, 0, 0, currentLocation)
lastOfMonth := firstOfMonth.AddDate(0, 1, -1)
return firstOfMonth, lastOfMonth
}
//返回当前所在年的最后一天
@ -303,7 +313,7 @@ func TimeReturnLastYear(now time.Time) (lastYear string) {
currentYear, _, _ := now.Date()
currentLocation := now.Location()
lastOfYear := time.Date(currentYear, 12, 31, 0, 0, 0, 0, currentLocation)
return TimeFormat(lastOfYear,"yyyyMMdd")
return TimeFormat(lastOfYear, "yyyyMMdd")
}
//计算两个日期的间隔天数
@ -314,6 +324,13 @@ func TimeSub(t1, t2 time.Time) int {
return int(t1.Sub(t2).Hours() / 24)
}
//返回当前时间所在月份的天数
func TimeReturnMonths(timeNow time.Time) (lenDays int) {
t1, t2 := TimeReturnMonth(timeNow)
lenDays = TimeSub(t2, t1)
return (lenDays + 1)
}
// 计算日期相差多少月
func SubMonth(t1, t2 time.Time) (month int) {
y1 := t1.Year()
@ -339,34 +356,73 @@ func SubMonth(t1, t2 time.Time) (month int) {
}
//计算时间日历(日期)
func SelectDate(t1 string,t2 string) []string{
func SelectDate(t1 string, t2 string) []string {
var data []string
time1,_ := TimeParseyyyyMMdd(t1)
time2,_ := TimeParseyyyyMMdd(t2)
time1, _ := TimeParseyyyyMMdd(t1)
time2, _ := TimeParseyyyyMMdd(t2)
ut1 := time1.Unix()
ut2 := time2.Unix()
for i := 0; ut1 <= ut2 - int64(i)*86400; i++ {
for i := 0; ut1 <= ut2-int64(i)*86400; i++ {
timestamp := ut2 - int64(i)*86400
tm := time.Unix(timestamp, 0)
str := TimeFormat(tm,"yyyyMMdd")
data = append(data,str)
str := TimeFormat(tm, "yyyyMMdd")
data = append(data, str)
}
return data
}
//计算时间日历(日期)
func SelectMonth(t1 string,t2 string) []string{
func SelectMonth(t1 string, t2 string) []string {
var data []string
time1,_ := TimeParseyyyyMMdd(t1)
time2,_ := TimeParseyyyyMMdd(t2)
time1, _ := TimeParseyyyyMMdd(t1)
time2, _ := TimeParseyyyyMMdd(t2)
ut1 := time1.Unix()
ut2 := time2.Unix()
for i := 0; ut1 <= ut2 - int64(i)*86400; i++ {
for i := 0; ut1 <= ut2-int64(i)*86400; i++ {
timestamp := ut2 - int64(i)*86400
tm := time.Unix(timestamp, 0)
str := TimeFormat(tm,"yyyy/MM")
data = append(data,str)
str := TimeFormat(tm, "yyyy/MM")
data = append(data, str)
}
data = RemoveRepeatedElement(data)
return data
}
}
//计算天数的金额
func ComputeMoney(beginDate time.Time, unitPrice float64, months int, lenDay int, area float64) (priceMoney int) {
if months <= 0 && lenDay <= 0 {
return 0
}
priceMonth := float64(months) * unitPrice * area
endDate := beginDate.AddDate(0, 0, lenDay)
_, lastDay := TimeReturnMonth(beginDate)
result := endDate.Before(lastDay)
if result {
//第一种情况,没有跨月
lenDays := TimeReturnMonths(beginDate)
price := float64(lenDay) / float64(lenDays) * unitPrice * area
priceAll := priceMonth + price
priceMoney = ValueToInt(fmt.Sprintf("%0.0f", priceAll), 0)
return
} else {
//第二种情况,已经跨月
beglenDays := TimeReturnMonths(beginDate)
endlenDays := TimeReturnMonths(endDate)
//第一部分
lenDay1 := TimeSub(lastDay, beginDate)
price1 := float64(lenDay1) / float64(beglenDays) * unitPrice * area
//第二部分
lenDay2 := lenDay - lenDay1
price2 := float64(lenDay2) / float64(endlenDays) * unitPrice * area
priceAll := priceMonth + price2 + price1
priceMoney = ValueToInt(fmt.Sprintf("%0.0f", priceAll), 0)
return
}
}

+ 39
- 0
web/controllers/chargetab_controller.go View File

@ -519,6 +519,45 @@ func GetChargeArrearageData(ctx iris.Context) {
supports.Ok(ctx, supports.OptionSuccess, result)
}
// 按日期和缴费类型获取缴费数据
func GetChargeComputeMoney(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
beginTime := ctx.URLParam("beginDate")
unitPrice, err := ctx.URLParamFloat64("unitPrice")
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "unitPrice获取失败!", nil)
return
}
months, err := ctx.URLParamInt("months")
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "months获取失败!", nil)
return
}
lenDay, err := ctx.URLParamInt("lenDay")
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "lenDay获取失败!", nil)
return
}
area, err := ctx.URLParamFloat64("area")
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "area获取失败!", nil)
return
}
beginDate, err := utils.TimeParseyyyyMMdd(beginTime)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "beginDate时间转换失败!", nil)
return
}
result := utils.ComputeMoney(beginDate, unitPrice, months, lenDay, area)
supports.Ok(ctx, supports.OptionSuccess, result)
}
// 按日期和缴费类型获取缴费数据
func GetChargeWayListData(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)


+ 118
- 49
web/controllers/contracttab_controller.go View File

@ -39,32 +39,61 @@ func InsertContracttab(ctx iris.Context) {
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
//下次的开始时间不能小于上次的缴费时间
if data.Begindate < data.Contracttab.Begdate {
supports.Error(ctx, iris.StatusBadRequest, "开始时间不能小于上次的缴费时间!", nil)
return
}
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
/*******
*Chargetype : 物业费
*lengthdate : 缴费时长
**************/
lengthdate := ""
if data.Months > 0{
lengthdate += utils.ValueToString(data.Months,"") + "月 "
}
if data.Days > 0{
lengthdate += utils.ValueToString(data.Days,"") + "天 "
}
fmt.Println("controller endate:", data.Enddate)
end, err := time.Parse("2006-01-02", data.Enddate)
//初始化合同
me := new(models.Contracttab)
me.Cid = data.Cid
me.Contractid = data.Contractid
me.Chargetype = data.Chargetype
me.Chargeway = data.Contracttab.Chargeway
me.Mobile = data.Phone1
me.Remake = data.Contracttab.Remake
me.Linkman = data.Contact
me.Begdate = data.Begindate
me.Enddate = data.Enddate
me.Chargedexpense = data.Contracttab.Chargedexpense
me.Chargableexpense = data.Contracttab.Chargedexpense
me.Lengthdate = lengthdate
me.Chargetime = data.Chargetime
me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
if utils.ValueIsEmpty(me.Createby) {
me.Createby = user.Name
}
if utils.ValueIsEmpty(me.Contractid) {
err = me.Add(data)
} else {
err = me.Update(data)
}
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)
supports.Ok(ctx, supports.OptionSuccess, "")
case 2:
//
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
/*******
*Chargetype : 电梯费
*lengthdate : 缴费时长
**************/
lengthdate := data.Contracttab.Chargedexpense / data.Unitprice
//判断是否
access := new(models.Accesscardtab)
access.Cid = user.Pid
@ -90,9 +119,43 @@ func InsertContracttab(ctx iris.Context) {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
me := new(models.Contracttab)
me.Cid = data.Cid
me.Chargetype = data.Chargetype
me.Chargeway = data.Contracttab.Chargeway
me.Contractid = result.Contractid
me.Chargableexpense = data.Contracttab.Chargedexpense
me.Chargedexpense = data.Contracttab.Chargedexpense
me.Mobile = data.Phone1
me.Linkman = data.Contact
me.Begdate = data.Begindate
begtime, _ := utils.TimeParseyyyyMMdd(data.Begindate)
months := utils.ValueToInt(lengthdate,0)
Begdate := begtime.AddDate(0, months, 0)
me.Enddate = utils.TimeFormat(Begdate, "yyyy-MM-dd")
me.Lengthdate = fmt.Sprintf("%0.0f",lengthdate) + " 月 "
me.Chargetime = data.Chargetime
me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
if utils.ValueIsEmpty(me.Createby) {
me.Createby = user.Name
}
if utils.ValueIsEmpty(me.Contractid) {
err = me.Add(data)
} else {
err = me.Update(data)
}
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, "")
case 3:
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
/*******
*Chargetype : 车位费
*lengthdate : 缴费时长
**************/
lengthdate := data.Contracttab.Chargedexpense / data.Unitprice
carport := new(models.Carporttab)
carport.Cid = user.Pid
carport.Cid = user.Pid
@ -102,33 +165,39 @@ func InsertContracttab(ctx iris.Context) {
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)
}
me := new(models.Contracttab)
me.Cid = data.Cid
me.Chargetype = data.Chargetype
me.Chargeway = data.Contracttab.Chargeway
me.Contractid = data.Contractid
me.Chargableexpense = data.Contracttab.Chargedexpense
me.Chargedexpense = data.Contracttab.Chargedexpense
me.Mobile = data.Phone1
me.Linkman = data.Contact
me.Begdate = data.Begindate
begtime, _ := utils.TimeParseyyyyMMdd(data.Begindate)
months := utils.ValueToInt(lengthdate,0)
Begdate := begtime.AddDate(0, months, 0)
me.Enddate = utils.TimeFormat(Begdate, "yyyy-MM-dd")
me.Lengthdate = fmt.Sprintf("%0.0f",lengthdate) + " 月 "
me.Chargetime = data.Chargetime
me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
if utils.ValueIsEmpty(me.Createby) {
me.Createby = user.Name
}
if utils.ValueIsEmpty(me.Contractid) {
err = me.Add(data)
} else {
err = me.Update(data)
}
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, "")
}
supports.Ok(ctx, supports.OptionSuccess, "")
}
func UpdateContracttab(ctx iris.Context) {
@ -171,13 +240,13 @@ func UpdateContracttab(ctx iris.Context) {
lengthdate = data.Contracttab.Chargedexpense / data.Unitprice
}
me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdate), 0)
me.Lengthdate = fmt.Sprintf("%0.0f", lengthdate)
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)
err := me.Update(data)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "更新失败", nil)
return
@ -301,7 +370,7 @@ func ExcelContracttab(ctx iris.Context) {
glog.InfoExtln("导入合同", "err is:", err)
}
lengthdays := me.Chargedexpense / price.Unitprice / infodata.Constructionarea
me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdays), 0)
me.Lengthdate = fmt.Sprintf("%0.0f", lengthdays)
glog.InfoExtln("导入合同", "Propertyid", infodata.Propertyid)
glog.InfoExtln("导入合同", "tt1", tt1)
glog.InfoExtln("导入合同", "tt2", tt2)
@ -312,9 +381,9 @@ func ExcelContracttab(ctx iris.Context) {
glog.InfoExtln("导入合同", "Lengthdate", me.Lengthdate)
data.Chargetime = me.Chargetime
if utils.ValueIsEmpty(infodata.Contractid) {
err = me.Add(data, lengthdays)
err = me.Add(data)
} else {
err = me.Update(data, lengthdays)
err = me.Update(data)
}
if err != nil {


+ 2
- 0
web/models/accesscardtab.go View File

@ -120,6 +120,8 @@ type ContractInfo struct {
Unit string `json:"unit"`
Chargeway string `json:"chargeway"`
Room string `json:"room"`
Months int `json:"months"`
Days int `json:"days"`
Constructionarea float64 `json:"constructionarea"`
Usearea string `json:"usearea"`
Contact string `json:"contact"`


+ 38
- 18
web/models/chargetab.go View File

@ -1101,11 +1101,12 @@ func (t *Chargetab) Update() error {
m.Createby = t.Chargeby
t1, err := utils.TimeParseyyyyMMdd(strings.Trim(t.Chargestartdate, ""))
t2, err := utils.TimeParseyyyyMMdd(strings.Trim(t.Chargeenddate, ""))
glog.InfoExt("更新合同", "开始日期", t1)
glog.InfoExt("更新合同", "结束日期", t2)
lengthdate := utils.SubMonth(t2, t1)
lengthdate := utils.TimeSub(t2, t1)
glog.InfoExt("更新合同", "缴费时长", lengthdate)
m.Lengthdate = lengthdate
m.Lengthdate = utils.ValueToString(lengthdate,"") + "天"
_, err = session.Table("contracttab").ID(core.PK{t.Cid, pro.Contractid}).Update(m)
if err != nil {
session.Rollback()
@ -1136,9 +1137,9 @@ func (t *Chargetab) Update() error {
m.Createby = t.Chargeby
t1, err := utils.TimeParseyyyyMMdd(strings.Trim(t.Chargestartdate, ""))
t2, err := utils.TimeParseyyyyMMdd(strings.Trim(t.Chargeenddate, ""))
lengthdate := utils.SubMonth(t2, t1)
lengthdate := utils.TimeSub(t2, t1)
glog.InfoExt("更新合同", "缴费时长", lengthdate)
m.Lengthdate = lengthdate
m.Lengthdate = utils.ValueToString(lengthdate,"") + "天"
_, err = session.Table("contracttab").ID(core.PK{t.Cid, pro.Contractid}).Update(m)
if err != nil {
session.Rollback()
@ -1169,9 +1170,9 @@ func (t *Chargetab) Update() error {
m.Createby = t.Chargeby
t1, err := utils.TimeParseyyyyMMdd(strings.Trim(t.Chargestartdate, ""))
t2, err := utils.TimeParseyyyyMMdd(strings.Trim(t.Chargeenddate, ""))
lengthdate := utils.SubMonth(t2, t1)
lengthdate := utils.TimeSub(t2, t1)
glog.InfoExt("更新合同", "缴费时长", lengthdate)
m.Lengthdate = lengthdate
m.Lengthdate = utils.ValueToString(lengthdate,"") + "天"
_, err = session.Table("contracttab").ID(core.PK{t.Cid, pro.Contractid}).Update(m)
if err != nil {
session.Rollback()
@ -1270,8 +1271,9 @@ func (t *Chargetab) Del() error {
t1, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargestartdate, ""))
t2, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargeenddate, ""))
t2 = t2.AddDate(0, 0, 1)
lengthdate := utils.SubMonth(t2, t1)
m.Lengthdate = lengthdate
lengthdate := utils.TimeSub(t2, t1)
glog.InfoExt("更新合同", "缴费时长", lengthdate)
m.Lengthdate = utils.ValueToString(lengthdate,"") + "天"
_, err = session.Table("contracttab").ID(core.PK{t.Cid, pro.Contractid}).Update(m)
if err != nil {
session.Rollback()
@ -1361,7 +1363,7 @@ func (t *Chargetab) Del() error {
}
//查询合同编号
pro := new(Accesscardtab)
_, err = session.Table("accesscardtab").Where("", t.Cid, info.Accesscardid).Get(pro)
_, err = session.Table("accesscardtab").Where("cid = ? and accesscardid =?", t.Cid, info.Accesscardid).Get(pro)
if err != nil {
session.Rollback()
return err
@ -1377,8 +1379,9 @@ func (t *Chargetab) Del() error {
m.Chargetime = cinfo.Chargetime
t1, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargestartdate, ""))
t2, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargeenddate, ""))
lengthdate := utils.SubMonth(t2, t1)
m.Lengthdate = lengthdate
lengthdate := utils.TimeSub(t2, t1)
glog.InfoExt("更新合同", "缴费时长", lengthdate)
m.Lengthdate = utils.ValueToString(lengthdate,"") + "天"
_, err = session.Table("contracttab").ID(core.PK{t.Cid, pro.Contractid}).Update(m)
if err != nil {
session.Rollback()
@ -1469,7 +1472,7 @@ func (t *Chargetab) Del() error {
}
//查询合同编号
pro := new(Carporttab)
_, err = session.Table("carporttab").Where("", t.Cid, info.Carportid).Get(pro)
_, err = session.Table("carporttab").Where("cid = ? and carportid =?", t.Cid, info.Carportid).Get(pro)
if err != nil {
session.Rollback()
return err
@ -1485,8 +1488,9 @@ func (t *Chargetab) Del() error {
m.Chargetime = cinfo.Chargetime
t1, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargestartdate, ""))
t2, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargeenddate, ""))
lengthdate := utils.SubMonth(t2, t1)
m.Lengthdate = lengthdate
lengthdate := utils.TimeSub(t2, t1)
glog.InfoExt("更新合同", "缴费时长", lengthdate)
m.Lengthdate = utils.ValueToString(lengthdate,"") + "天"
_, err = session.Table("contracttab").ID(core.PK{t.Cid, pro.Contractid}).Update(m)
if err != nil {
session.Rollback()
@ -1550,8 +1554,9 @@ func (t *Chargetab) Del() error {
m.Chargetime = cinfo.Chargetime
t1, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargestartdate, ""))
t2, err := utils.TimeParseyyyyMMdd(strings.Trim(cinfo.Chargeenddate, ""))
lengthdate := utils.SubMonth(t2, t1)
m.Lengthdate = lengthdate
lengthdate := utils.TimeSub(t2, t1)
glog.InfoExt("更新合同", "缴费时长", lengthdate)
m.Lengthdate = utils.ValueToString(lengthdate,"") + "天"
_, err = session.Table("contracttab").ID(core.PK{t.Cid, pro.Contractid}).Update(m)
if err != nil {
session.Rollback()
@ -1713,8 +1718,23 @@ func (t *Chargetab) GetChargeArrearageData(cid int, pageIndex, pageSize int, yea
table = table.And("chargetab.chargetype = ?", chargeType)
}
if !utils.ValueIsEmpty(propertyId) {
query = query.And("chargetab.propertyid = ?", propertyId)
table = table.And("chargetab.propertyid = ?", propertyId)
switch chargeType {
case 1:
query = query.And("chargetab.propertyid = ?", propertyId)
table = table.And("chargetab.propertyid = ?", propertyId)
break
case 2:
query = query.And("chargetab.accesscardid = ?", propertyId)
table = table.And("chargetab.accesscardid = ?", propertyId)
break
case 3:
query = query.And("chargetab.carportid = ?", propertyId)
table = table.And("chargetab.carportid = ?", propertyId)
break
default:
}
}
if start != "" {
query = query.And("chargetab.chargetime >= ? and chargetab.chargetime <= ?", start, end)


+ 6
- 66
web/models/contracttab.go View File

@ -2,12 +2,9 @@ package models
import (
"errors"
"fmt"
"lapp_-wy/db"
"lapp_-wy/utils"
"lapp_-wy/web/middleware/glog"
"strings"
"time"
"xorm.io/core"
)
@ -23,7 +20,7 @@ type Contracttab struct {
Createtime string `json:"createtime" xorm:"VARCHAR(20)"`
Chargeway string `json:"chargeway" xorm:"VARCHAR(100)"`
Createby string `json:"createby" xorm:"VARCHAR(20)"`
Lengthdate int `json:"lengthdate" xorm:"INT(4)"`
Lengthdate string `json:"lengthdate" xorm:"VARCHAR(20)"`
Chargableexpense float64 `json:"chargableexpense" xorm:"DECIMAL(10,2)"`
Chargedexpense float64 `json:"chargedexpense" xorm:"DECIMAL(10,2)"`
Remake string `json:"remake" xorm:"VARCHAR(255)"`
@ -41,7 +38,7 @@ func (t *Contracttab) Clipped() {
}
//增加合同(同时添加缴费记录)
func (t *Contracttab) Add(me *ContractInfo, lengthdate float64) error {
func (t *Contracttab) Add(me *ContractInfo) error {
engine := db.MasterEngine()
session := engine.NewSession()
defer session.Close()
@ -69,26 +66,7 @@ func (t *Contracttab) Add(me *ContractInfo, lengthdate float64) error {
}
t.Serialnumber = serialnumber
t.Contractid = contractId
if utils.ValueIsEmpty(t.Begdate) {
t.Begdate = utils.TimeFormat(time.Now(), "yyyy-MM-dd")
//根据缴费金额计算出截止日期
addlenght := fmt.Sprintf("%0.2f", lengthdate)
addmonths := strings.Split(addlenght, ".")
adds := utils.ValueToFloat(addmonths[1], 0.0) * 0.3
adddays := utils.ValueToInt(adds, 0) - 1
endTime := time.Now().AddDate(0, utils.ValueToInt(addmonths[0], 0), adddays)
t.Enddate = utils.TimeFormat(endTime, "yyyy-MM-dd")
} else {
begtime, _ := utils.TimeParseyyyyMMdd(t.Begdate)
//根据缴费金额计算出截止日期
addlenght := fmt.Sprintf("%0.2f", lengthdate)
addmonths := strings.Split(addlenght, ".")
adds := utils.ValueToFloat(addmonths[1], 0.0) * 0.3
adddays := utils.ValueToInt(adds, 0) - 1
endTime := begtime.AddDate(0, utils.ValueToInt(addmonths[0], 0), adddays)
t.Enddate = utils.TimeFormat(endTime, "yyyy-MM-dd")
fmt.Println("t.endate:",t.Enddate)
}
_, err = session.Table("contracttab").Insert(t)
if err != nil {
session.Rollback()
@ -245,8 +223,7 @@ func (t *Contracttab) Add(me *ContractInfo, lengthdate float64) error {
}
//续签合同
func (t *Contracttab) Update(me *ContractInfo, lengthdate float64) error {
fmt.Println("lengthDate:", lengthdate)
func (t *Contracttab) Update(me *ContractInfo) error {
engine := db.MasterEngine()
session := engine.NewSession()
defer session.Close()
@ -264,45 +241,6 @@ func (t *Contracttab) Update(me *ContractInfo, lengthdate float64) error {
return err
}
t.Serialnumber = serialnumber
if utils.ValueIsEmpty(t.Begdate) {
fmt.Println("deal here")
begtime, _ := utils.TimeParseyyyyMMdd(t.Enddate)
Begdate := begtime.AddDate(0, 0, 1)
t.Begdate = utils.TimeFormat(Begdate, "yyyy-MM-dd")
//根据缴费金额计算出截止日期
addlenght := fmt.Sprintf("%0.2f", lengthdate)
addmonths := strings.Split(addlenght, ".")
adds := utils.ValueToFloat(addmonths[1], 0.0) * 0.3
adddays := utils.ValueToInt(adds, 0) - 1
endTime := begtime.AddDate(0, utils.ValueToInt(addmonths[0], 0), adddays)
t.Enddate = utils.TimeFormat(endTime, "yyyy-MM-dd")
} else {
fmt.Println("deal here2")
fmt.Println("t.Begdate:", t.Begdate)
begtime, _ := utils.TimeParseyyyyMMdd(t.Begdate)
fmt.Println("begtime:", begtime)
//根据缴费金额计算出截止日期
databaseBegtime, _ := utils.TimeParseyyyyMMdd(t.Enddate)
databaseBegtime = databaseBegtime.AddDate(0, 0, 1)
if begtime.Before(databaseBegtime) {
begtime = databaseBegtime
}
t.Begdate = utils.TimeFormat(begtime, "yyyy-MM-dd")
addlenght := fmt.Sprintf("%0.2f", lengthdate)
fmt.Println("addlenght:", addlenght)
addmonths := strings.Split(addlenght, ".")
fmt.Println("addmonths:", addlenght)
adds := utils.ValueToFloat(addmonths[1], 0.0) * 0.3
fmt.Println("adds:", adds)
adddays := utils.ValueToInt(adds, 0) - 1
fmt.Println("adddays:", adddays)
endTime := begtime.AddDate(0, utils.ValueToInt(addmonths[0], 0), adddays)
t.Enddate = utils.TimeFormat(endTime, "yyyy-MM-dd")
fmt.Println("begine date:", t.Begdate)
fmt.Println("enddate:", t.Enddate)
}
_, err = session.Table("contracttab").Cols("linkman", "mobile", "begdate", "enddate", "createtime", "createby", "lengthdate", "chargableexpense", "chargedexpense", "remake", "chargetime", "chargeway", "serialnumber").Where("cid = ? and contractid = ?", t.Cid, t.Contractid).Update(t)
if err != nil {
session.Rollback()
@ -447,3 +385,5 @@ func (t *Contracttab) SelectOne() (Contracttab, error) {
}
return data, nil
}

+ 1
- 0
web/routes/routes.go View File

@ -157,6 +157,7 @@ func Hub(app *iris.Application) {
//收费记录表
chargetab := admin.Party("/chargetab")
chargetab.Get("/listpage", controllers.GetChargeArrearageData)
chargetab.Get("/countmoney", controllers.GetChargeComputeMoney)
chargetab.Get("/datapage", controllers.GetChargetabListPage)
chargetab.Get("/selectinfo", controllers.GetChargetab)
chargetab.Get("/totalyear", controllers.GetChargetabStatisticByYear)


Loading…
Cancel
Save