Browse Source

修改创建规则的bug

master
xyiege 4 years ago
parent
commit
36a6b3683b
  1. 19
      src/main/java/cn/chjyj/szwh/controller/admin/AdminAccountCloseController.java
  2. 7
      src/main/java/cn/chjyj/szwh/mapper/AccountRatioDetailMapper.java
  3. 7
      src/main/java/cn/chjyj/szwh/mapper/AccountRatioSettingMapper.java
  4. 13
      src/main/java/cn/chjyj/szwh/service/AccountCloseService.java
  5. 72
      src/main/java/cn/chjyj/szwh/service/impl/AccountCloseServiceImpl.java
  6. 19
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  7. 12
      src/main/resources/mapper/szwh/AccountRatioDetailMapper.xml
  8. 11
      src/main/resources/mapper/szwh/AccountRatioSettingMapper.xml
  9. 18
      src/test/java/cn/chjyj/szwh/mapper/AccountRatioSettingMapperTest.java

19
src/main/java/cn/chjyj/szwh/controller/admin/AdminAccountCloseController.java

@ -4,6 +4,7 @@ import cn.chjyj.szwh.bean.AccountRatioDetail;
import cn.chjyj.szwh.controller.BaseController;
import cn.chjyj.szwh.service.AccountCloseService;
import cn.chjyj.szwh.service.UserService;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -213,4 +214,22 @@ public class AdminAccountCloseController extends BaseController {
jsonObject.put("msg","成功");
return jsonObject;
}
/**
* 创建分配比例
* @return
*/
@PostMapping("/setRatio")
public JSONObject setRatio(@RequestBody String sstr){
JSONObject request = JSONObject.parseObject(sstr);
//规则名称
String ruleName=request.getString("rule_name");
JSONArray ratio = request.getJSONArray("ratio");
// 执行结果
Map rmap =accountCloseService.setRatio(ruleName,ratio,userid);
jsonObject.put("msg",rmap.get("msg"));
jsonObject.put("code",rmap.get("code"));
return jsonObject;
}
}

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

@ -23,4 +23,11 @@ public interface AccountRatioDetailMapper {
* @return
*/
List<AccountRatioDetail> getAccRatioDetailBySettingId(Integer settingId);
/**
* 新增
* @param accountRatioDetail
* @return
*/
int addAcDetail(AccountRatioDetail accountRatioDetail);
}

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

@ -49,4 +49,11 @@ public interface AccountRatioSettingMapper {
* @return
*/
int ratioStatus(@Param("status") Integer status,@Param("id") Integer id);
/**
* 新增设置
* @param accountRatioSetting
* @return
*/
int addAcrSetting(AccountRatioSetting accountRatioSetting);
}

13
src/main/java/cn/chjyj/szwh/service/AccountCloseService.java

@ -1,8 +1,6 @@
package cn.chjyj.szwh.service;
import cn.chjyj.szwh.bean.AccountRatioDetail;
import cn.chjyj.szwh.bean.PaySetting;
import org.apache.ibatis.annotations.Param;
import com.alibaba.fastjson.JSONArray;
import java.util.List;
import java.util.Map;
@ -67,4 +65,13 @@ public interface AccountCloseService {
* @return
*/
Map<String,Object> getBillDetail(String uesrIsli,int ipage,int ilimit);
/**
* 设置分配比例
* @param ruleName
* @param jsonArray
* @param adminId
* @return
*/
Map<String,Object> setRatio(String ruleName, JSONArray jsonArray,int adminId);
}

72
src/main/java/cn/chjyj/szwh/service/impl/AccountCloseServiceImpl.java

@ -6,6 +6,7 @@ import cn.chjyj.szwh.mapper.*;
import cn.chjyj.szwh.service.AccountCloseService;
import cn.chjyj.szwh.vo.SettleVo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -14,10 +15,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
public class AccountCloseServiceImpl implements AccountCloseService {
@ -282,4 +280,70 @@ public class AccountCloseServiceImpl implements AccountCloseService {
retmap.put("data",retlist);
return retmap;
}
@Override
public Map<String, Object> setRatio(String ruleName, JSONArray jsonArray, int adminId) {
String msg="成功";
int code=200;
//组装ratioSetting
AccountRatioSetting act = new AccountRatioSetting();
// Calendar calendar = Calendar.getInstance();
// Date now = calendar.getTime();
// ? 保存格式是否需要调整
// act.setCreatetime(now);
act.setUserId(adminId);
act.setRuleName(ruleName);
// 保存成功,并返回自编号
int actId=accountRatioSettingMapper.addAcrSetting(act);
// accountRatioDetail
int sumRation=0;// 统计平台放和委托方的结算比例
for(int i=0;i<jsonArray.size();i++){
AccountRatioDetail acrd = new AccountRatioDetail();
// setting id由上面的返回
acrd.setSettingId(act.getId());
JSONObject tmpjson = (JSONObject) jsonArray.get(i);
Integer roleType=tmpjson.getInteger("role_type");
acrd.setRoleType(roleType);
Integer costType=tmpjson.getInteger("cost_type");
acrd.setCostType(costType);
String sratio=tmpjson.getString("ratio");
if(StringUtils.isNotBlank(sratio)){
BigDecimal ratio = new BigDecimal(sratio);
acrd.setRatio(ratio);
// 判断处理
if((roleType==1 || costType==3) && sumRation!=100){
// 仅作整数部分计算
sumRation+=ratio.intValue();
}else{
code=400;
msg="委托方与平台方比例之和未等于100,创建失败";
break; //跳出循环
}
}
Integer calculate =tmpjson.getInteger("calculate");
acrd.setCalculate(calculate);
//金额
String samount=tmpjson.getString("amount");
if(StringUtils.isNotBlank(samount)){
BigDecimal amount=new BigDecimal(samount);
acrd.setAmount(amount);
}
// 入库
accountRatioDetailMapper.addAcDetail(acrd);
}
Map retmap = new HashMap();
retmap.put("code",code);
retmap.put("msg",msg);
return retmap;
}
}

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

@ -285,10 +285,13 @@ public class OrderServiceImpl implements OrderService {
public Map<String,Object> orderInfo(String bathcode) {
Map retmap =new HashMap();
int code=200;
// 订单基础信息
Order bsod = orderMapper.getOrderByBatchcode(bathcode);
retmap.put("order",bsod);
// 订单基础信息 todo fix
Map bsodmap = new HashMap();
Order bsod = orderMapper.getOrderByBatchcode(bathcode);
bsodmap.put("goods_price","0.00");
bsodmap.put("total_service_charge","0.20");
retmap.put("order",bsodmap);
if(bsod==null){
@ -378,11 +381,21 @@ public class OrderServiceImpl implements OrderService {
Map buymap =new HashMap();
OrderUser buyuser= orderUserMapper.getUserOrder(bathcode,bsod.getBuyIslicode());
buymap.put("userType",buyuser.getUsertype());
buymap.put("uscc",buyuser.getUscc());
buymap.put("name",buyuser.getName());
buymap.put("islicode",buyuser.getIslicode());
buymap.put("state",buyuser.getState());
retmap.put("buyuser",buymap);
//分账比例
AccountRatioSetting acrsetting = accountRatioSettingMapper.getAccRatioSettingById(bsod.getAccountRatioId());
List<AccountRatioDetail> acrdetailList = accountRatioDetailMapper.getAccRatioDetailBySettingId(acrsetting.getId());
// $entrust_number = 0;
// if($entrust_ratio_detail['calculate'] == 1){
// $entrust_number = $entrust_ratio_detail['ratio'];
// }else{
// $entrust_number = $entrust_ratio_detail['amount'];
// }
retmap.put("ratio_setting",acrdetailList);
// 资金结算表

12
src/main/resources/mapper/szwh/AccountRatioDetailMapper.xml

@ -34,13 +34,17 @@
</select>
<!--新增用户 id 自增加-->
<insert id="addAdmin" parameterType="cn.chjyj.szwh.bean.AccountRatioDetail" useGeneratedKeys="true" keyColumn="id">
<insert id="addAcDetail" parameterType="cn.chjyj.szwh.bean.AccountRatioDetail" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into
<include refid="tbName"/>
(account_name,account_id)
(role_type,cost_type,calculate,amount,ratio,setting_id)
values (
#{accountName},
#{accountId}
#{roleType},
#{costType},
#{calculate},
#{amount},
#{ratio},
#{settingId}
)
</insert>

11
src/main/resources/mapper/szwh/AccountRatioSettingMapper.xml

@ -81,14 +81,15 @@
<include refid="tbName"/>
</select>
<!--新增用户 id 自增加-->
<insert id="addAdmin" parameterType="cn.chjyj.szwh.bean.AccountRatioSetting" useGeneratedKeys="true" keyColumn="id">
<!--新增setting id 自增加-->
<insert id="addAcrSetting" parameterType="cn.chjyj.szwh.bean.AccountRatioSetting" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into
<include refid="tbName"/>
(account_name,account_id)
(rule_name,user_id,createtime)
values (
#{accountName},
#{accountId}
#{ruleName},
#{userId},
#{createtime}
)
</insert>

18
src/test/java/cn/chjyj/szwh/mapper/AccountRatioSettingMapperTest.java

@ -8,9 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import static org.junit.Assert.*;
@ -43,4 +41,18 @@ public class AccountRatioSettingMapperTest {
int ret = accountRatioSettingMapper.countAccountRatioSetting(imap);
System.out.println("共有: "+ret);
}
@Test
public void addacs(){
AccountRatioSetting acs = new AccountRatioSetting();
acs.setRuleName("tsts");
acs.setUserId(1);
acs.setIsDeleted(0);
Calendar calendar = Calendar.getInstance();
Date crte = calendar.getTime();
acs.setCreatetime(crte);
//
accountRatioSettingMapper.addAcrSetting(acs);
System.out.println(acs.getId());
}
}
Loading…
Cancel
Save