Commit 5445eaa4 by kangxiaoshan

大后台操作日志

parent 00553dfe
......@@ -2,7 +2,6 @@ package common.controller;
import common.model.*;
import common.service.ContractService;
import common.task.ContractSendEmailThread;
import dic.ContractStatusEnum;
import dic.OperateObjectTypeEnum;
import org.apache.commons.io.IOUtils;
......@@ -14,9 +13,9 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import security.annotation.CurrentAccount;
import util.IPAddrUtil;
import util.NewUserLogThread;
import util.ResultModel;
import util.ValidateUtil;
......@@ -220,7 +219,9 @@ public class ContractController {
@RequestMapping(value = "update", method = RequestMethod.PUT)
@ResponseBody
public ResultModel update(@CurrentAccount User loginAccount, @RequestBody Contract contract, HttpServletRequest request, @PathVariable String platform) {
Contract contract1 = service.update(loginAccount, contract);
String ip = IPAddrUtil.getIpAddrNew(request);
Contract contract1 = service.update(loginAccount, contract,ip);
NewUserLogThread userlog = new NewUserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), contract1.getContractCode(), "修改合同","",contract1.toString(), request, platform);
userlog.start();
......@@ -278,9 +279,12 @@ public class ContractController {
@RequestMapping(value = "update/pay", method = RequestMethod.PUT)
@ResponseBody
public ResultModel updatePay(@CurrentAccount User loginAccount, @RequestBody ContractMoney contract, HttpServletRequest request, @PathVariable String platform) {
Contract contract1 = service.updatePay(loginAccount, contract);
NewUserLogThread userlog = new NewUserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), contract1.getContractCode(), "修改收款开票","", service.updatePay(loginAccount, contract).toString(), request, platform);
public ResultModel updatePay(@CurrentAccount User loginAccount, @RequestBody ContractMoney contract, HttpServletRequest request,
@PathVariable String platform) {
String ip = IPAddrUtil.getIpAddrNew(request);
Contract contract1 = service.updatePay(loginAccount, contract,ip);
NewUserLogThread userlog = new NewUserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), contract1.getContractCode(), "修改收款开票","", contract1.toString(), request, platform);
userlog.start();
return ResultModel.OK(contract1);
}
......@@ -317,9 +321,11 @@ public class ContractController {
@RequestMapping(value = "setstaus", method = RequestMethod.GET)
@ResponseBody
public ResultModel contractStatusUpdate( @PathVariable String platform,String contractId,String status) {
public ResultModel contractStatusUpdate( @PathVariable String platform,@CurrentAccount User loginUser,
String contractId,String status,HttpServletRequest request) {
return ResultModel.OK(service.contractStatusUpdate(platform,contractId,status));
String ip = IPAddrUtil.getIpAddrNew(request);
return ResultModel.OK(service.contractStatusUpdate(platform,contractId,status,ip,loginUser));
}
......@@ -339,12 +345,16 @@ public class ContractController {
*/
@RequestMapping(value = "change/del", method = RequestMethod.GET)
@ResponseBody
public ResultModel changesDel( @PathVariable String platform,String id,String type) {
public ResultModel changesDel( @PathVariable String platform,@CurrentAccount User loginAccount,
String id,String type,HttpServletRequest request) {
return ResultModel.OK(service.changesDel(platform,id,type, IPAddrUtil.getIpAddrNew(request),loginAccount));
return ResultModel.OK(service.changesDel(platform,id,type));
}
}
......@@ -2,16 +2,15 @@ package common.controller;
import common.model.User;
import common.model.UserLog;
import common.service.ContractService;
import common.service.UserLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import security.annotation.CurrentAccount;
import util.ResultModel;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
......@@ -23,10 +22,33 @@ public class UserLogController
{
@Autowired UserLogService userLogService;
@Autowired
private ContractService service;
///api/userlog/list?startDate=2017-12-26&endDate=2017-12-27
@RequestMapping(value = "list", method = RequestMethod.GET)
@ResponseBody
public ResultModel findByDS(@CurrentAccount User user, @RequestParam String startDate, @RequestParam String endDate) {
return ResultModel.OK(userLogService.findUserLog(user,startDate, endDate));
}
@RequestMapping(value = "change/del/info", method = RequestMethod.GET)
@ResponseBody
public ResultModel getChangeDelData(@PathVariable String platform, @CurrentAccount User loginAccount,
HttpServletRequest request,
String contranctCode) {
return ResultModel.OK(service.getChangeDelData(platform,loginAccount,contranctCode));
}
@RequestMapping(value = "change/del/detail", method = RequestMethod.GET)
@ResponseBody
public ResultModel getChangeDelDetail( @PathVariable String platform,@CurrentAccount User loginAccount,
String pid) {
return ResultModel.OK(service.getChangeDelDetailData(platform,loginAccount,pid));
}
}
package common.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Date;
@Entity
public class ChangeDelDetail {
private Long id;
private String contractCode;
private String email; //客户主账号
private Long parentId;
private Date creatTime;
private String item;
private String detail;
private String beforeValue;
private String afterValue;
private String filedName;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getContractCode() {
return contractCode;
}
public void setContractCode(String contractCode) {
this.contractCode = contractCode;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public Date getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
}
public String getItem() {
return item;
}
public void setItem(String item) {
this.item = item;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public String getBeforeValue() {
return beforeValue;
}
public void setBeforeValue(String beforeValue) {
this.beforeValue = beforeValue;
}
public String getAfterValue() {
return afterValue;
}
public void setAfterValue(String afterValue) {
this.afterValue = afterValue;
}
public String getFiledName() {
return filedName;
}
public void setFiledName(String filedName) {
this.filedName = filedName;
}
}
package common.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Date;
@Entity
public class ChangeDelInfo {
private Long id;
private String contractCode;
private String email; //客户主账号
private int modifyType;
private int function;
private String detail;
private String modifyAccount;
private Long modifyId;
private Date creatTime;
private String ds;
private String ip;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getContractCode() {
return contractCode;
}
public void setContractCode(String contractCode) {
this.contractCode = contractCode;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getModifyType() {
return modifyType;
}
public void setModifyType(int modifyType) {
this.modifyType = modifyType;
}
public int getFunction() {
return function;
}
public void setFunction(int function) {
this.function = function;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public String getModifyAccount() {
return modifyAccount;
}
public void setModifyAccount(String modifyAccount) {
this.modifyAccount = modifyAccount;
}
public Long getModifyId() {
return modifyId;
}
public void setModifyId(Long modifyId) {
this.modifyId = modifyId;
}
public Date getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getDs() {
return ds;
}
public void setDs(String ds) {
this.ds = ds;
}
}
package common.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Date;
@Entity
public class Sales {
private Long id;
private String name;
private String area;
private Date modifyTime;
private int status;
private int areaType;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getAreaType() {
return areaType;
}
public void setAreaType(int areaType) {
this.areaType = areaType;
}
}
package common.repository;
import common.model.ChangeDelDetail;
import common.model.ChangeDelInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface ChangeDelDetailRepository extends JpaRepository<ChangeDelDetail, Long> {
@Query(value = "select * from change_del_detail where parent_id = 1? order by creat_time desc ",nativeQuery = true)
List<ChangeDelDetail> findByPid(String pid);
}
package common.repository;
import common.model.ChangeDelInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface ChangeDelInfoRepository extends JpaRepository<ChangeDelInfo, Long> {
@Query(value = "select * from change_del_info where contract_code = 1? order by ds desc",nativeQuery = true)
List<ChangeDelInfo> findByContract(String contranctCode);
}
package common.repository;
import common.model.Auth;
import common.model.Reminder;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigInteger;
import java.util.List;
@Transactional
......
package common.repository;
import common.model.Auth;
import common.model.SaleAuth;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
......
package common.repository;
import common.model.Sales;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface SalesRepository extends JpaRepository<Sales, Long> {
@Query(value = "select * from sales where status = 1? order by area_type,id",nativeQuery = true)
List<Sales> findSaleByStatus(Integer status);
@Query(value = "select * from sales where id =1? union all select * from sales where id =2?",nativeQuery = true)
List<Sales> findByTwoId(Long sale, Long sale1);
@Query(value = "select * from sales where status = '0' order by area_type,id",nativeQuery = true)
List<Sales> findAllByStatusOn( );
}
......@@ -3,10 +3,15 @@ package common.repository;
import common.model.TradeType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional
public interface TradeTypeRepsitory extends JpaRepository<TradeType, Long>{
@Query(value = "select * from trade_type where id = 1? union all select * from trade_type where id = 2?",nativeQuery = true)
List<TradeType> findByTwoId(int tradeType, int tradenow);
}
......@@ -25,11 +25,11 @@ public interface ContractService {
Double getRebat(String product, Integer level, Long money);
List<User> getSales();
List<Sales> getSales();
Contract create(User loginUser, Contract resource);
Contract update(User loginUser, Contract resource);
Contract update(User loginUser, Contract resource, String ip);
List<Contract> findAll(User loginAccount,String startDate, String endDate, String platfrom,String contractId);
......@@ -43,7 +43,7 @@ public interface ContractService {
List<ContractChange> findChange(String startDate, String endDate, String code);
Contract updatePay(User loginUser, ContractMoney resource);
Contract updatePay(User loginUser, ContractMoney resource, String ip);
List<ContractMoney> findPayAll(String startDate, String endDate, String platform);
......@@ -57,11 +57,15 @@ public interface ContractService {
// List<Contract> findAllContract(User loginAccount, String startDate, String endDate, String platform, String contractId);
Contract contractStatusUpdate(String platform, String contractId, String status);
Contract contractStatusUpdate(String platform, String contractId, String status, String ip, User loginUser);
Map contractCodeCheck(String platform, String contractCode);
List<FlowChange> findflowChange(String startDate, String endDate, String code);
Object changesDel(String platform, String id, String type);
Object changesDel(String platform, String id, String type, String ip, User loginAccount);
List<ChangeDelInfo> getChangeDelData(String platform, User loginAccount, String contranctCode);
List<ChangeDelDetail> getChangeDelDetailData(String platform, User loginAccount, String pid);
}
\ No newline at end of file
......@@ -50,6 +50,14 @@ public class ContractServiceImpl implements ContractService {
}};
public static final Map<String,String> FUNCTION_TYPE = new HashMap(){{
put("1","流量赠送");
put("2","合同变更记录");
put("3","收款/开票记录");
put("4","合同管理");
}};
@Autowired
ContractRepository contractRepository;
@Autowired
......@@ -99,6 +107,15 @@ public class ContractServiceImpl implements ContractService {
@Autowired
FlowChangeRepository flowChangeRepository;
@Autowired
ChangeDelDetailRepository changeDelDetailRepository;
@Autowired
ChangeDelInfoRepository changeDelInfoRepository;
@Autowired
SalesRepository salesRepository;
@Override
public Map<String, Object> checkAccount(String email, String platfrom) {
......@@ -291,8 +308,8 @@ public class ContractServiceImpl implements ContractService {
}
@Override
public List<User> getSales() {
return userRepository.findSales();
public List<Sales> getSales() {
return salesRepository.findAllByStatusOn();
}
@Override
......@@ -569,13 +586,9 @@ public class ContractServiceImpl implements ContractService {
}
@Override
public Contract update(User loginUser, Contract resource) {
public Contract update(User loginUser, Contract resource, String ip) {
Contract contract = contractRepository.findOne(resource.getId());
if(!contract.getContractCode().equals(resource.getContractCode())){
Contract contractExist = contractRepository.findByCode(resource.getContractCode());
if (contractExist != null) {
......@@ -591,6 +604,22 @@ public class ContractServiceImpl implements ContractService {
this.saveContractRelations(resource,contract.getId());
ChangeDelInfo delInfo = new ChangeDelInfo();
delInfo.setModifyId(loginUser.getId());
delInfo.setModifyAccount(loginUser.getName());
delInfo.setEmail(contract.getEmail());
delInfo.setDs(new DateTime().toString("yyyy-MM-dd"));
delInfo.setModifyType(2);
delInfo.setContractCode(contract.getContractCode());
delInfo.setCreatTime(new Date());
delInfo.setFunction(4);
delInfo.setDetail("修改详情");
delInfo.setIp(ip);
changeDelInfoRepository.save(delInfo);
this.changeDelInfoForContract(contract,resource,delInfo.getId(),"");
resource.setCreateName(contract.getCreateName());
resource.setCreateAccount(contract.getCreateAccount());
resource.setCreateTime(contract.getCreateTime());
......@@ -608,6 +637,95 @@ public class ContractServiceImpl implements ContractService {
}
private void changeDelInfoForContract(Contract byfind,Contract resource,Long pid,String ip){
List<ChangeDelDetail> delDetailsList = new ArrayList<>();
this.dealChangeInfoDetail(byfind.getCustomerBody(),resource.getCustomerBody(),
"客户签约主体","customerBody",pid,delDetailsList);
this.dealChangeInfoDetail(byfind.getCustomerShort(),resource.getCustomerShort(),
"客户简称","customerShort",pid,delDetailsList);
this.dealChangeInfoDetail(byfind.getCustomerThird(),resource.getCustomerThird(),
"第三方签约主体","customerThird",pid,delDetailsList);
if (byfind.getTradeType() != resource.getTradeType()) {
List<TradeType> types = tradeTypeRepsitory.findByTwoId(byfind.getTradeType(), resource.getTradeType());
this.dealChangeInfoDetail(types.get(0).getName(), types.get(1).getName(),
"行业分类", "tradeType", pid, delDetailsList);
}
this.dealChangeInfoDetail(byfind.getStartDate(),resource.getStartDate(),
"合同开始日期","startDate",pid,delDetailsList);
this.dealChangeInfoDetail(byfind.getEndDate(),resource.getEndDate(),
"合同结束日期","startDate",pid,delDetailsList);
if (byfind.getSale() != resource.getSale()) {
List<Sales> sales = salesRepository.findByTwoId(byfind.getSale(),resource.getSale());
this.dealChangeInfoDetail(sales.get(0).getName(),sales.get(1).getName(),
"签约销售","sale",pid,delDetailsList);
}
this.dealChangeInfoDetail(byfind.getExtraFlow()==null?"":byfind.getExtraFlow().toString(),
resource.getExtraFlow()==null?"":resource.getExtraFlow().toString(),
"赠送流量","extraFlow",pid,delDetailsList);
this.dealChangeInfoDetail(byfind.getEmail(),resource.getEmail(),
"客户主账号","startDate",pid,delDetailsList);
this.dealChangeInfoDetail(CONTRACT_TYPE.get(byfind.getContractType()),
CONTRACT_TYPE.get(resource.getContractType()),
"签约类型","startDate",pid,delDetailsList);
if(byfind.getPriceLevel()!=null && !byfind.getPriceLevel().equals(resource.getPriceLevel())){
List<PackageType> packageTypes = packageTypeRepository.findByTwoId(byfind.getPriceLevel(),resource.getPriceLevel());
this.dealChangeInfoDetail(packageTypes.get(0).getPackageName(),packageTypes.get(1).getPackageName(),
"套餐","priceLevel",pid,delDetailsList);
}
this.dealChangeInfoDetail(byfind.getMoney()==null?"":byfind.getMoney().toString(),
resource.getMoney()==null?"":resource.getMoney().toString(),
"合同金额","money",pid,delDetailsList);
this.dealChangeInfoDetail(byfind.getPayMoney()==null?"":byfind.getPayMoney().toString(),
resource.getPayMoney()==null?"":resource.getPayMoney().toString(),
"回款金额","payMoney",pid,delDetailsList);
this.dealChangeInfoDetail(byfind.getInvoiceMoney()==null?"":byfind.getInvoiceMoney().toString(),
resource.getInvoiceMoney()==null?"":resource.getInvoiceMoney().toString(),
"发票金额","invoiceMoney",pid,delDetailsList);
this.dealChangeInfoDetail(byfind.getDiscountTimeLong()==null?"":byfind.getDiscountTimeLong().toString(),
resource.getDiscountTimeLong()==null?"":resource.getDiscountTimeLong().toString(),
"赠送时长","discountTimeLong",pid,delDetailsList);
changeDelDetailRepository.save(delDetailsList);
}
private void dealChangeInfoDetail(String before, String now,String delDetailinfo,String fildeName, Long pid,List<ChangeDelDetail> delDetails) {
ChangeDelDetail delDetail = new ChangeDelDetail();
delDetail.setFiledName(fildeName);
delDetail.setDetail(delDetailinfo);
delDetail.setCreatTime(new Date());
delDetail.setItem("合同修改");
delDetail.setParentId(pid);
if (before != null && !before.equals(now)) {
delDetail.setBeforeValue(before);
delDetail.setAfterValue(now == null ? "" : now);
delDetails.add(delDetail);
} else {
if (now != null && !now.equals(before)) {
delDetail.setBeforeValue(before == null ? "" : before);
delDetail.setAfterValue(now);
delDetails.add(delDetail);
}
}
}
public Contract update_bak(User loginUser, Contract resource) {
// Map<Long, String> packageMap = getPackageMap();
......@@ -855,9 +973,6 @@ public class ContractServiceImpl implements ContractService {
}
/**
*
* @param loginAccount
......@@ -1017,7 +1132,7 @@ public class ContractServiceImpl implements ContractService {
@Override
public Contract contractStatusUpdate(String platform, String contractId, String status) {
public Contract contractStatusUpdate(String platform, String contractId, String status, String ip, User loginUser) {
if (StringUtils.isEmpty(contractId)) {
return null;
......@@ -1025,12 +1140,25 @@ public class ContractServiceImpl implements ContractService {
Contract contract = contractRepository.findOne(Long.parseLong(contractId));
ChangeDelInfo changeDelInfo = new ChangeDelInfo();
changeDelInfo.setContractCode(contract.getContractCode());
changeDelInfo.setEmail(contract.getEmail());
changeDelInfo.setEmail(contract.getEmail());
if (ContractStatusEnum.CANCEL.getKey().equals(status)) {
contract.setStatus(status);
changeDelInfo.setDetail("废弃合同");
this.saveChangeDelInfo(changeDelInfo,4,2,ip,loginUser); // type 2 修改
} else {
contract.setStatus(ContractStatusEnum.DELETE.getKey());
changeDelInfo.setDetail("删除合同");
this.saveChangeDelInfo(changeDelInfo,4,1,ip,loginUser);
}
return contractRepository.save(contract);
}
......@@ -1122,9 +1250,12 @@ public class ContractServiceImpl implements ContractService {
Map<Long, String> packageMap = getPackageMap();
Map<Long, String> saleMap = getSaleMap();
Contract contract = contractRepository.findByCode(resource.getContractCode());
// ChangeDelInfo changeDelInfo = new ChangeDelInfo();
// changeDelInfo.setContractCode(contract.getContractCode());
// changeDelInfo.setEmail(contract.getEmail());
if (resource.getType().equals("price")) {
// resource.setContent("套餐变更 :" + packageMap.get(contract.getPriceLevel()) + "-->" + packageMap.get(resource.getLevel())
// + " 金额变更 :" + contract.getMoney() + "-->" + (resource.getMoney() + contract.getMoney()));
resource.setContent(packageMap.get(contract.getPriceLevel())+"改为"+packageMap.get(resource.getLevel()));
resource.setMarke(contract.getMoney()+"元改为"+resource.getMoney()+"元");
......@@ -1134,17 +1265,7 @@ public class ContractServiceImpl implements ContractService {
// 处理回款状态
this.dealContractStatus(contract,loginUser,"update");
// Double rebat = getRebat(contract.getProduct(), contract.getPriceLevel().intValue(), contract.getMoney());
// BigDecimal bg = new BigDecimal(rebat);
// double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// contract.setRebate(f1);
// //同步修改trackingio的数据
// if (contract.getPlatform().equals("tkio")) {
// accountService.update(contract);
// } else if (contract.getPlatform().equals("io")) {
// accountIOService.update(contract);
// }
}else if("give".equals(resource.getType())){
//变更优惠记录
this.saveFlowChange(contract,loginUser,"save",resource.getDiscountTimeLong(),resource.getExtraFlow());
......@@ -1184,13 +1305,23 @@ public class ContractServiceImpl implements ContractService {
@Override
public Object changesDel(String platform, String id, String type) {
public Object changesDel(String platform, String id, String type, String ip, User loginUser) {
if("give".equals(type)){
// 优惠流量
FlowChange change = flowChangeRepository.findOne(Long.parseLong(id));
change.setDelFlag(1);
flowChangeRepository.save(change);
ChangeDelInfo changeDelInfo = new ChangeDelInfo();
changeDelInfo.setContractCode(change.getContractCode());
changeDelInfo.setEmail(change.getEmail());
changeDelInfo.setDetail("赠送时长:"+change.getDiscountTimeLong()+"天 — 赠送流量"+ change.getDiscountFlow());
this.saveChangeDelInfo(changeDelInfo,1,1,ip,loginUser);
return change;
}else if("change".equals(type)){
//套餐变更
......@@ -1198,26 +1329,72 @@ public class ContractServiceImpl implements ContractService {
contractChange.setDelFlag(1);
contractChangeRepository.save(contractChange);
ChangeDelInfo changeDelInfo = new ChangeDelInfo();
changeDelInfo.setContractCode(contractChange.getContractCode());
changeDelInfo.setDetail("套餐变更");
changeDelInfo.setEmail(contractChange.getEmail());
this.saveChangeDelInfo(changeDelInfo,2,1,ip,loginUser);
return contractChange;
}else{
ContractMoney contractMoney = contractMoneyRepository.findOne(Long.parseLong(id));
contractMoney.setDelFlag(1);
contractMoneyRepository.save(contractMoney);
User user = userRepository.findOne(contractMoney.getModifyAccount());
ChangeDelInfo changeDelInfo = new ChangeDelInfo();
changeDelInfo.setContractCode(contractMoney.getContractCode());
changeDelInfo.setEmail(contractMoney.getEmail());
if("pay".equals(contractMoney.getType())){
// 删除收款记录 修改相应收款金额
Contract contract = contractRepository.findByCode(contractMoney.getContractCode());
contract.setPayMoney(contract.getPayMoney()-contractMoney.getMoney());
contractRepository.save(contract);
changeDelInfo.setDetail("收款记录-金额:"+contractMoney.getMoney());
}else{
changeDelInfo.setDetail("开票记录-金额:"+contractMoney.getMoney());
}
this.saveChangeDelInfo(changeDelInfo,3,1,ip,loginUser);
return contractMoney;
}
}
@Override
public List<ChangeDelInfo> getChangeDelData(String platform, User loginAccount, String contranctCode) {
List<ChangeDelInfo> datas = changeDelInfoRepository.findByContract(contranctCode);
return datas;
}
@Override
public List<ChangeDelDetail> getChangeDelDetailData(String platform, User loginAccount, String pid) {
List<ChangeDelDetail> datas = changeDelDetailRepository.findByPid(pid);
return datas;
}
public void saveChangeDelInfo(ChangeDelInfo changeDelInfo, int function, int type, String ip, User loginUser){
changeDelInfo.setCreatTime(new Date());
changeDelInfo.setFunction(function);// 1 赠送记录
changeDelInfo.setModifyType(type);// 1 删除
changeDelInfo.setIp(ip);
changeDelInfo.setDs(new DateTime().toString("yyyy-MM-dd"));
changeDelInfo.setModifyAccount(loginUser.getName());
changeDelInfo.setModifyId(loginUser.getId());
changeDelInfoRepository.save(changeDelInfo);
}
@Override
public List<ContractMoney> findPay(String startDate, String endDate, String code) {
List<User> sales = userRepository.findAll();
Map<Long, String> saleMap = new HashMap<>();
......@@ -1267,16 +1444,41 @@ public class ContractServiceImpl implements ContractService {
}
@Override
public Contract updatePay(User loginUser, ContractMoney resource) {
public Contract updatePay(User loginUser, ContractMoney resource, String ip) {
ContractMoney contractMoney = contractMoneyRepository.findOne(resource.getId());
Contract contract = contractRepository.findByCode(resource.getContractCode());
ChangeDelInfo changeDelInfo = new ChangeDelInfo();
ChangeDelDetail delDetail = new ChangeDelDetail();
delDetail.setBeforeValue(contractMoney.getMoney().toString());
delDetail.setAfterValue(resource.getMoney().toString());
if (contractMoney.getType().equals("pay")) {
contract.setPayMoney(contract.getPayMoney() + resource.getMoney() - contractMoney.getMoney());
delDetail.setItem("收款");
delDetail.setDetail("收款金额");
} else {
// contract.setInvoice(contract.getInvoice() + resource.getMoney() - contractMoney.getMoney());
contract.setInvoiceMoney(contract.getInvoiceMoney().add(new BigDecimal(resource.getMoney())).subtract(new BigDecimal(contractMoney.getMoney())));
delDetail.setItem("开票");
delDetail.setDetail("开票金额");
}
changeDelInfo.setDetail("修改详情");//
changeDelInfo.setContractCode(contractMoney.getContractCode());
changeDelInfo.setEmail(contractMoney.getEmail());
this.saveChangeDelInfo(changeDelInfo,3,2,ip,loginUser);
delDetail.setCreatTime(new Date());
delDetail.setContractCode(contractMoney.getContractCode());
delDetail.setEmail(contractMoney.getEmail());
delDetail.setParentId(changeDelInfo.getId());
changeDelDetailRepository.save(delDetail);
Contract save = contractRepository.save(contract);
contractMoney.setModifyAccount(loginUser.getId());
......
......@@ -16,6 +16,8 @@ public enum ContractStatusEnum {
CANCEL("cancel", "作废"),
DELETE("del", "已删除");
private String key;
private String value;
......
......@@ -15,4 +15,7 @@ public interface PackageTypeRepository extends JpaRepository<PackageType, Long>
@Query(value = " select * from package_type where is_new is true ", nativeQuery = true)
List<PackageType> findIsNewAll();
@Query(value = "select * from package_type where id =1? union all select * from package_type where id = 2?",nativeQuery = true)
List<PackageType> findByTwoId(Long priceLevel, Long priceLevel1);
}
......@@ -10,52 +10,52 @@
<description>调度配置</description>
<bean id="tkioAccountTask" class="tkio.task.AccountTask"></bean>
<task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="tkioAccountTask" method="task" cron="0 32 0 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--&lt;!&ndash;//定时同步短链数据(每5分钟执行一次)&ndash;&gt;-->
<!--<task:scheduled ref="tkioAccountTask" method="task" cron="0 32 0 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<bean id="tkioNoticeTask" class="tkio.task.NoticeTask"></bean>
<task:scheduled-tasks>
<task:scheduled ref="tkioNoticeTask" method="task" cron="0 33 0 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--<task:scheduled ref="tkioNoticeTask" method="task" cron="0 33 0 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<bean id="emailTask" class="tkio.task.SendEmailTask"></bean>
<task:scheduled-tasks>
<task:scheduled ref="emailTask" method="task" cron="0 20 0 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--<task:scheduled ref="emailTask" method="task" cron="0 20 0 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<bean id="contractTask" class="common.task.ContractTask"></bean>
<task:scheduled-tasks>
<task:scheduled ref="contractTask" method="task" cron="0 28 0 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--<task:scheduled ref="contractTask" method="task" cron="0 28 0 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<bean id="trackAccountTask" class="track.task.AccountTask"></bean>
<task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="trackAccountTask" method="task" cron="0 32 0 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--&lt;!&ndash;//定时同步短链数据(每5分钟执行一次)&ndash;&gt;-->
<!--<task:scheduled ref="trackAccountTask" method="task" cron="0 32 0 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<bean id="SyncAppDataTask" class="common.task.SyncAppDataTask"></bean>
<task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="SyncAppDataTask" method="syncAppInfo" cron="0 31 0 * * ?"/>
<task:scheduled ref="SyncAppDataTask" method="syncAppDeviceNum" cron="0 11 0 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--&lt;!&ndash;//定时同步短链数据(每5分钟执行一次)&ndash;&gt;-->
<!--<task:scheduled ref="SyncAppDataTask" method="syncAppInfo" cron="0 31 0 * * ?"/>-->
<!--<task:scheduled ref="SyncAppDataTask" method="syncAppDeviceNum" cron="0 11 0 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<bean id="ioAccountTask" class="userio.task.IOAccountTask"></bean>
<task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="ioAccountTask" method="task" cron="0 32 9 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--&lt;!&ndash;//定时同步短链数据(每5分钟执行一次)&ndash;&gt;-->
<!--<task:scheduled ref="ioAccountTask" method="task" cron="0 32 9 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<bean id="ioAccountTaskCheck" class="userio.task.IOAccountCheck"></bean>
<task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="ioAccountTaskCheck" method="task" cron="0 10 8 * * ?"/>
</task:scheduled-tasks>
<!--<task:scheduled-tasks>-->
<!--&lt;!&ndash;//定时同步短链数据(每5分钟执行一次)&ndash;&gt;-->
<!--<task:scheduled ref="ioAccountTaskCheck" method="task" cron="0 10 8 * * ?"/>-->
<!--</task:scheduled-tasks>-->
<!--<bean id="accountTaskCheck" class="tkio.task.AccountCheck"></bean>-->
<!--<task:scheduled-tasks>-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment