| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140 |
- package com.goafanti.order.service.impl;
- import java.lang.reflect.InvocationTargetException;
- import java.math.BigDecimal;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.annotation.Resource;
- import org.apache.commons.beanutils.BeanUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.goafanti.common.bo.Error;
- import com.goafanti.common.bo.Result;
- import com.goafanti.common.constant.AFTConstants;
- import com.goafanti.common.constant.ErrorConstants;
- import com.goafanti.common.dao.AdminMapper;
- import com.goafanti.common.dao.BusinessProjectMapper;
- import com.goafanti.common.dao.ContractMapper;
- import com.goafanti.common.dao.ContractTaskLogMapper;
- import com.goafanti.common.dao.ContractTaskMapper;
- import com.goafanti.common.dao.NoticeMapper;
- import com.goafanti.common.dao.OrganizationManagementMapper;
- import com.goafanti.common.dao.TOrderBillMapper;
- import com.goafanti.common.dao.TOrderChangeMapper;
- import com.goafanti.common.dao.TOrderDetailMapper;
- import com.goafanti.common.dao.TOrderMapper;
- import com.goafanti.common.dao.TmpTableMapper;
- import com.goafanti.common.dao.UserBusinessMapper;
- import com.goafanti.common.dao.UserFollowBusinessMapper;
- import com.goafanti.common.dao.UserFollowMapper;
- import com.goafanti.common.dao.UserLockReleaseMapper;
- import com.goafanti.common.dao.UserMapper;
- import com.goafanti.common.dao.UserRoleMapper;
- import com.goafanti.common.enums.DeleteStatus;
- import com.goafanti.common.enums.NoticeReadStatus;
- import com.goafanti.common.enums.NoticeStatus;
- import com.goafanti.common.enums.OrderFlowState;
- import com.goafanti.common.enums.UserLockReleaseStatus;
- import com.goafanti.common.error.BusinessException;
- import com.goafanti.common.model.Admin;
- import com.goafanti.common.model.Contract;
- import com.goafanti.common.model.ContractTask;
- import com.goafanti.common.model.ContractTaskLog;
- import com.goafanti.common.model.Notice;
- import com.goafanti.common.model.OrganizationManagement;
- import com.goafanti.common.model.TOrder;
- import com.goafanti.common.model.TOrderBill;
- import com.goafanti.common.model.TOrderChange;
- import com.goafanti.common.model.TOrderDetail;
- import com.goafanti.common.model.TmpTable;
- import com.goafanti.common.model.User;
- import com.goafanti.common.model.UserBusiness;
- import com.goafanti.common.model.UserFollow;
- import com.goafanti.common.model.UserFollowBusiness;
- import com.goafanti.common.model.UserLockRelease;
- import com.goafanti.common.model.UserRole;
- import com.goafanti.common.utils.BeanUtilsExt;
- import com.goafanti.common.utils.DateUtils;
- import com.goafanti.common.utils.MobileMessageUtils;
- import com.goafanti.common.utils.VerifyCodeUtils;
- import com.goafanti.core.mybatis.BaseMybatisDao;
- import com.goafanti.core.mybatis.JDBCIdGenerator;
- import com.goafanti.core.mybatis.page.Pagination;
- import com.goafanti.core.shiro.token.TokenManager;
- import com.goafanti.customer.bo.BusinessListBo;
- import com.goafanti.customer.bo.FollowBusinessBo;
- import com.goafanti.customer.bo.LockingReleaseBo;
- import com.goafanti.customer.service.CustomerService;
- import com.goafanti.order.bo.BillDetailBo;
- import com.goafanti.order.bo.BillListBo;
- import com.goafanti.order.bo.CommodityDetailBo;
- import com.goafanti.order.bo.OperatorActive;
- import com.goafanti.order.bo.OrderChangeBo;
- import com.goafanti.order.bo.OrderListBo;
- import com.goafanti.order.bo.ServiceOrderDetailBo;
- import com.goafanti.order.bo.C2BOrderDetailBo;
- import com.goafanti.order.bo.C2COrderDetailBo;
- import com.goafanti.order.enums.ActiveState;
- import com.goafanti.order.enums.ApprovalState;
- import com.goafanti.order.enums.AuditState;
- import com.goafanti.order.enums.ChangeState;
- import com.goafanti.order.enums.CommodityType;
- import com.goafanti.order.enums.LiquidationState;
- import com.goafanti.order.enums.OrderAction;
- import com.goafanti.order.enums.OrderChannel;
- import com.goafanti.order.enums.OrderStage;
- import com.goafanti.order.enums.OrderState;
- import com.goafanti.order.enums.PayChannel;
- import com.goafanti.order.enums.ProjectStage;
- import com.goafanti.order.enums.PublicStatus;
- import com.goafanti.order.enums.TaskDistributionState;
- import com.goafanti.order.enums.TransactionMode;
- import com.goafanti.order.enums.TransactionSubject;
- import com.goafanti.order.service.OrderService;
- import com.goafanti.techproject.enums.TaskState;
- @Service
- public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements OrderService {
- @Autowired
- private UserMapper userMapper;
- @Autowired
- private TOrderMapper tOrderMapper;
- @Autowired
- private TOrderDetailMapper tOrderDetailMapper;
- @Autowired
- private JDBCIdGenerator idGenerator;
- @Autowired
- private TOrderBillMapper tOrderBillMapper;
- @Autowired
- private OrganizationManagementMapper organizationManagementMapper;
- @Autowired
- private ContractMapper contractMapper;
- @Autowired
- private ContractTaskMapper contractTaskMapper;
- @Autowired
- private TOrderChangeMapper tOrderChangeMapper;
- @Autowired
- private TmpTableMapper tmpTableMapper;
- @Autowired
- private AdminMapper adminMapper;
- @Autowired
- private NoticeMapper noticeMapper;
- @Autowired
- private ContractTaskLogMapper contractTaskLogMapper;
- @Autowired
- private BusinessProjectMapper businessProjectMapper;
- @Autowired
- private UserLockReleaseMapper userLockReleaseMapper;
- @Autowired
- UserRoleMapper userRoleMapper;
- @Autowired
- private UserBusinessMapper userBusinessMapper;
- @Autowired
- private UserFollowMapper userFollowMapper;
- @Autowired
- private UserFollowBusinessMapper userFollowBusinessMapper;
-
- @Value(value = "${mobileRemindCodeTemplate}")
- private String mobileRemindCodeTemplate = null;
-
- @Value(value = "${accessKey}")
- private String accessKey = null;
- @Value(value = "${accessSecret}")
- private String accessSecret = null;
-
- private final BigDecimal DEFAULT_FIRST_PAYMENT = new BigDecimal(0);//默认首付价格
- private final BigDecimal DEFAULT_COMMODITY_PRICE = new BigDecimal(0);//默认单价
- private final String DEFAULT_PLATFORM_ID = "0"; //平台默认id
- private final String DEFAULT_ADMIN_ID = "1"; //默认管理员
- private final double DEFAULT_BROKERAGE_PROPORTION = 0; //佣金比例
- private final double DEFAULT_COMMODITY_DISCOUNT = 1; //折扣比例
- private final String DEFAULT_COMMODITY_MODE = "NO_MODE"; //暂无规格
- private final String DEFUALT_SET_UP_COMMENT = "系统自动生产立项信息,请自行修改或补充";
-
- /*
- * -------------------------------------------------- APP管理端 --------------------------------------------------------
- */
- @Override
- public C2COrderDetailBo selectCommodityDetail(String commodityId, Integer commodityType) {
- C2COrderDetailBo bo = new C2COrderDetailBo();
- CommodityDetailBo cdb = tOrderMapper.selectCommodityDetail(commodityId,commodityType);
- try {
- BeanUtils.copyProperties(bo, cdb);
- bo.setOrderNo(String.valueOf(idGenerator.generateId()));
- bo.setCreateTime(DateUtils.formatDate(new Date(),AFTConstants.YYYYMMDDHHMMSS));
- bo.setCommodityType(commodityType);
- if(bo.getCommodityPrice().equals("0"))
- bo.setCommodityPrice("面议");
- else
- bo.setCommodityPrice(bo.getCommodityPrice()+" 万");
- if(StringUtils.isBlank(bo.getFirstPayment()))
- bo.setFirstPayment("面议");
- else
- bo.setFirstPayment(bo.getFirstPayment()+" 万");
- } catch (IllegalAccessException | InvocationTargetException e) {
- e.printStackTrace();
- }
- return bo;
- }
- /**
- * 只能购买一份
- * 后期规则:自营服务订单 、需求订单、其他订单不能同时加入购物车
- */
- @Override
- public int addIntention(String orderNo, String commodityId, String commodityMode, Integer commodityQuantity,Integer commodityType,
- String createTime,String remarks) throws ParseException {
- CommodityDetailBo bo = tOrderMapper.selectCommodityDetail(commodityId,commodityType);
- BigDecimal commodityPrice = StringUtils.isBlank(bo.getCommodityPrice()) ? DEFAULT_COMMODITY_PRICE
- : new BigDecimal(Double.valueOf(bo.getCommodityPrice()));
- BigDecimal commodityFirstPayment = StringUtils.isBlank(bo.getCommodityFirstPayment()) ? DEFAULT_FIRST_PAYMENT
- : new BigDecimal(Double.valueOf(bo.getCommodityFirstPayment()));
- BigDecimal discountPrice = commodityPrice.multiply(new BigDecimal(DEFAULT_COMMODITY_DISCOUNT));
- BigDecimal discountFirstPayment = commodityFirstPayment.multiply(new BigDecimal(DEFAULT_COMMODITY_DISCOUNT));
- TOrder tOrder = new TOrder();
- tOrder.setOrderNo(orderNo);
- tOrder.setCreater(DEFAULT_ADMIN_ID);
- tOrder.setCreateTime(DateUtils.parseDate(createTime, AFTConstants.YYYYMMDDHHMMSS));
- if(commodityType == CommodityType.DEMAND.getTypeCode()){
- tOrder.setBuyerId(StringUtils.isBlank(bo.getSellerId()) ? DEFAULT_PLATFORM_ID : bo.getSellerId());
- tOrder.setSellerId(TokenManager.getUserId());
- }else{
- tOrder.setBuyerId(TokenManager.getUserId());
- tOrder.setSellerId(StringUtils.isBlank(bo.getSellerId()) ? DEFAULT_PLATFORM_ID : bo.getSellerId());
- }
- tOrder.setOrderType(commodityType);
- tOrder.setBrokerageAmount(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION)));
- tOrder.setOrderAmount(commodityPrice);
- tOrder.setFirstPayment(commodityFirstPayment);
- tOrder.setSignTotalAmount(discountPrice);
- tOrder.setSignFirstPayment(discountFirstPayment);
- tOrder.setSignBrokerageAmount(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION)));
- tOrder.setSignWithdrawAmount(discountPrice.subtract(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION))));
- tOrder.setDeleteSign(DeleteStatus.UNDELETE.getCode());
- tOrder.setOrderChannel(OrderChannel.APP.getCode());
- tOrder.setApproval(ApprovalState.NORMAL.getCode());
- tOrder.setChangeStatus(ChangeState.UNCHANGE.getCode());
- tOrder.setSalesmanId(getSalesmanIdByUid(TokenManager.getAdminId()));
- tOrder.setOrderRemarks(remarks);
- tOrder.setContractType(bo.getCommodityClassify());
- setOrderState(OrderAction.ADD_INTENTION, new BigDecimal(0), tOrder, false);
-
- TOrderDetail tOrderDetail = new TOrderDetail();
- tOrderDetail.setId(UUID.randomUUID().toString());
- tOrderDetail.setOrderNo(orderNo);
- tOrderDetail.setCommodityId(commodityId);
- tOrderDetail.setCommodityName(bo.getCommodityName());
- tOrderDetail.setCommodityMode(StringUtils.isBlank(commodityMode)?DEFAULT_COMMODITY_MODE: commodityMode);
- tOrderDetail.setCommodityType(commodityType);
- tOrderDetail.setCommodityQuantity(commodityQuantity);
- tOrderDetail.setCommodityPrice(commodityPrice);
- tOrderDetail.setCommodityFirstPayment(commodityFirstPayment);
- tOrderDetail.setDiscountPrice(discountPrice);
- tOrderDetail.setDiscountFirstPayment(discountFirstPayment);
- tOrderDetail.setCreateTime(DateUtils.parseDate(createTime, AFTConstants.YYYYMMDDHHMMSS));
- tOrderDetailMapper.insert(tOrderDetail);
- tOrderMapper.insert(tOrder);
- return 1;
- }
-
- /**
- * 订单状态流转
- * @param orderAction
- * @param changeAmount
- * @param tOrder
- * @param confrim
- */
- public void setOrderState(OrderAction orderAction,BigDecimal changeAmount,TOrder tOrder,boolean confrim){
- BigDecimal initial = new BigDecimal(0);
- checkOrder(tOrder);
- if(orderAction == OrderAction.ADD_INTENTION){ //添加意向订单
- tOrder.setOrderStatus(OrderState.WAIT_FOR_CONFIRM.getCode());
- tOrder.setLiquidationStatus(LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode());
- tOrder.setOrderStage(OrderStage.INTENTION.getCode());
- tOrder.setProjectStage(ProjectStage.NOT_SATISFY_CONDITION.getCode());
- tOrder.setLiquidationStatus(LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode());
- tOrder.setActuallyFirstPayment(initial);
- tOrder.setActuallyBrokerageAmount(initial);
- tOrder.setActuallyTotalAmount(initial);
- tOrder.setActuallyWithdrawAmount(initial);
- }else if(orderAction == OrderAction.CONFIRM_INTENTION){ //确认意向订单 (用户确认)
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_CONFIRM.getCode()){
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"确认意向订单"));
- }
- if (confrim) {
- tOrder.setOrderStatus(OrderState.WAIT_FOR_SIGN.getCode()); // 卖家同意
- tOrder.setOrderStage(OrderStage.FOLLOWING.getCode());
- } else {
- tOrder.setOrderStatus(OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()); // 买家拒绝
- }
- }else if(orderAction == OrderAction.CONFIRM_PAY_FOR_FIRST){ // 支付首付(审核流水)
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()){
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,""));
- }
- int boundary = tOrder.getActuallyFirstPayment().add(changeAmount).compareTo(tOrder.getSignFirstPayment());
- int boundary2 = tOrder.getActuallyTotalAmount().add(changeAmount).compareTo(tOrder.getSignTotalAmount());
- if(boundary2 == 1){
- throw new BusinessException(new Error(ErrorConstants.PAY_BEYOND_SIGN,"支付首付款"));
- }else if(boundary2 == 0){ //全付清
- tOrder.setActuallyTotalAmount(tOrder.getSignTotalAmount());
- tOrder.setActuallyFirstPayment(tOrder.getSignFirstPayment());
- tOrder.setLiquidationStatus(LiquidationState.ALREADY_PAY.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }else if(boundary == 1){ //超过首付未达尾款
- tOrder.setActuallyTotalAmount(tOrder.getActuallyTotalAmount().add(changeAmount));
- tOrder.setActuallyFirstPayment(tOrder.getSignFirstPayment());
- tOrder.setLiquidationStatus(LiquidationState.WAIT_PAY_LAST_BALANCE.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }else if(boundary == -1){ //首付待付清
- tOrder.setActuallyTotalAmount(tOrder.getActuallyTotalAmount().add(changeAmount));
- tOrder.setActuallyFirstPayment(tOrder.getActuallyFirstPayment().add(changeAmount));
- }else if(boundary == 0){ //首付已结清
- tOrder.setActuallyTotalAmount(tOrder.getActuallyTotalAmount().add(changeAmount));
- tOrder.setActuallyFirstPayment(tOrder.getSignFirstPayment());
- tOrder.setLiquidationStatus(LiquidationState.WAIT_PAY_LAST_BALANCE.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }
- }else if(orderAction == OrderAction.CONFIRM_PAY_FOR_LAST){ //支付尾款 (审核流水)
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()){
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"支付尾款"));
- }
- int boundary = tOrder.getActuallyTotalAmount().add(changeAmount).compareTo(tOrder.getSignTotalAmount());
- if(boundary == 1){
- throw new BusinessException(new Error(ErrorConstants.PAY_BEYOND_SIGN,"支付尾款"));
- }else if(boundary == -1){
- tOrder.setActuallyTotalAmount(tOrder.getActuallyTotalAmount().add(changeAmount));
- }else if(boundary == 0){
- tOrder.setActuallyTotalAmount(tOrder.getSignTotalAmount());
- tOrder.setLiquidationStatus(LiquidationState.ALREADY_PAY.getCode());
- }
- }else if(orderAction == OrderAction.APPLY_FOR_WITHDRAW){ //提现申请
- if(tOrder.getOrderStatus() != OrderState.ALREADY_SIGN.getCode()
- || tOrder.getLiquidationStatus() != LiquidationState.ALREADY_PAY.getCode()
- || tOrder.getActuallyTotalAmount().doubleValue() <= 0){
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"等待提现"));
- }
- tOrder.setLiquidationStatus(LiquidationState.WAIT_FOR_WITHDRAW.getCode());
- }else if(orderAction == OrderAction.CONFIRM_WITHDRAW){ //提现确认 (审核员先审核流水)
- if(tOrder.getOrderStatus() != OrderState.ALREADY_SIGN.getCode()
- || tOrder.getLiquidationStatus() != LiquidationState.WAIT_FOR_WITHDRAW.getCode()
- || tOrder.getActuallyTotalAmount().doubleValue() <= 0){
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"确认提现"));
- }
- tOrder.setLiquidationStatus(LiquidationState.ALREADY_WITHDRAW.getCode());
- tOrder.setActuallyWithdrawAmount(tOrder.getActuallyWithdrawAmount().add(changeAmount));
- }else if(orderAction == OrderAction.APPLY_FOR_CANCEL){ //取消订单
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_CONFIRM.getCode()
- && tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.ALREADY_PAY.getCode()){
- flag = false;
- }
- if(!flag) throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"取消订单"));
- if(TokenManager.getToken() instanceof Admin){
- if(!tOrder.getSellerId().equals(DEFAULT_PLATFORM_ID))
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"取消订单"));
- if(tOrder.getOrderStatus() == OrderState.WAIT_FOR_CONFIRM.getCode())
- tOrder.setOrderStatus(OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode());
- if( tOrder.getOrderStatus() == OrderState.WAIT_FOR_SIGN.getCode())
- tOrder.setOrderStatus(OrderState.SELLER_CANCEL_AFTER_SIGN.getCode());
- }else if(TokenManager.getToken() instanceof User){
- if(TokenManager.getUserId().equals(tOrder.getSellerId())){
- if(tOrder.getOrderStatus() == OrderState.WAIT_FOR_CONFIRM.getCode())
- tOrder.setOrderStatus(OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode());
- if( tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode())
- tOrder.setOrderStatus(OrderState.SELLER_CANCEL_AFTER_SIGN.getCode());
- }else if(TokenManager.getUserId().equals(tOrder.getBuyerId())){
- if(tOrder.getOrderStatus() == OrderState.WAIT_FOR_CONFIRM.getCode())
- tOrder.setOrderStatus(OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode());
- if( tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode())
- tOrder.setOrderStatus(OrderState.BUYER_CANCEL_AFTER_SIGN.getCode());
- }
- }
- }else if(orderAction == OrderAction.APPLY_FOR_REFUND){ //退款申请
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getChangeStatus() == ChangeState.CHANGING.getCode()) flag = true; // Add 2018/4/9 if normal order in changing can refund
- if(tOrder.getLiquidationStatus() == LiquidationState.WAIT_FOR_REFUND_CONFIRM.getCode()
- || tOrder.getLiquidationStatus() == LiquidationState.REFUSE_REFUND.getCode()
- || tOrder.getLiquidationStatus() == LiquidationState.AGREE_REFUND.getCode()
- || tOrder.getLiquidationStatus() == LiquidationState.COMPLETE_REFUND.getCode()){
- flag = false;
- }
- if(tOrder.getActuallyTotalAmount().doubleValue() <= 0)
- flag = false;
- if(!flag) throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"申请退款"));
- tOrder.setLiquidationStatus(LiquidationState.WAIT_FOR_REFUND_CONFIRM.getCode());
- }else if(orderAction == OrderAction.CONFIRM_REFUND){ //退款确认
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getChangeStatus() == ChangeState.CHANGING.getCode()) flag = true; // Add 2018/4/9 if normal order in changing can refund
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_FOR_REFUND_CONFIRM.getCode())
- flag = false;
- if(tOrder.getActuallyTotalAmount().doubleValue() <= 0)
- flag = false;
- if(confrim) {
- if(!flag) throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"同意退款"));
- tOrder.setLiquidationStatus(LiquidationState.AGREE_REFUND.getCode());
- }else{
- if(!flag) throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"拒绝退款"));
- tOrder.setLiquidationStatus(LiquidationState.REFUSE_REFUND.getCode());
- }
- }else if(orderAction == OrderAction.COMPLETE_REFUND){ //完成退款
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getChangeStatus() == ChangeState.CHANGING.getCode()) flag = true; // Add 2018/4/9 if normal order in changing can refund
- if(tOrder.getLiquidationStatus() != LiquidationState.AGREE_REFUND.getCode())
- flag = false;
- if(tOrder.getActuallyTotalAmount().doubleValue() <= 0)
- flag = false;
- if(!flag) throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"申请退款"));
- tOrder.setActuallyTotalAmount(tOrder.getActuallyTotalAmount().add(changeAmount));
- int boundary = tOrder.getActuallyTotalAmount().compareTo(tOrder.getSignTotalAmount());
- if(boundary == 0) {
- tOrder.setLiquidationStatus(LiquidationState.COMPLETE_REFUND.getCode()); //完成退款
- }else if(boundary == 1){
- tOrder.setLiquidationStatus(LiquidationState.AGREE_REFUND.getCode()); //需要再退款
- }else if(boundary == -1){
- throw new BusinessException(new Error(ErrorConstants.REFUND_BEYOND_SIGN,"退款")); //超过退款金额
- }
- }
- }
-
-
- /**
- * 设置按钮状态
- * @param tOrder
- * @return
- */
- private OperatorActive setOperatorActive(TOrder tOrder){
- OperatorActive active = new OperatorActive();
- if(tOrder.getDeleteSign() == ActiveState.ABOLISH.getCode())
- return active;
- if(tOrder.getDeleteSign() == ActiveState.LOCKING.getCode()) {
- active.setApplyUnLock(true);
- return active;
- }
- if (TokenManager.getToken() instanceof User) {
- active.setConfirmPayForFirst(false);
- active.setConfirmPayForLast(false);
- active.setConfirmWithdraw(false);
- active.setCompleteRefund(false);
- active.setApplyLock(false);
- active.setApplyUnLock(false);
- active.setApplyRevoke(false);
- active.setApplySign(false);
- if (TokenManager.getUserId().equals(tOrder.getBuyerId())) { // 买方
- active.setApplyForWithdraw(false);
- if (tOrder.getOrderStatus() == OrderState.WAIT_FOR_CONFIRM.getCode()) {
- /** 需求订单 开始 **/
- if (tOrder.getOrderType() == CommodityType.DEMAND.getTypeCode()) {
- active.setConfirmIntention(true);
- active.setRefuseIntention(true);
- } else {
- active.setConfirmIntention(false);
- active.setRefuseIntention(false);
- }
- /** 需求订单 结束 **/
- } else {
- active.setConfirmIntention(false);
- active.setRefuseIntention(false);
- }
- if ((tOrder.getOrderStatus() == OrderState.WAIT_FOR_SIGN.getCode() || tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode())
- && tOrder.getLiquidationStatus() == LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()) {
- active.setPayForFirst(true); //支付首付
- } else {
- active.setPayForFirst(false); //支付首付
- }
- if ((tOrder.getOrderStatus() == OrderState.WAIT_FOR_SIGN.getCode() || tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode())
- && tOrder.getLiquidationStatus() == LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()) {
- active.setPayForLast(true); //支付尾款
- } else {
- active.setPayForLast(false); //支付尾款
- }
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_CONFIRM.getCode()
- && tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.ALREADY_PAY.getCode()){
- flag = false;
- }
- active.setApplyForCancel(flag); //申请取消
- flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() == LiquidationState.WAIT_FOR_REFUND_CONFIRM.getCode()
- || tOrder.getLiquidationStatus() == LiquidationState.REFUSE_REFUND.getCode()
- || tOrder.getLiquidationStatus() == LiquidationState.AGREE_REFUND.getCode()
- || tOrder.getLiquidationStatus() == LiquidationState.COMPLETE_REFUND.getCode()){
- flag = false;
- }
- if(tOrder.getActuallyTotalAmount().doubleValue() <= 0)
- flag = false;
- active.setApplyForRefund(flag); //申请退款
- }else if(TokenManager.getUserId().equals(tOrder.getSellerId())){ //卖方
- active.setPayForFirst(false);
- active.setPayForLast(false);
- active.setApplyForRefund(false);
- if (tOrder.getOrderStatus() == OrderState.WAIT_FOR_CONFIRM.getCode()) {
- /** 需求订单 开始 **/
- if (tOrder.getOrderType() == CommodityType.DEMAND.getTypeCode()) {
- active.setConfirmIntention(false);
- active.setRefuseIntention(false);
- } else {
- active.setConfirmIntention(true);
- active.setRefuseIntention(true);
- }
- /** 需求订单 结束 **/
- } else {
- active.setConfirmIntention(false);
- active.setRefuseIntention(false);
- }
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.ALREADY_PAY.getCode()){
- flag = false;
- }
- active.setApplyForCancel(flag); //申请取消
- flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_FOR_REFUND_CONFIRM.getCode())
- flag = false;
- if(tOrder.getActuallyTotalAmount().doubleValue() <= 0)
- flag = false;
- active.setAgreeRefund(flag); //同意退款
- active.setRefuseRefund(flag); //拒绝退款
- if (tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode()
- && tOrder.getLiquidationStatus() == LiquidationState.ALREADY_PAY.getCode()
- && tOrder.getActuallyTotalAmount().doubleValue() > 0) {
- active.setApplyForWithdraw(true); //申请提现
- } else {
- active.setApplyForWithdraw(false); //申请提现
- }
- }else{
- active.setPayForFirst(false);
- active.setPayForLast(false);
- active.setConfirmIntention(false);
- active.setRefuseIntention(false);
- active.setApplyForCancel(false);
- active.setApplyForRefund(false);
- active.setAgreeRefund(false);
- active.setRefuseRefund(false);
- active.setApplyForWithdraw(false);
- }
- }
- if (TokenManager.getToken() instanceof Admin) {
- active.setPayForFirst(false);
- active.setPayForLast(false);
- active.setApplyForWithdraw(false);
- active.setApplyForRefund(false);
- if (tOrder.getSellerId().equals(DEFAULT_PLATFORM_ID)) { // 平台作为卖方
- if (tOrder.getOrderStatus() == OrderState.WAIT_FOR_CONFIRM.getCode()) {
- active.setConfirmIntention(true);
- active.setRefuseIntention(true);
- } else {
- active.setConfirmIntention(false);
- active.setRefuseIntention(false);
- }
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.ALREADY_PAY.getCode()){
- flag = false;
- }
- active.setApplyForCancel(flag); //申请取消
- flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_FOR_REFUND_CONFIRM.getCode())
- flag = false;
- if(tOrder.getActuallyTotalAmount().doubleValue() <= 0)
- flag = false;
- active.setAgreeRefund(flag); //同意退款
- active.setRefuseRefund(flag); //拒绝退款
- } else {
- active.setConfirmIntention(false); //确认意向
- active.setRefuseIntention(false); //拒绝意向
- active.setApplyForCancel(false); //申请取消
- active.setAgreeRefund(false); //同意退款
- active.setRefuseRefund(false); //拒绝退款
- }
- }
- //平台方作为中间方 确认首付 - 尾款 - 提现 - 退款
- if(tOrder.getOrderStatus() == OrderState.WAIT_FOR_SIGN.getCode()
- && tOrder.getLiquidationStatus() == LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()){
- active.setConfirmPayForFirst(true);
- }else{
- active.setConfirmPayForFirst(false);
- }
- if(tOrder.getOrderStatus() == OrderState.WAIT_FOR_SIGN.getCode()
- && tOrder.getLiquidationStatus() == LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()){
- active.setConfirmPayForLast(true);
- }else{
- active.setConfirmPayForLast(false);
- }
- if(tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode()
- && tOrder.getLiquidationStatus() == LiquidationState.WAIT_FOR_WITHDRAW.getCode()){
- active.setConfirmWithdraw(true);
- }else{
- active.setConfirmWithdraw(false);
- }
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(flag && tOrder.getActuallyTotalAmount().doubleValue() == 0
- && tOrder.getDeleteSign() == DeleteStatus.UNDELETE.getCode()){
- active.setApplyRevoke(true); //作废
- }else{
- active.setApplyRevoke(false); //作废
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.AGREE_REFUND.getCode())
- flag = false;
- if(tOrder.getActuallyTotalAmount().doubleValue() <= 0)
- flag = false;
- active.setCompleteRefund(flag); //完成退款
- flag = true;
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode())
- flag = false;
- active.setApplySign(flag); //签单
- if(tOrder.getDeleteSign() == DeleteStatus.UNDELETE.getCode()){
- active.setApplyLock(true);
- }else{
- active.setApplyLock(false);
- }
- if(tOrder.getDeleteSign() == DeleteStatus.LOCKING.getCode()){
- active.setApplyUnLock(true);
- }else{
- active.setApplyUnLock(false);
- }
- return active;
- }
- /**
- * 添加流水记录
- * @param orderNo 订单编号
- * @param creater 创建人
- * @param payeeId 收款人
- * @param payerId 付款人
- * @param remarks 附言
- * @param transactionSubject 交易科目
- * @param payChannel 支付渠道
- * @param transactionMode 支付方式
- * @param FundAudit 流水审核
- * @return
- */
- public int addFundRecord(String orderNo,String creater,String payeeId,String payerId,String remarks,TransactionSubject transactionSubject,PayChannel payChannel,
- BigDecimal transactionAmount,TransactionMode transactionMode,AuditState auditState){
- TOrderBill bill = new TOrderBill();
- bill.setBillNo(UUID.randomUUID().toString().replace("-", ""));
- bill.setConfirmSign(auditState.getCode());
- bill.setCreater(creater);
- bill.setDeleteSign(Boolean.FALSE);
- bill.setOrderNo(orderNo);
- bill.setTransactionAmount(transactionAmount);
- bill.setPayeeId(payeeId);
- bill.setPayerId(payerId);
- bill.setRemarks(remarks);
- bill.setTransactionAmount(transactionAmount);
- bill.setTransactionMode(transactionMode.getCode());
- bill.setTransactionSubject(transactionSubject.getCode());
- bill.setTransactionChannel(payChannel.getCode());
- bill.setCreateTime(new Date());
- return tOrderBillMapper.insert(bill);
- }
-
- @Override
- public int updatePayForFirst(String orderNo, BigDecimal fundAmount,String remarks) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- addFundRecord(orderNo, TokenManager.getUserToken().getNickname(), DEFAULT_PLATFORM_ID, TokenManager.getUserId(), remarks,
- TransactionSubject.SUPPLY_PAY,PayChannel.UNIONPAY, fundAmount, TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
- tOrder.setUpdateTime(new Date());
- return tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
- @Override
- public int updatePayForLast(String orderNo, BigDecimal fundAmount, String remarks) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- addFundRecord(orderNo, TokenManager.getUserToken().getNickname(), DEFAULT_PLATFORM_ID, TokenManager.getUserId(), remarks,
- TransactionSubject.SUPPLY_PAY,PayChannel.UNIONPAY, fundAmount, TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
- tOrder.setUpdateTime(new Date());
- return tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<C2BOrderDetailBo> selectOrderList(boolean confirm,Integer pageNo,Integer pageSize) {
- Map<String, Object> params = new HashMap<String, Object>();
- Pagination<C2BOrderDetailBo> result = new Pagination<C2BOrderDetailBo>();
- if(!confirm) params.put("orderStatus", OrderState.WAIT_FOR_CONFIRM.getCode()); //购买意向
- params.put("uid", TokenManager.getUserId());
- Pagination<TOrder> data = (Pagination<TOrder>)findPage("selectOrderListByPage", "selectOrderListCount", params, pageNo, pageSize);
- List<TOrder> list = (List<TOrder>)data.getList();
- C2BOrderDetailBo bo = null;
- List<C2BOrderDetailBo> boList = new ArrayList<C2BOrderDetailBo>();
- List<CommodityDetailBo> commoditys = null;
- CommodityDetailBo cdb = null;
- if(list.size()>0){
- for(TOrder t:list){
- bo = new C2BOrderDetailBo();
- commoditys = new ArrayList<CommodityDetailBo>();
- bo.setOrderNo(String.valueOf(t.getOrderNo()));
- bo.setOrderRemarks(t.getOrderRemarks());
- bo.setOrderStatus(OrderState.getStatus(t.getOrderStatus()).getDesc());
- bo.setCreateTime(DateUtils.formatDate(t.getCreateTime(),AFTConstants.YYYYMMDDHHMMSS));
- bo.setOrderAmount(String.valueOf(t.getOrderAmount()).equals("0")?"面议":String.valueOf(t.getOrderAmount())+" 万");
- bo.setFirstPayment(String.valueOf(t.getFirstPayment()).equals("0")?"面议":String.valueOf(t.getFirstPayment())+" 万");
- bo.setOperatorActive(setOperatorActive(t));
- List<TOrderDetail> tdList = tOrderMapper.selectOrderCommodity(String.valueOf(t.getOrderNo()));
- for(TOrderDetail tod : tdList ){
- cdb = new CommodityDetailBo();
- cdb.setCommodityPrice(String.valueOf(tod.getCommodityPrice()).equals("0")?"面议":String.valueOf(tod.getCommodityPrice())+" 万");
- cdb.setDiscountPrice(String.valueOf(tod.getDiscountPrice()).equals("0")?"面议":String.valueOf(tod.getDiscountPrice())+" 万");
- cdb.setCommodityId(tod.getCommodityId());
- cdb.setCommodityName(tod.getCommodityName());
- cdb.setCommodityMode(tod.getCommodityMode());
- cdb.setCommodityType(tod.getCommodityType());
- cdb.setCommodityQuantity(tod.getCommodityQuantity());
- commoditys.add(cdb);
- }
- bo.setCommoditys(commoditys);
- boList.add(bo);
- }
- }
- result.setList(boList);
- result.setPageNo(data.getPageNo());
- result.setPageSize(data.getPageSize());
- result.setTotalCount(data.getTotalCount());
- result.setFilterNo(data.getFilterNo());
- return result;
- }
- @Override
- public C2BOrderDetailBo selectOrderDetail(String orderNo) {
- TOrder t = tOrderMapper.selectByPrimaryKey(orderNo);
- C2BOrderDetailBo bo = new C2BOrderDetailBo();
- bo.setOrderNo(String.valueOf(t.getOrderNo()));
- bo.setOrderRemarks(t.getOrderRemarks());
- bo.setOrderStatus(OrderState.getStatus(t.getOrderStatus()).getDesc());
- bo.setCreateTime(DateUtils.formatDate(t.getCreateTime(),AFTConstants.YYYYMMDDHHMMSS));
- bo.setOrderAmount(String.valueOf(t.getOrderAmount()).equals("0")?"面议":String.valueOf(t.getOrderAmount())+" 万");
- bo.setFirstPayment(String.valueOf(t.getFirstPayment()).equals("0")?"面议":String.valueOf(t.getFirstPayment())+" 万");
- bo.setOperatorActive(setOperatorActive(t));
- List<CommodityDetailBo> commoditys = new ArrayList<CommodityDetailBo>();
- CommodityDetailBo cdb = null;
- List<TOrderDetail> tdList = tOrderMapper.selectOrderCommodity(String.valueOf(t.getOrderNo()));
- for(TOrderDetail tod : tdList ){
- cdb = new CommodityDetailBo();
- cdb.setCommodityPrice(String.valueOf(tod.getCommodityPrice()).equals("0")?"面议":String.valueOf(tod.getCommodityPrice())+" 万");
- cdb.setDiscountPrice(String.valueOf(tod.getDiscountPrice()).equals("0")?"面议":String.valueOf(tod.getDiscountPrice())+" 万");
- cdb.setCommodityId(tod.getCommodityId());
- cdb.setCommodityName(tod.getCommodityName());
- cdb.setCommodityMode(tod.getCommodityMode());
- cdb.setCommodityType(tod.getCommodityType());
- cdb.setCommodityQuantity(tod.getCommodityQuantity());
- commoditys.add(cdb);
- }
- bo.setCommoditys(commoditys);
- return bo;
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<BillListBo> selectOrderBillList(String orderNo,Integer pageNo,Integer pageSize) {
- Map<String, Object> params = new HashMap<String, Object>();
- if(orderNo != null) params.put("orderNo", orderNo);
- params.put("uid", TokenManager.getUserId());
- Pagination<BillListBo> data = (Pagination<BillListBo>)findPage("selectOrderBillByPage","selectOrderBillCount", params, pageNo, pageSize);
- List<BillListBo> list = (List<BillListBo>)data.getList();
- if(list.size()>0){
- for(BillListBo bo:list){
- bo.setBusinessDesc(setBusinessDesc(bo.getTransactionSubject(),bo.getTransactionAmount()));
- }
- }
- data.setList(list);
- return data;
- }
- @Override
- @Transactional
- public int updateApplyForWithdraw(String orderNo,String remarks) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- BigDecimal transactionAmount = tOrder.getActuallyTotalAmount().subtract(tOrder.getActuallyBrokerageAmount());
- addFundRecord(orderNo, TokenManager.getUserToken().getNickname(), TokenManager.getUserId(), DEFAULT_PLATFORM_ID, remarks,
- TransactionSubject.SUPPLY_COLLECT, PayChannel.UNIONPAY,transactionAmount,TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
- setOrderState(OrderAction.APPLY_FOR_WITHDRAW, new BigDecimal(0), tOrder, false);
- tOrder.setUpdateTime(new Date());
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- return 1;
- }
- @Override
- @Transactional
- public int updateApplyForCancel(String orderNo) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- setOrderState(OrderAction.APPLY_FOR_CANCEL, new BigDecimal(0), tOrder, false);
- tOrder.setUpdateTime(new Date());
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- return 1;
- }
- /**
- *
- * @param transactionSubject 交易科目
- * @param transactionAmount 交易金额
- * @param payeeId 收款人
- * @param payerId 付款人
- * @return
- */
- private String setBusinessDesc(Integer transactionSubject,BigDecimal transactionAmount){
- String result = "";
- if(transactionSubject == TransactionSubject.SUPPLY_COLLECT.getCode() || transactionSubject == TransactionSubject.REFUND.getCode()){
- result = "收入-"+transactionAmount;
- }else if(transactionSubject == TransactionSubject.SUPPLY_PAY.getCode()){
- result = "支出-"+transactionAmount;
- }
- return result;
- }
- @Override
- public int updateConfirmIntention(String orderNo, boolean confirm) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- setOrderState(OrderAction.CONFIRM_INTENTION, new BigDecimal(0), tOrder, confirm);
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- return 1;
- }
- /*
- * -------------------------------------------------- 后台管理端 --------------------------------------------------------
- */
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<OrderListBo> selectServiceOrder(OrderListBo bo,String startDate,String endDate,Integer intention,Integer formal,
- Integer pageNo, Integer pageSize) {
- Map<String,Object> params = disposeParams(bo,startDate,endDate);
- if(!TokenManager.hasRole(AFTConstants.SUPERADMIN))
- params.put("salesmanId", TokenManager.getAdminId());
- if((1 == intention && 0 == formal) || ( 0 == intention && 1 == formal)){
- params.put("intention", intention);
- params.put("formal", formal);
- }else if(0 == intention && 0 == formal){
- return new Pagination<OrderListBo>();
- }
- Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("selectServiceOrderByPage","selectServiceOrderCount",
- params, pageNo, pageSize);
- TOrder tOrder = null;
- List<OrderListBo> list = (List<OrderListBo>)data.getList();
- for(OrderListBo olb:list){
- tOrder = new TOrder();
- try {
- BeanUtilsExt.copyProperties(tOrder, olb);
- tOrder.setActuallyTotalAmount(new BigDecimal(olb.getActuallyTotalAmount()));
- } catch (InvocationTargetException | IllegalAccessException e) {
- e.printStackTrace();
- }
- olb.setActive(setOperatorActive(tOrder));
- }
- data.setList(list);
- return data;
- }
-
- private Map<String,Object> disposeParams(OrderListBo bo,String startDate,String endDate){
- Map<String,Object> params = new HashMap<>();
- if(StringUtils.isNotBlank(bo.getBuyerName())) params.put("buyerName", bo.getBuyerName());
- if(StringUtils.isNotBlank(bo.getOrderNo())) params.put("orderNo", bo.getOrderNo());
- if(null!=bo.getApproval()) params.put("approval", bo.getApproval());
- if(StringUtils.isNotBlank(bo.getSalesmanName())) params.put("salesmanName", bo.getSalesmanName());
- if(StringUtils.isNotBlank(startDate)) params.put("startDate", startDate +" 00:00:00");
- if(StringUtils.isNotBlank(endDate)) params.put("endDate", endDate + "23:59:59");
- if(bo.getOrderStatus() != null) params.put("orderStatus", bo.getOrderStatus());
- if(bo.getLiquidationStatus() != null) params.put("liquidationStatus", bo.getLiquidationStatus());
- if(bo.getProjectStage() != null) params.put("projectStage", bo.getProjectStage());
- if(bo.getOrderChannel() != null) params.put("orderChannel", bo.getOrderChannel());
-
- return params;
- }
- @Override
- public ServiceOrderDetailBo selectServiceOrderDetail(String orderNo) {
- ServiceOrderDetailBo bo = tOrderMapper.selectServiceOrderDetail(orderNo);
- TOrder tOrder = new TOrder();
- try {
- BeanUtilsExt.copyProperties(tOrder, bo);
- tOrder.setActuallyTotalAmount(new BigDecimal(bo.getActuallyTotalAmount()));
- bo.setActive(setOperatorActive(tOrder));
- } catch (IllegalAccessException | InvocationTargetException e) {
- e.printStackTrace();
- }
- return tOrderMapper.selectServiceOrderDetail(orderNo);
- }
- @Override
- public int updateServiceOrder(String orderNo, String signFirstPayment,
- String signTotalAmount,String contractNo, String orderRemarks,String contractPictureUrl) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- checkOrder(tOrder);
- boolean flag = false;
- if (new BigDecimal(signFirstPayment).compareTo(tOrder.getSignFirstPayment()) != 0)
- flag = true;
- if (new BigDecimal(signTotalAmount).compareTo(tOrder.getSignTotalAmount()) != 0)
- flag = true;
- boolean flag2 = false;
- if(tOrder.getOrderStatus() == OrderState.WAIT_FOR_SIGN.getCode()){
- flag2 = true;
- }else if(tOrder.getChangeStatus() == ChangeState.CHANGING.getCode()){
- flag2 = true;
- if(tOrder.getActuallyTotalAmount().compareTo(new BigDecimal(signTotalAmount)) == 1){ //超过全付
- tOrder.setLiquidationStatus(LiquidationState.AGREE_REFUND.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }else if(tOrder.getActuallyTotalAmount().compareTo(new BigDecimal(signTotalAmount)) == 0){ //刚好全付
- tOrder.setLiquidationStatus(LiquidationState.ALREADY_PAY.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }else if(tOrder.getActuallyTotalAmount().compareTo(new BigDecimal(signFirstPayment)) == -1){ //未达首付
- tOrder.setLiquidationStatus(LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode());
- if(tOrder.getProjectStage() == ProjectStage.WAIT_SET_UP.getCode())
- tOrder.setProjectStage(ProjectStage.NOT_SATISFY_CONDITION.getCode());
- }else if(tOrder.getActuallyTotalAmount().compareTo(new BigDecimal(signFirstPayment)) == 0){ //刚好首付
- tOrder.setLiquidationStatus(LiquidationState.WAIT_PAY_LAST_BALANCE.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }else{ //超过首付未全付
- tOrder.setLiquidationStatus(LiquidationState.WAIT_PAY_LAST_BALANCE.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }
-
- }
- if (flag && !flag2) { //只有待签单或者变更中可修改
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- }
- tOrder.setSignFirstPayment(new BigDecimal(signFirstPayment));
- tOrder.setSignTotalAmount(new BigDecimal(signTotalAmount));
- tOrder.setOrderRemarks(orderRemarks);
- tOrder.setUpdateTime(new Date());
- tOrder.setContractNo(contractNo);
- if(StringUtils.isNotBlank(contractPictureUrl))tOrder.setContractPictureUrl(contractPictureUrl);
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- //如果支付后订单符合待立项,系统自动立项 2018-4-10
- if(tOrder.getProjectStage() == ProjectStage.WAIT_SET_UP.getCode())
- updateSetUpProject(tOrder.getOrderNo(),DEFUALT_SET_UP_COMMENT);
- return 1;
- }
- @Override
- public int updateSignServiceOrder(String orderNo,String contractNo, String signFirstPayment, String signTotalAmount,
- String approval,String orderRemarks,String signTime) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- checkOrder(tOrder); //检查订单状态
- List<LockingReleaseBo> releaseList = checkProject(tOrder); //检查是否可签单
- if (tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()) {
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT, orderNo, ""));
- } else {
- tOrder.setSignFirstPayment(new BigDecimal(signFirstPayment));
- tOrder.setSignTotalAmount(new BigDecimal(signTotalAmount));
- tOrder.setOrderStage(OrderStage.SIGNED.getCode());
- tOrder.setOrderStatus(OrderState.ALREADY_SIGN.getCode());
- tOrder.setProjectStage(ProjectStage.NOT_SATISFY_CONDITION.getCode());
- tOrder.setApproval(Integer.valueOf(approval));
- tOrder.setUpdateTime(new Date());
- try {
- tOrder.setSignTime(DateUtils.parseDate(signTime, AFTConstants.YYYYMMDD));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- tOrder.setOrderRemarks(orderRemarks);
- tOrder.setContractNo(contractNo);
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- //releaseProject(releaseList);//释放原锁定业务
- //lockProject(tOrder);//锁定客户业务
- }
- return 1;
- }
- @Override
- public int updateRevokeOrder(String orderNo) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
- flag = false;
- }
- if(flag && tOrder.getActuallyTotalAmount().doubleValue() == 0){
- tOrder.setDeleteSign(ActiveState.ABOLISH.getCode());
- }else{
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"作废"));
- }
- tOrder.setUpdateTime(new Date());
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- return 1;
- }
-
- public void checkOrder(TOrder tOrder){
- if(tOrder == null)
- throw new BusinessException(new Error(ErrorConstants.ORDER_NOT_EXIST, "" ,""));
- if(tOrder.getDeleteSign() == ActiveState.ABOLISH.getCode())
- throw new BusinessException(new Error(ErrorConstants.ORDER_ALREADY_FREEZE, tOrder.getOrderNo(),""));
- if(tOrder.getDeleteSign() == ActiveState.LOCKING.getCode())
- throw new BusinessException(new Error(ErrorConstants.ORDER_ALREADY_REVOKE, tOrder.getOrderNo(),""));
- }
- public List<LockingReleaseBo> checkProject(TOrder tOrder){
- List<TOrderDetail> list = tOrderMapper.selectOrderCommodity(tOrder.getOrderNo());
- //检查客户锁定情况
- boolean isUserOwner = false;
- List<LockingReleaseBo> userLockedList = userMapper.selectLockedProject(tOrder.getBuyerId(), TokenManager.getAdminId(),null, 0, UserLockReleaseStatus.LOCKED.getCode());
- if(userLockedList.size() > 0){
- isUserOwner = true;
- }
- //检查业务锁定情况
- List<LockingReleaseBo> lockedList = null;
- List<LockingReleaseBo> releaseList = new ArrayList<LockingReleaseBo>();
- boolean isBusinessOwner = false;
- String businessName = "";
- for(TOrderDetail td : list){
- //业务锁定
- lockedList = userMapper.selectLockedProject(tOrder.getBuyerId(), null,td.getCommodityId(), 1, UserLockReleaseStatus.LOCKED.getCode());
- businessName = businessProjectMapper.selectByPrimaryKey(td.getCommodityId()).getBname();
- if(lockedList.size() > 0){
- for(LockingReleaseBo bo : lockedList){
- if(bo.getAid().equals(TokenManager.getAdminId())){
- isBusinessOwner = true;
- releaseList.add(bo);
- }
- }
- if(!isBusinessOwner) throw new BusinessException(new Error(ErrorConstants.BUSINESS_ALREADY_LOCKED,businessName,""));
- }else{
- if(!isUserOwner) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_LOCKED,businessName,""));
- }
- }
- return releaseList;
- }
-
- private void lockProject(BusinessListBo ub) {
- UserLockRelease ulr= new UserLockRelease();
- ulr.setId(UUID.randomUUID().toString());
- ulr.setType(1);
- ulr.setAid(TokenManager.getAdminId());
- ulr.setBusinessProjectId(ub.getBusinessProjectId());
- SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
- try {
- if (null==ub.getCreateTime()) {
- ulr.setLockTime(new Date());
- }else {
- ulr.setLockTime(sdf.parse(ub.getCreateTime()));
- }
- } catch (ParseException e) {
- e.printStackTrace();
- }
- ulr.setStatus(UserLockReleaseStatus.LOCKED.getCode());
- ulr.setUid(ub.getUid());
- userLockReleaseMapper.insert(ulr);
- }
-
- @SuppressWarnings("unused")
- private void releaseProject(List<LockingReleaseBo> releaseList){
- if(releaseList != null && releaseList.size()>0){
- UserLockRelease ulr = null;
- for(LockingReleaseBo bo : releaseList){
- ulr = new UserLockRelease();
- ulr.setId(bo.getId());
- ulr.setStatus(UserLockReleaseStatus.RELEASE.getCode());
- userLockReleaseMapper.updateByPrimaryKeySelective(ulr);
- }
-
- }
- }
-
- @Override
- @Transactional
- public int addOrderCommodity(String orderNo, String commodityId,String commodityName, String commodityMode, Integer commodityQuantity,Integer commodityType,
- String commodityPrice, String discountPrice,String commodityFirstPayment,String discountFirstPayment, String remarks) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- checkOrder(tOrder);
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()
- && tOrder.getChangeStatus() != ChangeState.CHANGING.getCode()){
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT, orderNo,""));
- }else{
- TOrderDetail detail = new TOrderDetail();
- detail.setId(UUID.randomUUID().toString());
- detail.setOrderNo(orderNo);
- detail.setCommodityId(commodityId);
- detail.setCommodityName(commodityName);
- detail.setCommodityQuantity(commodityQuantity);
- detail.setCommodityType(commodityType);
- detail.setCommodityMode(StringUtils.isBlank(commodityMode)?DEFAULT_COMMODITY_MODE:commodityMode);
- detail.setCommodityPrice(new BigDecimal(commodityPrice));
- detail.setDiscountPrice(new BigDecimal(discountPrice));
- detail.setCommodityFirstPayment(new BigDecimal(commodityFirstPayment));
- detail.setDiscountFirstPayment(new BigDecimal(discountFirstPayment));
- detail.setRemarks(remarks);
- detail.setCreateTime(new Date());
- tOrderDetailMapper.insert(detail);
- //订单市场价总额
- BigDecimal totalAmountChange = new BigDecimal(commodityPrice).multiply(new BigDecimal(commodityQuantity));
- //订单市场价首付金额
- BigDecimal firstPaymentChange = new BigDecimal(commodityFirstPayment).multiply(new BigDecimal(commodityQuantity));
- //订单签单总额
- BigDecimal signTotalAmountChange = new BigDecimal(discountPrice).multiply(new BigDecimal(commodityQuantity));
- //订单签单首付金额
- BigDecimal signFirstPaymentChange = new BigDecimal(discountFirstPayment).multiply(new BigDecimal(commodityQuantity));
- tOrder.setOrderAmount(tOrder.getOrderAmount().add(totalAmountChange));
- tOrder.setFirstPayment(tOrder.getFirstPayment().add(firstPaymentChange));
- tOrder.setSignTotalAmount(tOrder.getSignTotalAmount().add(signTotalAmountChange));
- tOrder.setSignFirstPayment(tOrder.getSignFirstPayment().add(signFirstPaymentChange));
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
- if(tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode()){ //已签单的同步锁定
- UserLockRelease ulr = new UserLockRelease();
- ulr.setId(UUID.randomUUID().toString());
- ulr.setType(1);
- ulr.setAid(TokenManager.getAdminId());
- ulr.setBusinessProjectId(commodityId);
- ulr.setLockTime(tOrder.getSignTime());
- ulr.setStatus(UserLockReleaseStatus.LOCKED.getCode());
- ulr.setUid(tOrder.getBuyerId());
- ulr.setOrderNo(tOrder.getOrderNo());
- userLockReleaseMapper.insert(ulr);
- }
- return 1;
- }
- @Override
- @Transactional
- public int updateOrderCommodity(String detailId,String discountPrice,String discountFirstPayment,Integer commodityQuantity,String remarks) {
- TOrderDetail oldDetail = tOrderDetailMapper.selectByPrimaryKey(detailId);
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(oldDetail.getOrderNo());
- checkOrder(tOrder);
- if (tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()
- && tOrder.getChangeStatus() != ChangeState.CHANGING.getCode()) {
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT, oldDetail.getOrderNo(), ""));
- } else {
- TOrderDetail detail = new TOrderDetail();
- detail.setId(detailId);
- detail.setOrderNo(oldDetail.getOrderNo());
- detail.setCommodityQuantity(commodityQuantity);
- detail.setDiscountPrice(new BigDecimal(discountPrice));
- detail.setDiscountFirstPayment(new BigDecimal(discountFirstPayment));
- detail.setRemarks(remarks);
- tOrderDetailMapper.updateByPrimaryKeySelective(detail);
- // 订单签单总额
- BigDecimal signTotalAmountChange = new BigDecimal(discountPrice).multiply(new BigDecimal(commodityQuantity))
- .subtract(oldDetail.getDiscountPrice().multiply(new BigDecimal(oldDetail.getCommodityQuantity())));
- // 订单签单首付金额
- BigDecimal signFirstPaymentChange = new BigDecimal(discountFirstPayment).multiply(new BigDecimal(commodityQuantity))
- .subtract(oldDetail.getDiscountFirstPayment().multiply(new BigDecimal(oldDetail.getCommodityQuantity())));
- tOrder.setSignTotalAmount(tOrder.getSignTotalAmount().add(signTotalAmountChange));
- tOrder.setSignFirstPayment(tOrder.getSignFirstPayment().add(signFirstPaymentChange));
- tOrder.setUpdateTime(new Date());
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
- return 1;
- }
- @Override
- @Transactional
- public int deleteOrderCommodity(String detailId) {
- TOrderDetail detail = tOrderDetailMapper.selectByPrimaryKey(detailId);
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(detail.getOrderNo());
- checkOrder(tOrder);
- if (tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()
- && tOrder.getChangeStatus() != ChangeState.CHANGING.getCode()) {
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT, detail.getOrderNo(), ""));
- } else {
- BigDecimal totalAmountChange = detail.getCommodityPrice()
- .multiply(new BigDecimal(detail.getCommodityQuantity()));
- BigDecimal firstPaymentChange = detail.getCommodityFirstPayment()
- .multiply(new BigDecimal(detail.getCommodityQuantity()));
- BigDecimal signTotalAmountChange = detail.getDiscountPrice()
- .multiply(new BigDecimal(detail.getCommodityQuantity()));
- BigDecimal signFirstPaymentChange = detail.getDiscountFirstPayment()
- .multiply(new BigDecimal(detail.getCommodityQuantity()));
- tOrder.setOrderAmount(tOrder.getOrderAmount().subtract(totalAmountChange));
- tOrder.setFirstPayment(tOrder.getFirstPayment().subtract(firstPaymentChange));
- tOrder.setSignTotalAmount(tOrder.getSignTotalAmount().subtract(signTotalAmountChange));
- tOrder.setSignFirstPayment(tOrder.getSignFirstPayment().subtract(signFirstPaymentChange));
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- tOrderDetailMapper.deleteByPrimaryKey(detailId);
- }
- if(tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode()){ //已签单的同步锁定
- userLockReleaseMapper.deleteLockByOrder(detail.getOrderNo(),detail.getCommodityId());
- }
- return 1;
- }
-
- @Override
- public List<OrganizationManagement> selectMyDeps(){
- if(TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION))
- return organizationManagementMapper.selectAllDeps();
- else
- return selectCurrentDep(TokenManager.getAdminId());
- }
-
- private List<OrganizationManagement> selectSubDeps(List<OrganizationManagement> allData,List<OrganizationManagement> superData){
- List<OrganizationManagement> subData = new ArrayList<>();
- String superIds = "";
- for(OrganizationManagement om : superData){
- if(!om.getId().equals(om.getSuperId())){
- superIds += om.getId() + ",";
- }
- }
- if(StringUtils.isNotBlank(superIds)) subData = organizationManagementMapper.selectSubDeps(superIds.substring(0, superIds.length()-1));
- if(subData != null && subData.size()>0) {
- allData.addAll(subData);
- selectSubDeps(allData,subData);
- }
- return allData;
- }
-
- private List<OrganizationManagement> selectCurrentDep(String managerId){
- List<OrganizationManagement> allData = new ArrayList<OrganizationManagement>();
- List<OrganizationManagement> superData = organizationManagementMapper.selectCurrentDeps(managerId);
- if(superData != null && superData.size()>0){
- allData.addAll(superData);
- }
- selectSubDeps(allData,superData);
- return allData;
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<OrderListBo> selectDepServiceOrder(OrderListBo bo, String startDate, String endDate,
- Integer intention, Integer formal, String depIds,Integer pageNo, Integer pageSize) {
- Map<String,Object> params = disposeParams(bo,startDate,endDate);
- if(StringUtils.isNotBlank(depIds)) {
- if(!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)){
- params.put("depIds","'" + depIds.replace(",", "','") + "'");
- }else{
- if(!depIds.contains(",")) params.put("depIds","'" + depIds + "'");
- }
-
- }else{
- if(!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.APPROVAL_DECISION))
- return new Pagination<OrderListBo>();
- }
- if((1 == intention && 0 == formal) || ( 0 == intention && 1 == formal)){
- params.put("intention", intention);
- params.put("formal", formal);
- }else if(0 == intention && 0 == formal){
- return new Pagination<OrderListBo>();
- }
- Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("selectServiceOrderByPage","selectServiceOrderCount",
- params, pageNo, pageSize);
- TOrder tOrder = null;
- List<OrderListBo> list = (List<OrderListBo>)data.getList();
- for(OrderListBo olb:list){
- tOrder = new TOrder();
- try {
- BeanUtilsExt.copyProperties(tOrder, olb);
- tOrder.setActuallyTotalAmount(new BigDecimal(olb.getActuallyTotalAmount()));
- } catch (InvocationTargetException | IllegalAccessException e) {
- e.printStackTrace();
- }
- olb.setActive(setOperatorActive(tOrder));
- }
- data.setList(list);
- return data;
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<OrderListBo> selectApprovalServiceOrder(OrderListBo bo, String startDate, String endDate,
- String depIds,Integer approvalHistory, Integer pageNo, Integer pageSize) {
- Map<String,Object> params = disposeParams(bo,startDate,endDate);
- if(StringUtils.isNotBlank(depIds)) {
- params.put("depIds", "'" + depIds + "'");
- }else{
- if(!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.APPROVAL_DECISION))
- return new Pagination<OrderListBo>();
- }
- if(approvalHistory != null){
- params.put("approvalHistory", approvalHistory);
- }
- if(StringUtils.isNotBlank(bo.getBuyerName())) params.put("buyerName", bo.getBuyerName());
- if(bo.getOrderType() != null) params.put("orderType", bo.getOrderType());
- if(bo.getOrderChannel() != null) params.put("orderChannel", bo.getOrderChannel());
- if(bo.getOrderStatus() != null) params.put("orderStatus", bo.getOrderStatus());
- if(StringUtils.isNotBlank(startDate)) params.put("startDate", startDate);
- if(StringUtils.isNotBlank(endDate)) params.put("endDate", endDate);
- return (Pagination<OrderListBo>)findPage("selectServiceOrderByPage","selectServiceOrderCount",
- params, pageNo, pageSize);
- }
- @Override
- public int createServiceOrder(String uid, Integer orderType,String contractType) {
- BigDecimal initial = new BigDecimal(0);
- TOrder tOrder = new TOrder();
- tOrder.setOrderType(orderType);
- tOrder.setOrderNo(idGenerator.generateId().toString());
- tOrder.setCreater(TokenManager.getAdminId());
- tOrder.setCreateTime(new Date());
- tOrder.setBuyerId(uid);
- tOrder.setSellerId(DEFAULT_PLATFORM_ID);
- tOrder.setSalesmanId(TokenManager.getAdminId());
- tOrder.setBrokerageAmount(initial);
- tOrder.setFirstPayment(initial);
- tOrder.setOrderAmount(initial);
- tOrder.setSignBrokerageAmount(initial);
- tOrder.setSignFirstPayment(initial);
- tOrder.setSignTotalAmount(initial);
- tOrder.setSignWithdrawAmount(initial);
- tOrder.setOrderChannel(OrderChannel.PORTAL.getCode());
- tOrder.setDeleteSign(ActiveState.NORMAL.getCode());
- tOrder.setApproval(ApprovalState.NORMAL.getCode());
- tOrder.setContractType(contractType);
- tOrder.setChangeStatus(ChangeState.UNCHANGE.getCode());
- setOrderState(OrderAction.ADD_INTENTION, new BigDecimal(0), tOrder, false);
- return tOrderMapper.insert(tOrder);
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<OrderListBo> selectPublicOrder(OrderListBo bo,String startDate,String endDate,Integer pageNo, Integer pageSize) {
- Map<String, Object> params = new HashMap<String,Object>();
- if(StringUtils.isNotBlank(bo.getBuyerName())) params.put("buyerName", bo.getBuyerName());
- if(bo.getOrderType() != null) params.put("orderType", bo.getOrderType());
- if(bo.getOrderChannel() != null) params.put("orderChannel", bo.getOrderChannel());
- if(bo.getOrderStatus() != null) params.put("orderStatus", bo.getOrderStatus());
- if(StringUtils.isNotBlank(startDate)) params.put("startDate", startDate);
- if(StringUtils.isNotBlank(endDate)) params.put("endDate", endDate);
- return (Pagination<OrderListBo>)findPage("selectPublicOrderByPage","selectPublicOrderCount",
- params, pageNo, pageSize);
- }
- @Override
- public int updateAppointSalesman(String orderNo, String salesmanId) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- checkOrder(tOrder);
- tOrder.setSalesmanId(salesmanId);
- tOrder.setUpdateTime(new Date());
- return tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<OrderListBo> selectSettlementList(String orderNo, String depId,String buyerName,String salesmanName,
- String financeId,String financeName,Integer orderStatus,Integer liquidationStatus,Integer approval,Integer isDistributionFinance,
- String startDate,String endDate,Integer pageNo, Integer pageSize) {
- Map<String, Object> params = new HashMap<String, Object>();
- if(StringUtils.isNotBlank(orderNo)) params.put("orderNo", orderNo);
- if(StringUtils.isNotBlank(depId)) params.put("depId", depId);
- if(StringUtils.isNotBlank(buyerName)) params.put("buyerName", buyerName);
- if(StringUtils.isNotBlank(salesmanName)) params.put("salesmanName", salesmanName);
- if(StringUtils.isNotBlank(financeId)) params.put("financeId", financeId);
- if(StringUtils.isNotBlank(financeName)) params.put("financeName", financeName);
- if(orderStatus != null) params.put("orderStatus", orderStatus);
- if(liquidationStatus != null) params.put("liquidationStatus", liquidationStatus);
- if(approval != null) params.put("approval", approval);
- if(isDistributionFinance != null) params.put("isDistributionFinance", isDistributionFinance);
- if(StringUtils.isNotBlank(startDate)) params.put("startDate", startDate);
- if(StringUtils.isNotBlank(endDate)) params.put("endDate", endDate);
- return (Pagination<OrderListBo>)findPage("selectSettlementByPage","selectSettlementCount", params, pageNo, pageSize);
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<BillListBo> selectMyBillList(String payeeName, String payerName, String depId,
- String salesmanName,String orderNo, Integer confirmSign,Integer deleteSign, Integer pageNo, Integer pageSize) {
- Map<String, Object> params = new HashMap<String, Object>();
- if(StringUtils.isNotBlank(payeeName)) params.put("payeeName", payeeName);
- if(StringUtils.isNotBlank(payerName)) params.put("payerName", payerName);
- if(StringUtils.isNotBlank(depId)) params.put("depId", depId);
- if(StringUtils.isNotBlank(salesmanName)) params.put("salesmanName", salesmanName);
- if(StringUtils.isNotBlank(orderNo)) params.put("orderNo", orderNo);
- if(confirmSign != null) params.put("confirmSign", confirmSign);
- if(deleteSign != null) params.put("deleteSign", deleteSign);
- /** 特殊处理字段开始 **/
- if(!TokenManager.hasRole(AFTConstants.SUPERADMIN)){
- params.put("isFinance", 1);
- }
- params.put("aid", TokenManager.getAdminId());
- /** 特殊处理字段结束 **/
- return (Pagination<BillListBo>)findPage("selectBillByPage","selectBillCount", params, pageNo, pageSize);
- }
-
-
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<BillListBo> queryMyBillList(String payeeName, String payerName, String depId,
- String salesmanName,String orderNo, Integer confirmSign,Integer deleteSign, Integer pageNo, Integer pageSize) {
- Map<String, Object> params = new HashMap<String, Object>();
- if(StringUtils.isNotBlank(payeeName)) params.put("payeeName", payeeName);
- if(StringUtils.isNotBlank(payerName)) params.put("payerName", payerName);
- if(StringUtils.isNotBlank(depId)) params.put("depId", depId);
- if(StringUtils.isNotBlank(salesmanName)) params.put("salesmanName", salesmanName);
- if(StringUtils.isNotBlank(orderNo)) params.put("orderNo", orderNo);
- if(confirmSign != null) params.put("confirmSign", confirmSign);
- if(deleteSign != null) params.put("deleteSign", deleteSign);
- /** 特殊处理字段开始 **/
- if(!TokenManager.hasRole(AFTConstants.SUPERADMIN)){
- params.put("isFinance", 0);
- }
- params.put("aid", TokenManager.getAdminId());
- /** 特殊处理字段结束 **/
- return (Pagination<BillListBo>)findPage("selectBillByPage","selectBillCount", params, pageNo, pageSize);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<BillListBo> queryAllBillList(String payeeName, String payerName, String depId,
- String salesmanName ,String financeName, String orderNo, Integer confirmSign,Integer deleteSign,Integer pageNo, Integer pageSize) {
- Map<String, Object> params = new HashMap<String, Object>();
- if(StringUtils.isNotBlank(payeeName)) params.put("payeeName", payeeName);
- if(StringUtils.isNotBlank(payerName)) params.put("payerName", payerName);
- if(StringUtils.isNotBlank(depId)) params.put("depId", depId);
- if(StringUtils.isNotBlank(salesmanName)) params.put("salesmanName", salesmanName);
- if(StringUtils.isNotBlank(financeName)) params.put("financeName", financeName);
- if(orderNo != null) params.put("orderNo", orderNo);
- if(confirmSign != null) params.put("confirmSign", confirmSign);
- if(deleteSign != null) params.put("deleteSign", deleteSign);
- Pagination<BillListBo> data = (Pagination<BillListBo>)findPage("selectBillByPage","selectBillCount", params, pageNo, pageSize);
- List<BillListBo> list = (List<BillListBo>)data.getList();
- if(list.size()>0){
- for(BillListBo bo:list){
- bo.setBusinessDesc(setBusinessDesc(bo.getTransactionSubject(),bo.getTransactionAmount()));
- }
- }
- data.setList(list);
- return data;
- }
- @Override
- public BillDetailBo selectBillDetail(String billNo) {
- return tOrderMapper.selectBillDetail(billNo);
- }
- @Override
- @Transactional
- public int updateBill(String billNo, String orderNo, Integer confrim,String financialPayNo,String financialPayTime,String remarks) {
- TOrderBill bill = tOrderBillMapper.selectByPrimaryKey(billNo);
- TOrder order = tOrderMapper.selectByPrimaryKey(orderNo);
- Date confirmTime = new Date();
- if(bill != null && order != null){
- bill.setBillNo(billNo);
- bill.setFinancialPayNo(financialPayNo);
- try {
- bill.setFinancialPayTime(DateUtils.parseDate(financialPayTime, AFTConstants.YYYYMMDDHHMMSS));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- bill.setRemarks(remarks);
- order.setUpdateTime(new Date());
- if(confrim == AFTConstants.YES){
- bill.setConfirmTime(confirmTime);
- bill.setConfirmSign(AuditState.AUDIT_SUCCESS.getCode());
- checkOrder(order);
- if(order.getLiquidationStatus() == LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()
- && bill.getTransactionSubject() == TransactionSubject.SUPPLY_PAY.getCode()) { //代付+首付状态
- setOrderState(OrderAction.CONFIRM_PAY_FOR_FIRST, bill.getTransactionAmount(), order, false);
- tOrderMapper.updateByPrimaryKeySelective(order);
- //如果支付后订单符合待立项,系统自动立项 2018-4-10
- if(order.getProjectStage() == ProjectStage.WAIT_SET_UP.getCode())
- updateSetUpProject(order.getOrderNo(),DEFUALT_SET_UP_COMMENT);
- } else if(order.getLiquidationStatus() == LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()
- && bill.getTransactionSubject() == TransactionSubject.SUPPLY_PAY.getCode()) { //代付+尾款状态
- setOrderState(OrderAction.CONFIRM_PAY_FOR_LAST, bill.getTransactionAmount(), order, false);
- tOrderMapper.updateByPrimaryKeySelective(order);
- //如果支付后订单符合待立项,系统自动立项 2018-4-10
- if(order.getProjectStage() == ProjectStage.WAIT_SET_UP.getCode())
- updateSetUpProject(order.getOrderNo(),DEFUALT_SET_UP_COMMENT);
- } else if(order.getLiquidationStatus() == LiquidationState.AGREE_REFUND.getCode()
- && bill.getTransactionSubject() == TransactionSubject.REFUND.getCode()) { //待退+退款状态
- setOrderState(OrderAction.COMPLETE_REFUND, bill.getTransactionAmount(), order, false);
- tOrderMapper.updateByPrimaryKeySelective(order);
- }else if(order.getLiquidationStatus() == LiquidationState.WAIT_FOR_WITHDRAW.getCode()
- && bill.getTransactionSubject() == TransactionSubject.SUPPLY_COLLECT.getCode()) { //代收+提现状态
- setOrderState(OrderAction.CONFIRM_WITHDRAW, bill.getTransactionAmount(), order, false);
- tOrderMapper.updateByPrimaryKeySelective(order);
- } else {
- throw new BusinessException(new Error(ErrorConstants.BILL_ALREADY_EXPIRE, billNo , ""));
- }
- }else if(confrim == AFTConstants.NO){
- bill.setConfirmTime(confirmTime);
- bill.setConfirmSign(AuditState.AUDIT_FAIL.getCode());
- bill.setDeleteSign(Boolean.TRUE);
- }
- String regex = "^(1[1-9][0-9])\\d{8}$";
- Pattern p = Pattern.compile(regex);
- String mobile="";
- Admin a=adminMapper.selectByPrimaryKey(order.getSalesmanId());
- if (null!=a.getContactMobile()) {
- Matcher m = p.matcher(a.getContactMobile());
- if ( m.matches()) {
- mobile=a.getContactMobile();
- }
- sendMessage(order,mobile,OrderFlowState.LSQR.getDesc());
- }
- tOrderBillMapper.updateByPrimaryKeySelective(bill);
- }
- return 1;
- }
- @Override
- public int updateBill(String billNo,String orderNo, String financialPayNo, String financialPayTime, String remarks) {
- TOrderBill bill = new TOrderBill();
- bill.setBillNo(billNo);
- bill.setOrderNo(orderNo);
- bill.setFinancialPayNo(financialPayNo);
- try {
- bill.setFinancialPayTime(DateUtils.parseDate(financialPayTime, AFTConstants.YYYYMMDDHHMMSS));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- bill.setRemarks(remarks);
- return tOrderBillMapper.updateByPrimaryKeySelective(bill);
- }
- @Override
- public int updateApprovalServiceOrder(String orderNo, Integer confirm) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- checkOrder(tOrder);
- if(tOrder.getOrderStatus() != OrderState.ALREADY_SIGN.getCode()
- || tOrder.getApproval() != ApprovalState.WAIT_AUDIT.getCode()){
- throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT, orderNo , ""));
- }
- tOrder.setUpdateTime(new Date());
- if(confirm == AFTConstants.YES){
- tOrder.setApproval(ApprovalState.AUDIT_PASS.getCode());
- if(tOrder.getProjectStage() == ProjectStage.NOT_SATISFY_CONDITION.getCode())
- tOrder.setProjectStage(ProjectStage.WAIT_SET_UP.getCode());
- }else if(confirm == AFTConstants.NO){
- tOrder.setApproval(ApprovalState.AUDIT_REFUSE.getCode());
- }
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- //如果支付后订单符合待立项,系统自动立项 2018-4-10
- if(tOrder.getProjectStage() == ProjectStage.WAIT_SET_UP.getCode()){
- updateSetUpProject(tOrder.getOrderNo(),DEFUALT_SET_UP_COMMENT);
- }
- String regex = "^(1[1-9][0-9])\\d{8}$";
- Pattern p = Pattern.compile(regex);
- String mobile="";
- Admin a=adminMapper.selectByPrimaryKey(tOrder.getSalesmanId());
- if (null!=a.getContactMobile()) {
- Matcher m = p.matcher(a.getContactMobile());
- if ( m.matches()) {
- mobile=a.getContactMobile();
- }
- sendMessage(tOrder,mobile,OrderFlowState.TPCL.getDesc());
- }
- return 1;
- }
- public void sendMessage(TOrder tOrder, String mobile, String type) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String userName=tOrderMapper.selectByUserName(tOrder.getOrderNo());
- //String message=noticeType.getDesc() + ": 订单编号-" + tOrder.getOrderNo() + ",变更内容:"+noticeComment+",操作人-" + TokenManager.getAdminToken().getName();
- String paramString = "{\"number\":\"" + tOrder.getOrderNo()
- + "\",\"operator\":\"" + TokenManager.getAdminToken().getName()
- + "\",\"name\":\"" + userName
- + "\",\"time\":\"" + sdf.format(new Date())
- + "\",\"type\":\"" + type +
- "\"}";
- MobileMessageUtils.sendMessage(mobileRemindCodeTemplate, paramString, mobile, accessKey, accessSecret);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<OrderListBo> listSetUpServiceOrder(String buyerName,String salesmanName, String financeName,
- String depId,Integer approval, Integer pageNo, Integer pageSize) {
- Map<String,Object> params = new HashMap<String,Object>();
- if(StringUtils.isNotBlank(buyerName))
- params.put("buyerName", buyerName);
- if(StringUtils.isNotBlank(salesmanName))
- params.put("salesmanName", salesmanName);
- if(StringUtils.isNotBlank(financeName))
- params.put("financeName",financeName);
- if(StringUtils.isNotBlank(depId))
- params.put("depId", depId);
- if(approval != null)
- params.put("approval", approval);
- return (Pagination<OrderListBo>)findPage("selectSetUpServiceOrderByPage","selectSetUpServiceOrderCount",
- params, pageNo, pageSize);
- }
- @Override
- @Transactional
- public int updateSetUpProject(String orderNo, String signComment) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- Date createTime = new Date();
- checkOrder(tOrder);
- boolean flag = false;
- if(tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode()){
- if(tOrder.getLiquidationStatus() == LiquidationState.WAIT_PAY_LAST_BALANCE.getCode())
- flag = true;
- if(tOrder.getLiquidationStatus() == LiquidationState.ALREADY_PAY.getCode())
- flag = true;
- if(tOrder.getApproval() == ApprovalState.AUDIT_PASS.getCode())
- flag = true;
- }
- if(!flag)
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- tOrder.setProjectStage(ProjectStage.ALREADY_SET_UP.getCode());
- tOrder.setOrderStage(OrderStage.PROJECT.getCode());
- tOrder.setUpdateTime(createTime);
- tOrder.setSetUpTime(createTime);
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- //-------------- 查询订单详情 --------------------------
- List<TOrderDetail> detailList = tOrderMapper.selectOrderCommodity(orderNo);
- List<ContractTask> taskList = new ArrayList<>();
- ContractTask task = null;
- Contract contract = new Contract();
- String contractId = UUID.randomUUID().toString().replace("-", "");
- contract.setId(contractId);
- contract.setCreateTime(createTime);
- contract.setType(tOrder.getContractType());
- contract.setSignDate(createTime);
- contract.setOrderNo(orderNo);
- contract.setStatus(ProjectStage.ALREADY_SET_UP.getCode());
- contract.setUid(tOrder.getBuyerId());
- contract.setCreater(TokenManager.getAdminId());
- contract.setPrincipal(tOrder.getTechnicianId()); //暂不确定
- contract.setSignComment(signComment);
- contract.setTaskDistribution(TaskDistributionState.NOT_DISTRIBUTION.getCode());
- contractMapper.insert(contract);
- //流水确认
- for(TOrderDetail orderDetail: detailList){
- Admin aa=adminMapper.selectAdminName(AFTConstants.DEFAULT_INITIATOR);
- Admin ab=adminMapper.selectAdminName(AFTConstants.CONSULTANT_MANAGER);
- for(int i=0; i<orderDetail.getCommodityQuantity();i++){
- task = new ContractTask();
- task.setId(UUID.randomUUID().toString().replace("-", ""));
- task.setCommodityId(orderDetail.getCommodityId());
- task.setCommodityMode(orderDetail.getCommodityMode());
- task.setCommodityName(orderDetail.getCommodityName());
- task.setCommodityType(orderDetail.getCommodityType());
- task.setTaskComment(orderDetail.getRemarks());
- task.setCommodityQuantity(1);
- task.setCreateTime(createTime);
- task.setContractId(contractId);
- task.setPublishStatus(PublicStatus.WGS.getCode());
- task.setTaskStatus(TaskState.UN_DISTRIBUTION.getCode());
- task.setDeletedSign(DeleteStatus.UNDELETE.getCode());
- //将项目任务日志分配给管理员
- ContractTaskLog c=new ContractTaskLog();
- c.setId(UUID.randomUUID().toString());
- c.setTaskAllocator(aa.getId());
- c.setTaskReceiver(ab.getId());
- c.setContractTaskId(task.getId());
- c.setCreateTime(new Date());
- contractTaskLogMapper.insert(c);
- taskList.add(task);
- }
- }
- if(taskList.size()>0) contractMapper.batchInsert(taskList);
- return 1;
- }
- @Override
- public List<TOrderDetail> selectOrderCommodity(String orderNo) {
- return tOrderMapper.selectOrderCommodity(orderNo);
- }
- @Override
- public int updatePayForTest(String orderNo, String payAmount) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- if(tOrder.getLiquidationStatus() == LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()
- || tOrder.getLiquidationStatus() == LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()){
- addFundRecord(orderNo, "测试用户", DEFAULT_PLATFORM_ID, TokenManager.getUserId(), "",
- TransactionSubject.SUPPLY_PAY,PayChannel.UNIONPAY, new BigDecimal(payAmount), TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
- tOrder.setUpdateTime(new Date());
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }else{
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- }
- return 1;
- }
- @Override
- public int updateRefundForTest(String orderNo, String refundAmount) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- if(tOrder.getLiquidationStatus() == LiquidationState.AGREE_REFUND.getCode()){
- addFundRecord(orderNo, "测试用户", DEFAULT_PLATFORM_ID, TokenManager.getUserId(), "",
- TransactionSubject.REFUND,PayChannel.UNIONPAY, new BigDecimal(refundAmount).multiply(new BigDecimal(-1)), TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
- tOrder.setUpdateTime(new Date());
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }else{
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- }
- return 1;
- }
-
- @Override
- public int updateDistributionOrder(String orderNo, String financeId) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- checkOrder(tOrder);
- if(StringUtils.isBlank(tOrder.getFinanceId())){
- tOrder.setFinanceId(financeId);
- }
- tOrder.setUpdateTime(new Date());
- return tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
- @Override
- public int updateLockOrRevokeOrder(String orderNo, Integer operatorType) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- if(tOrder != null){
- if(operatorType == 0){ //锁定
- if(tOrder.getDeleteSign() != DeleteStatus.UNDELETE.getCode())
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- tOrder.setDeleteSign(DeleteStatus.LOCKING.getCode());
- }else if(operatorType == 1){ //解锁
- if(tOrder.getDeleteSign() != DeleteStatus.LOCKING.getCode())
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- tOrder.setDeleteSign(DeleteStatus.UNDELETE.getCode());
- }else if(operatorType == 2){ //作废
- if(tOrder.getDeleteSign() != DeleteStatus.UNDELETE.getCode())
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- if(tOrder.getActuallyTotalAmount().doubleValue() > 0){
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- }
- if(tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.BUYER_CANCEL_BEFORE_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()
- && tOrder.getOrderStatus() != OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode())
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- tOrder.setDeleteSign(DeleteStatus.DELETED.getCode());
- }else if(operatorType == 3){ //签单前取消订单
- boolean flag = true;
- if(tOrder.getOrderStatus() != OrderState.WAIT_FOR_SIGN.getCode()){
- flag = false;
- }
- if(tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_FIRST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.WAIT_PAY_LAST_BALANCE.getCode()
- && tOrder.getLiquidationStatus() != LiquidationState.ALREADY_PAY.getCode()){
- flag = false;
- }
- if(!flag)
- throw new BusinessException(new Error(ErrorConstants.ORDER_CAN_NOT_MODIFY, orderNo, ""));
- tOrder.setOrderStatus(OrderState.SELLER_REFUSE_BEFORE_SIGNL.getCode());
- }
- tOrderMapper.updateByPrimaryKey(tOrder);
- }
- return 1;
- }
-
-
- private String getSalesmanIdByUid(String uid){
- User u = userMapper.selectByPrimaryKey(uid);
- if(u!=null&&StringUtils.isBlank(u.getAid())){
- return u.getAid();
- }else{
- return DEFAULT_ADMIN_ID;
- }
- }
- @Override
- public List<BillListBo> selectBillByOrderNo(String orderNo) {
- return tOrderMapper.selectBillByOrderNo(orderNo);
- }
- @Override
- public int updateApplyForRefund(String orderNo) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- setOrderState(OrderAction.APPLY_FOR_REFUND, new BigDecimal(0), tOrder, false);
- tOrder.setUpdateTime(new Date());
- return tOrderMapper.updateByPrimaryKey(tOrder);
- }
- @Override
- public int updateConfirmRefund(String orderNo,boolean confirm) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- setOrderState(OrderAction.CONFIRM_REFUND, new BigDecimal(0), tOrder, confirm);
- tOrder.setUpdateTime(new Date());
- if(confirm){ //同意退款生成退款流水
- BigDecimal transactionAmount = tOrder.getActuallyTotalAmount().subtract(tOrder.getActuallyBrokerageAmount()).multiply(new BigDecimal(-1));
- addFundRecord(orderNo, "平台方", DEFAULT_PLATFORM_ID,TokenManager.getUserId(), "同意退款系统生成流水",
- TransactionSubject.REFUND, PayChannel.UNIONPAY,transactionAmount,TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
- }
- return tOrderMapper.updateByPrimaryKey(tOrder);
- }
- @Override
- public int updateTransferOrder(String orderNo, String aid, Integer targetType) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- checkOrder(tOrder);
- if(targetType == 0) tOrder.setSalesmanId(aid);
- else if(targetType == 1) tOrder.setFinanceId(aid);
- else if(targetType == 2) tOrder.setTechnicianId(aid);
- tOrder.setUpdateTime(new Date());
- return tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
-
- /**
- * PC端添加意向
- * 只能购买一份
- * 后期规则:自营服务订单 、需求订单、其他订单不能同时加入购物车
- * @throws ParseException
- */
- @Override
- public int addPurpose(String orderNo, String commodityId, String commodityMode, Integer commodityQuantity,Integer commodityType,
- String createTime,String remarks) throws ParseException {
- CommodityDetailBo bo = tOrderMapper.selectCommodityDetail(commodityId,commodityType);
- BigDecimal commodityPrice = StringUtils.isBlank(bo.getCommodityPrice()) ? DEFAULT_COMMODITY_PRICE
- : new BigDecimal(Double.valueOf(bo.getCommodityPrice()));
- BigDecimal commodityFirstPayment = StringUtils.isBlank(bo.getCommodityFirstPayment()) ? DEFAULT_FIRST_PAYMENT
- : new BigDecimal(Double.valueOf(bo.getCommodityFirstPayment()));
- BigDecimal discountPrice = commodityPrice.multiply(new BigDecimal(DEFAULT_COMMODITY_DISCOUNT));
- BigDecimal discountFirstPayment = commodityFirstPayment.multiply(new BigDecimal(DEFAULT_COMMODITY_DISCOUNT));
- TOrder tOrder = new TOrder();
- tOrder.setOrderNo(orderNo);
- tOrder.setCreater(DEFAULT_ADMIN_ID);
- tOrder.setCreateTime(DateUtils.parseDate(createTime, AFTConstants.YYYYMMDDHHMMSS));
- if(commodityType == CommodityType.DEMAND.getTypeCode()){
- tOrder.setBuyerId(StringUtils.isBlank(bo.getSellerId()) ? DEFAULT_PLATFORM_ID : bo.getSellerId());
- tOrder.setSellerId(TokenManager.getUserId());
- }else{
- tOrder.setBuyerId(TokenManager.getUserId());
- tOrder.setSellerId(StringUtils.isBlank(bo.getSellerId()) ? DEFAULT_PLATFORM_ID : bo.getSellerId());
- }
- tOrder.setOrderType(commodityType);
- tOrder.setBrokerageAmount(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION)));
- tOrder.setOrderAmount(commodityPrice);
- tOrder.setFirstPayment(commodityFirstPayment);
- tOrder.setSignTotalAmount(discountPrice);
- tOrder.setSignFirstPayment(discountFirstPayment);
- tOrder.setSignBrokerageAmount(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION)));
- tOrder.setSignWithdrawAmount(discountPrice.subtract(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION))));
- tOrder.setDeleteSign(DeleteStatus.UNDELETE.getCode());
- tOrder.setOrderChannel(OrderChannel.PORTAL.getCode());
- tOrder.setApproval(ApprovalState.NORMAL.getCode());
- tOrder.setChangeStatus(ChangeState.UNCHANGE.getCode());
- tOrder.setSalesmanId(getSalesmanIdByUid(TokenManager.getAdminId()));
-
- tOrder.setOrderRemarks(remarks);
- tOrder.setContractType(bo.getCommodityClassify());
- setOrderState(OrderAction.ADD_INTENTION, new BigDecimal(0), tOrder, false);
-
- TOrderDetail tOrderDetail = new TOrderDetail();
- tOrderDetail.setId(UUID.randomUUID().toString());
- tOrderDetail.setOrderNo(orderNo);
- tOrderDetail.setCommodityId(commodityId);
- tOrderDetail.setCommodityName(bo.getCommodityName());
- tOrderDetail.setCommodityMode(StringUtils.isBlank(commodityMode)?DEFAULT_COMMODITY_MODE: commodityMode);
- tOrderDetail.setCommodityType(commodityType);
- tOrderDetail.setCommodityQuantity(commodityQuantity);
- tOrderDetail.setCommodityPrice(commodityPrice);
- tOrderDetail.setCommodityFirstPayment(commodityFirstPayment);
- tOrderDetail.setDiscountPrice(discountPrice);
- tOrderDetail.setDiscountFirstPayment(discountFirstPayment);
- tOrderDetail.setCreateTime(DateUtils.parseDate(createTime, AFTConstants.YYYYMMDDHHMMSS));
- tOrderDetailMapper.insert(tOrderDetail);
- tOrderMapper.insert(tOrder);
- return 1;
- }
- @Override
- @Transactional
- public int addOrderChange(String orderNo, String changeComment) {
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- tOrder.setChangeStatus(ChangeState.CHANGING.getCode());
- TOrderChange change = new TOrderChange();
- change.setCreaterId(TokenManager.getAdminId());
- change.setCreateTime(new Date());
- change.setOrderNo(orderNo);
- change.setId(UUID.randomUUID().toString());
- change.setChangeComment(changeComment);
- change.setChangeStatus(ChangeState.CHANGING.getCode());
- change.setDeleteSign(DeleteStatus.UNDELETE.getCode());
- tOrderChangeMapper.insert(change);
- tOrderMapper.updateByPrimaryKeySelective(tOrder);
- generatorNoticeData(NoticeStatus.ORDER_CHANGE_ADD,changeComment,tOrder);
- return 1;
- }
- @Override
- public List<OrderChangeBo> selectOrderChange(String orderNo) {
- return tOrderChangeMapper.selectOrderChange(orderNo);
- }
- @Override
- public int deleteOrderChange(String changeId) {
- TOrderChange change = tOrderChangeMapper.selectByPrimaryKey(changeId);
- change.setDeleteSign(DeleteStatus.DELETED.getCode());
- tOrderChangeMapper.updateByPrimaryKeySelective(change);
- return updateOrderSatusByChange(change.getOrderNo());
- }
-
- /**
- * 更新变更状态
- * @param changeId
- * @return
- */
- private int updateOrderSatusByChange(String orderNo){
- if(StringUtils.isBlank(orderNo)) return 0;
- int resultStatus = ChangeState.UNCHANGE.getCode();
- int onChangeCount = tOrderChangeMapper.selectCountByStatus(ChangeState.CHANGING.getCode(), orderNo);
- if(onChangeCount > 0){
- resultStatus = ChangeState.CHANGING.getCode();
- } else {
- int completeChangeCount = tOrderChangeMapper.selectCountByStatus(ChangeState.CHANGED.getCode(), orderNo);
- if(completeChangeCount>0) resultStatus = ChangeState.CHANGED.getCode();
- }
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
- tOrder.setChangeStatus(resultStatus);
- return tOrderMapper.updateByPrimaryKeySelective(tOrder);
- }
- @Override
- public int updateOrderChange(String changeId, String changeComment, Integer changeStatus) {
- TOrderChange change = tOrderChangeMapper.selectByPrimaryKey(changeId);
- if(StringUtils.isNotBlank(changeComment))change.setChangeComment(changeComment);
- change.setChangeStatus(changeStatus);
- tOrderChangeMapper.updateByPrimaryKeySelective(change);
- TOrder tOrder = tOrderMapper.selectByPrimaryKey(change.getOrderNo());
- generatorNoticeData(NoticeStatus.ORDER_CHANGE_UDPATE,changeComment,tOrder);
- return updateOrderSatusByChange(change.getOrderNo());
- }
- @Override
- public int updateRepairData() {
- List<TmpTable> tmpData = tmpTableMapper.selectAll();
- int taskDistribution = TaskDistributionState.NOT_DISTRIBUTION.getCode();
- for(TmpTable tt: tmpData){
- if(tt.getAllCount() == tt.getDisCount())
- taskDistribution = TaskDistributionState.ALL_DISTRIBUTION.getCode();
- else if(tt.getAllCount() > tt.getDisCount() && tt.getDisCount() != 0)
- taskDistribution = TaskDistributionState.PART_DISTRIBUTION.getCode();
- else if(tt.getAllCount() > tt.getDisCount() && tt.getDisCount() == 0)
- taskDistribution = TaskDistributionState.NOT_DISTRIBUTION.getCode();
- contractMapper.updateRepairData(tt.getOrderNo(),taskDistribution);
- }
- return 1;
- }
-
- private void generatorNoticeData(NoticeStatus noticeType,String noticeComment,TOrder tOrder){
- if(tOrder == null) return;
- Notice notice = null;
- List<Notice> noticeList = new ArrayList<>();
- Calendar now = Calendar.getInstance();
- now.set(Calendar.MILLISECOND, 0);
- List<String> targetIds = new ArrayList<String>();
- if(StringUtils.isNotBlank(tOrder.getSalesmanId()) && !targetIds.contains(tOrder.getSalesmanId()))
- targetIds.add(tOrder.getSalesmanId());
- if(StringUtils.isNotBlank(tOrder.getFinanceId()) && !targetIds.contains(tOrder.getFinanceId()))
- targetIds.add(tOrder.getFinanceId());
- if(StringUtils.isNotBlank(tOrder.getTechnicianId()) && !targetIds.contains(tOrder.getTechnicianId()))
- targetIds.add(tOrder.getTechnicianId());
- Admin admin = adminMapper.selectAdminByRoleId(AFTConstants.TECH_ADMIN);
- if(admin!= null && !targetIds.contains(admin.getId())) targetIds.add(admin.getId());
- if(targetIds.size()>0){
- for(String id: targetIds){
- notice = new Notice();
- notice.setId(UUID.randomUUID().toString());
- notice.setCreateTime(now.getTime());
- notice.setReaded(NoticeReadStatus.UNREAD.getCode());
- notice.setRid(tOrder.getOrderNo());
- notice.setNoticeType(noticeType.getCode());
- notice.setContent(noticeType.getDesc() + ": 订单编号-" + tOrder.getOrderNo() + ",操作人-" + TokenManager.getAdminToken().getName());
- notice.setAid(id);
- noticeList.add(notice);
- }
- MobileNotice( targetIds, tOrder);
- noticeMapper.insertBatch(noticeList);
- //触发短信提醒
- List<UserRole> list=userRoleMapper. selectAdminRole(AFTConstants.CONSULTANT_MANAGER);
- for (UserRole u : list) {
- targetIds.add(u.getUid());
- }
- String regex = "^(1[1-9][0-9])\\d{8}$";
- Pattern p = Pattern.compile(regex);
- String mobile="";
- for (String s : targetIds) {
- Admin a=adminMapper.selectByPrimaryKey(s);
- if (null!=a.getContactMobile()) {
- Matcher m = p.matcher(a.getContactMobile());
- if ( m.matches()) {
- mobile+=a.getContactMobile()+",";
- }
- }
- }
- if(mobile.length()>1){
- mobile=mobile.substring(0, mobile.length()-1);
- sendMessage(tOrder,mobile,OrderFlowState.DDBG.getDesc());
- }
- }
- }
- private void MobileNotice(List<String> targetIds, TOrder tOrder) {
-
-
- }
- @Override
- public void addContractTaskLog() {
- List<ContractTask> list=contractTaskMapper.selectlistContractTask();
- Admin aa=adminMapper.selectAdminName(AFTConstants.DEFAULT_INITIATOR);
- Admin ab=adminMapper.selectAdminName(AFTConstants.CONSULTANT_MANAGER);
- for (ContractTask ct : list) {
- ContractTaskLog c=new ContractTaskLog();
- c.setId(UUID.randomUUID().toString());
- c.setContractTaskId(ct.getId());
- c.setTaskReceiver(ab.getId());
- c.setTaskAllocator(aa.getId());
- c.setCreateTime(new Date());
- contractTaskLogMapper.insert(c);
- if (StringUtils.isNotBlank(ct.getTaskReceiver())&&!ct.getTaskReceiver().equals(ab.getId())) {
- c=new ContractTaskLog();
- c.setId(UUID.randomUUID().toString());
- c.setContractTaskId(ct.getId());
- c.setTaskReceiver(ct.getTaskReceiver());
- c.setTaskAllocator(ab.getId());
- c.setCreateTime(new Date());
- contractTaskLogMapper.insert(c);
- }
-
- }
-
-
- }
- @Override
- public boolean checkCustomerInformation(String uid) {
- int i=userMapper.checkCustomerInformation(uid);
- if (i<1) {
- return true;
- }
- return false;
- }
- @Override
- public int addBusinessProjectId(FollowBusinessBo fbb) {
- //if(fbb.getUserBusinessList().size()<1) throw new BusinessException(new Error(ErrorConstants.AT_LEAST_A_BUSINESS,"",""));
- //更新跟进记录表
- SimpleDateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
- fbb.setFollowTime(format.format(new Date()));
- UserFollow userFollow = new UserFollow();
- String followId = UUID.randomUUID().toString();
- userFollow.setId(followId);
- userFollow.setAid(TokenManager.getAdminId());
- userFollow.setContactType(Integer.parseInt(fbb.getContactType()));
- userFollow.setEffective(DeleteStatus.UNDELETE.getCode());
- userFollow.setCreateTime(new Date());
- userFollow.setOcbId(fbb.getOcbId());
- userFollow.setResult(fbb.getResult());
- userFollow.setUid(fbb.getUid());
- int followCount = userBusinessMapper.selectFollowCountByUAid(fbb.getUid(), TokenManager.getAdminId()) + 1;
- userFollow.setFollowCount(followCount);
- userFollowMapper.insert(userFollow);
- //检查客户锁定情况
- if(fbb.getUserBusinessList().size()>0){
- String ufbId = "";
- UserBusiness userBusiness = null;
- UserFollowBusiness userFollowBusiness = null;
- for(BusinessListBo ub: fbb.getUserBusinessList()){
- userBusiness = new UserBusiness();
- userFollowBusiness = new UserFollowBusiness();
- ufbId = UUID.randomUUID().toString();
- if (ub.getFollowSituation()==5) {//如果改成已签合同,则锁定业务
- if (StringUtils.isNotBlank(fbb.getUid())) ub.setUid(fbb.getUid());
- userLockReleaseMapper.updateProject(fbb.getUid(), TokenManager.getAdminId(), ub.getBusinessProjectId());
- lockProject(ub);//锁定客户业务
- }
- String ubId = UUID.randomUUID().toString();
- //更新业务表
- userBusiness.setId(ubId);
- userBusiness.setBusinessProjectId(ub.getBusinessProjectId());
- try {
- userBusiness.setCreateTime(format.parse(fbb.getFollowTime()));
- userBusiness.setUpdateTime(format.parse(fbb.getFollowTime()));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- userBusiness.setCustomerStatus(ub.getCustomerStatus());
- userBusiness.setFollowSituation(ub.getFollowSituation());
- userBusiness.setUid(fbb.getUid());
- userBusiness.setAid(TokenManager.getAdminId());
- userBusiness.setRemarks(ub.getRemarks());
- userBusinessMapper.insert(userBusiness);
- //更新业务中间表
- userFollowBusiness.setBusinessId(ubId);
- userFollowBusiness.setCustomerStatus(ub.getCustomerStatus());
- userFollowBusiness.setFollowSituation(ub.getFollowSituation());
- userFollowBusiness.setId(ufbId);
- userFollowBusiness.setFollowId(followId);
- userFollowBusiness.setRemarks(ub.getRemarks());
- userFollowBusiness.setBusinessProjectId(ub.getBusinessProjectId());
- userFollowBusinessMapper.insert(userFollowBusiness);
- }
-
- }
-
-
- return 1;
- }
-
- }
|