Browse Source

调整和优化

master
xyiege 3 years ago
parent
commit
032ee6a378
  1. 55
      src/main/java/cn/chjyj/szwh/controller/api/OrderController.java
  2. 7
      src/main/java/cn/chjyj/szwh/mapper/GoodsDetailMapper.java
  3. 8
      src/main/java/cn/chjyj/szwh/mapper/GoodsMapper.java
  4. 7
      src/main/java/cn/chjyj/szwh/mapper/UserAccountBillMapper.java
  5. 6
      src/main/java/cn/chjyj/szwh/service/GoodsDetailService.java
  6. 8
      src/main/java/cn/chjyj/szwh/service/GoodsService.java
  7. 7
      src/main/java/cn/chjyj/szwh/service/OperationLogService.java
  8. 8
      src/main/java/cn/chjyj/szwh/service/OrderService.java
  9. 11
      src/main/java/cn/chjyj/szwh/service/PayService.java
  10. 7
      src/main/java/cn/chjyj/szwh/service/impl/GoodsDetailServiceImpl.java
  11. 12
      src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java
  12. 5
      src/main/java/cn/chjyj/szwh/service/impl/OperationLogServiceImpl.java
  13. 12
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  14. 113
      src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java
  15. 7
      src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java
  16. 6
      src/main/resources/mapper/szwh/GoodsDetailMapper.xml
  17. 7
      src/main/resources/mapper/szwh/GoodsMapper.xml
  18. 6
      src/main/resources/mapper/szwh/OrderMapper.xml
  19. 40
      src/main/resources/mapper/szwh/UserAccountBillMapper.xml

55
src/main/java/cn/chjyj/szwh/controller/api/OrderController.java

@ -47,6 +47,12 @@ public class OrderController extends BaseController {
private AccountRatioDetailService accountRatioDetailService;
@Autowired
private OrderUserService orderUserService;
@Autowired
private PayService payService;
@Autowired
private UserAccountBillService userAccountBillService;
@Autowired
private OperationLogService operationLogService;
/**
* 获取订单信息
@ -138,7 +144,10 @@ public class OrderController extends BaseController {
//只有一条记录的时候
if(goodArr.length==1){
String batchcode = buyFindGoods(userIsli,goodsIsli,Integer.valueOf(userYears));
if(StringUtils.isNotBlank(shopCar)){
}
}else{ //多个商品编号
}
@ -177,7 +186,15 @@ public class OrderController extends BaseController {
return jsonObject;
}
/**
* 查找购买流程并返回订单编号
* @param userIsli
* @param goodsIsli
* @param userYears
* @return
*/
private String buyFindGoods(String userIsli,String goodsIsli,int userYears){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Goods goods= goodsService.getGoodsByIsli(goodsIsli);
if(goods==null){
throw new ChException("没有该标的",400);
@ -281,10 +298,44 @@ public class OrderController extends BaseController {
// 订单信息入库
int ret = orderService.addOrder(order);
if(ret==1){
if(status==2){
//if(status==2){
// 更新订单信息
//payService.payFinishOperate(batchCode);
// }
// 用户账单
UserAccountBill userAccountBill = new UserAccountBill();
userAccountBill.setUserIsli(userIsli);
userAccountBill.setBatchcode(batchCode);
userAccountBill.setOrderUserId(userId);
userAccountBill.setServiceCharge(serviceCharge);
userAccountBill.setThatdayBuyMoney(totalMoney);
// save user's bill
userAccountBillService.addUserAccBill(userAccountBill);
//调整库存
if(goodsDetail.getGoodsEntrust()==1 || goodsDetail.getContractualPeriod()==2 && goodsDetail.getGoodsEntrust()!=2){
int gdret = goodsDetailService.decGoodsDetailStock(goodsDetail.getId());
if(gdret==1){
String status_Str="";
if(goodsDetail.getGoodsEntrust() ==1){
goodsService.changeGoodsStatus(5,goods.getId());
status_Str="暂停";
}else {
goodsService.changeGoodsStatus(2,goods.getId());
status_Str="下架";
}
//更新订单用户状态信息
String buyUserName = orderUser.getName();
OperationLog oplog =new OperationLog();
oplog.setType("goods");
oplog.setLogid(goods.getId());
oplog.setMessage(sdf.format(new Date())+"用户"+buyUserName+"下单,"+status_Str+"该委托标的");
operationLogService.addLog(oplog);
return batchCode;
}else{
throw new ChException("标的已卖完",400);
}
}
}
return "";
return batchCode;
}
}

7
src/main/java/cn/chjyj/szwh/mapper/GoodsDetailMapper.java

@ -37,4 +37,11 @@ public interface GoodsDetailMapper {
* @return
*/
int addGoodsDetail(GoodsDetail goodsDetail);
/**
* 减库存
* @param id
* @return
*/
int decGoodsDetailStock(Integer id);
}

8
src/main/java/cn/chjyj/szwh/mapper/GoodsMapper.java

@ -170,4 +170,12 @@ public interface GoodsMapper {
* @return
*/
int updateRevocationGoods(String id);
/**
* 商品状态变化
* @param status
* @param gid
* @return
*/
int updateGoodsStatus(@Param("status") int status,@Param("gid") int gid);
}

7
src/main/java/cn/chjyj/szwh/mapper/UserAccountBillMapper.java

@ -26,4 +26,11 @@ public interface UserAccountBillMapper {
* @return
*/
int countUserAccBill(String userisli);
/**
* add new user bill
* @param userAccountBill
* @return
*/
int addUserAccBill(UserAccountBill userAccountBill);
}

6
src/main/java/cn/chjyj/szwh/service/GoodsDetailService.java

@ -20,4 +20,10 @@ public interface GoodsDetailService {
* @return
*/
int getRemoteGoodsImageAndUpdate(String image,Integer id);
/**
* 减库存
* @param id
* @return
*/
int decGoodsDetailStock(Integer id);
}

8
src/main/java/cn/chjyj/szwh/service/GoodsService.java

@ -104,4 +104,12 @@ public interface GoodsService {
* @return
*/
List<Goods> getTypeGoods(String type,String createtime,String goods_type);
/**
* 商品状态
* @param id
* @param status
* @return
*/
int changeGoodsStatus(int status,int id);
}

7
src/main/java/cn/chjyj/szwh/service/OperationLogService.java

@ -12,4 +12,11 @@ public interface OperationLogService {
* @return
*/
List<OperationLog> getLog(String type, String logId);
/**
* add new log
* @param oplog
* @return
*/
int addLog(OperationLog oplog);
}

8
src/main/java/cn/chjyj/szwh/service/OrderService.java

@ -83,4 +83,12 @@ public interface OrderService {
*/
int addOrder(Order order);
/**
* 购买前查找商品信息状态
* @param userIsli
* @param goodsIsli
* @param userYears
* @return
*/
public String buyFindGoods(String userIsli,String goodsIsli,int userYears);
}

11
src/main/java/cn/chjyj/szwh/service/PayService.java

@ -4,5 +4,16 @@ package cn.chjyj.szwh.service;
* 支付服务接口
*/
public interface PayService {
/**
* 支付完成后的处理方法
* @return
*/
public void payComplete();
/**
* 订单完成操作
* @param batchcode
* @return
*/
public int payFinishOperate(String batchcode);
}

7
src/main/java/cn/chjyj/szwh/service/impl/GoodsDetailServiceImpl.java

@ -12,8 +12,10 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class GoodsDetailServiceImpl implements GoodsDetailService {
// 日志
private static Log log = LogFactory.getLog(GoodsDetailServiceImpl.class);
@ -47,4 +49,9 @@ public class GoodsDetailServiceImpl implements GoodsDetailService {
goodsDetailMapper.updateGoodsDetail(goodsDetail);
return 0;
}
@Override
public int decGoodsDetailStock(Integer id) {
return goodsDetailMapper.decGoodsDetailStock(id);
}
}

12
src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java

@ -18,16 +18,11 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigInteger;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@Service
@ -528,6 +523,13 @@ public class GoodsServiceImpl implements GoodsService {
return glist;
}
@Override
public int changeGoodsStatus(int status, int gid) {
Map gmap =new HashMap();
gmap.put("goods_status",status);
return goodsMapper.updateGoods(gmap,gid);
}
/**
* query rank list
*

5
src/main/java/cn/chjyj/szwh/service/impl/OperationLogServiceImpl.java

@ -17,4 +17,9 @@ public class OperationLogServiceImpl implements OperationLogService {
public List<OperationLog> getLog(String type, String logId) {
return operationLogMapper.getOperationLog(logId,type);
}
@Override
public int addLog(OperationLog oplog) {
return operationLogMapper.addLog(oplog);
}
}

12
src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java

@ -515,6 +515,18 @@ public class OrderServiceImpl implements OrderService {
return orderMapper.addOrder(order);
}
/**
* todo
* @param userIsli
* @param goodsIsli
* @param userYears
* @return
*/
@Override
public String buyFindGoods(String userIsli, String goodsIsli, int userYears) {
return null;
}
/**
* 结算
* @param order

113
src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java

@ -0,0 +1,113 @@
package cn.chjyj.szwh.service.impl;
import cn.chjyj.szwh.bean.Order;
import cn.chjyj.szwh.bean.OrderGoodsDetail;
import cn.chjyj.szwh.bean.OrderUser;
import cn.chjyj.szwh.mapper.OrderGoodsDetailMapper;
import cn.chjyj.szwh.mapper.OrderMapper;
import cn.chjyj.szwh.mapper.OrderUserMapper;
import cn.chjyj.szwh.service.PayService;
import cn.chjyj.szwh.utils.SzwhApiUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Transactional
public class PayServiceImpl implements PayService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private OrderUserMapper orderUserMapper;
@Autowired
private OrderGoodsDetailMapper orderGoodsDetailMapper;
/**
* 关闭七日以前的已经支付了的订单
* @return
*/
@Override
public void payComplete() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nowStr = sdf.format(sdf)+" 23:59:59";
List<Order> orderList=orderMapper.getOrderListUnderDate(nowStr,"2");
for(Order od:orderList){
// 更新订单完成状态
payFinishOperate(od.getBatchcode());
}
}
@Override
public int payFinishOperate(String batchcode) {
//获取订单信息
Order order = orderMapper.getOrderByBatchcode(batchcode);
if(order==null){
return 0;
}
if(order.getPayStatus()!=2){
// do nothing
}
Integer status = order.getStatus();
Integer closeStatus= order.getCloseStatus();
Integer type =order.getType();
String buyIslicode = order.getBuyIslicode();
//购买用户
OrderUser oduser = orderUserMapper.getUserOrder(batchcode,buyIslicode);
String buyName = oduser.getName();
Date paytime = order.getPaymenttime();
// 同步到其他平台
List syncList =new ArrayList<>();
Calendar cal= Calendar.getInstance();
// 分配比例设置及详情
//订单商品详情
List<OrderGoodsDetail> orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(batchcode);
for(OrderGoodsDetail odgd:orderGoodsDetailList){
Map odmap = new HashMap();
String dateStr="";//订单年限
int transCount=1;//
if(odgd.getGoodsEntrust()==1 || odgd.getChargesType()==1){
dateStr="永久";
transCount=1;
}else {
int years = odgd.getTransactionCount();
cal.setTime(new Date());
cal.add(Calendar.YEAR,+years);
dateStr=cal.getTime().toString();
transCount=odgd.getTransactionCount();
}
//
// if(odgd.getMoney().compareTo(new BigDecimal(0))>0 &&status!=2){
// return odgd;
// }
//合约关联编码(订单交易isli标识码)
String contractcode="";
if(StringUtils.isEmpty(odgd.getContractCode())){
// $ratio_setting = AccountRatioSetting::where('is_deleted', 0)->where('status', 1)->find();
// $entrust_ratio_detail = AccountRatioDetail::where('setting_id', $ratio_setting->id)->where('role_type', 1)->find();
// $ratio = 0;
// $entrust_number = 0;
// if($entrust_ratio_detail['calculate'] == 1){
// $entrust_number = $entrust_ratio_detail['ratio'];
// }else{
// $entrust_number = $entrust_ratio_detail['amount'];
// }
// $ratio = round(1 - ($entrust_number / 100), 4);
String ratio="0.00";
// 远程获取查询对应的 islicode
SzwhApiUtils.getApplyLinkCode(odgd.getGoodsIslicode(),buyIslicode,ratio,transCount,dateStr,batchcode);
}else{
contractcode = odgd.getContractCode();
}
}
return 0;
}
}

7
src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java

@ -1,16 +1,11 @@
package cn.chjyj.szwh.utils;
import cn.chjyj.szwh.service.impl.UserServiceImpl;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import jdk.nashorn.internal.scripts.JO;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.client.utils.URIBuilder;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
@ -180,7 +175,7 @@ public class SzwhApiUtils {
String tlangHost= ProperUtils.getSzwhProp("TIANLANG_ENTRUST_URL");
String url=tlangHost+"/consignation/v1/applylinkcode";
// 使用的token
String sign=SignUtils.createSign("apply_code");
String sign=SignUtils.createSign("entrust");
Map hmap = new HashMap();
hmap.put("cloudhub_token",sign);
hmap.put("Content-Type","application/json");

6
src/main/resources/mapper/szwh/GoodsDetailMapper.xml

@ -100,4 +100,10 @@
where id=#{id};
</update>
<!-- 减库存-->
<update id="decGoodsDetailStock" parameterType="java.lang.Integer">
update <include refid="tbName"/>
set stock=stock-1
where id=#{id}
</update>
</mapper>

7
src/main/resources/mapper/szwh/GoodsMapper.xml

@ -300,4 +300,11 @@
where id=#{id}
</update>
<!-- 商品状态-->
<update id="updateGoodsStatus" parameterType="java.lang.Integer">
update <include refid="tbName"/>
set goods_status=#{status}
where id=#{gid};
</update>
</mapper>

6
src/main/resources/mapper/szwh/OrderMapper.xml

@ -70,7 +70,7 @@
<foreach collection="map" item="v" index="k" separator="and">
<if test="v != null and v != '' and k!='id' and k!='charges_type'
and k!='buyin' and k!='bcin' and k!='name' and k!='createtime'
and k!='goods_name' and k!='goods_entrust'">
and k!='goods_name' and k!='goods_entrust' and k!=paymenttime">
${k} = #{v}
</if>
<if test="k=='id'">
@ -94,6 +94,10 @@
<if test="k=='createtime'">
${v}
</if>
<!-- paymenttime -->
<if test="k==paymenttime">
${v}
</if>
</foreach>
</if>
</where>

40
src/main/resources/mapper/szwh/UserAccountBillMapper.xml

@ -37,37 +37,23 @@
</select>
<!--新增用户-->
<insert id="addUser" parameterType="cn.chjyj.szwh.bean.Goods" useGeneratedKeys="true" keyColumn="uid">
<insert id="addUserAccBill" parameterType="cn.chjyj.szwh.bean.UserAccountBill" useGeneratedKeys="true" keyColumn="uid">
insert into
<include refid="tbName"/>
(user_isli,username,institution_code,agency_type,cert_type,idNumber,cell_phone,
bank_account,legals_name,legals_type,legals_idnum,legals_phone,bank_card_type,
bank_type,bank_name,bank_username,bank_userid,bank_userphone,bank_address,attest_status,
registertime,attesttime
(user_isli,batchcode,order_user_id,center_number,
center_name ,service_number ,service_name ,
service_charge ,thatday_buy_money ,preliminary_capital,
available_capital ,disburse_capital ,entrust_cost ,
thatday_sale_money ,service_charge_allot ,capital_remaining ,
freeze_earnest_money ,createtime,close_time
)
values (
#{userIsli},
#{username},
#{institutionCode},
#{agencyType},
#{certType},
#{idNumber},
#{cellPhone},
#{bankAccount},
#{legalsName},
#{legalsType},
#{legalsIdnum},
#{legalsPhone},
#{bankCardType},
#{bankType},
#{bankName},
#{bankUsername},
#{bankUserid},
#{bankUserphone},
#{bankAddress},
#{attestStatus},
#{registertime},
#{attesttime}
#{userIsli},#{batchcode},#{orderUserId},#{centerNumber},
#{centerNumber},#{serviceNumber},#{serviceName},
#{serviceCharge},#{thatdayBuyMoney},#{preliminaryCapital},
#{availableCapital},#{disburseCapital},#{entrustCost},
#{thatdaySaleMoney},#{serviceChargeAllot},#{capitalRemaining},
#{freezeEarnestMoney},#{createtime},#{closeTime}
)
</insert>

Loading…
Cancel
Save