发表于: 2018-03-26 20:31:41
1 370
今日完成
1.更换用户默认银行卡接口
/**
* 前台:更换默认银行卡
*
* @param model
* @param id
* @return
* @throws Exception
*/
@RequestMapping(value = "/a/u/userBank/{id}", method = RequestMethod.PUT, produces = "text/html;charset=UTF-8")
@ResponseBody
public String updateUserBankJson(@PathVariable("id") Long id, ModelMap model, Long userBankId) throws Exception {
log.info("update userBank : userBankId= " + userBankId);
JSONObject a = new JSONObject();
if (CommonUtil.isEmpty(id, userBankId)) {
a.put("code", -200000);
a.put("message", "necessary param missing");
return a.toString();
}
try {
List<Long> userBankIds = userBankService.getUserBankIdsByUserId(id, 0, Integer.MAX_VALUE);
List<UserBank> userBanks = userBankService.getObjectsByIds(userBankIds);
for (UserBank bank : userBanks) {
bank.setFirst(0);
if (bank.getId().equals(userBankId)) {
bank.setFirst(1);
}
}
Boolean flag = userBankService.updateList(userBanks);
if (flag) {
a.put("code", 0);
a.put("message", "success");
}
} catch (Throwable t) {
t.printStackTrace();
log.error(t.getMessage());
log.error("update userBank error,id is " + userBankId);
a.put("code", -100000);
a.put("message", "Server has something wrong");
}
return a.toString();
}
2.用户添加银行卡
/**
* 前台:用户添加银行卡
*(只能绑定两张)
* @param model
* @param id 用户id
* @return
* @throws Exception
*/
@RequestMapping(value = "/a/u/userBank/{id}", method = RequestMethod.POST)
public String addUserBankJson(@PathVariable("id") Long id, ModelMap model, String city, String bankName, String cardNo, String bankPhone, Long bankListId) throws Exception {
log.info("insert userBank : userId= " + id + " bankname= " + bankName + " cardNo= " + cardNo);
UserBank userBank = new UserBank();
if (CommonUtil.isEmpty(id, cardNo, city, bankName, bankPhone)) {
model.addAttribute("code", -200000);
return "/polyFinance-lgd-server/userBank/json/userBankDetailJson";
}
try {
userBank.setId(null);
userBank.setUserId(id);
userBank.setCardNo(cardNo);
userBank.setBankName(bankName);
userBank.setCity(city);
userBank.setBankPhone(bankPhone);
userBank.setCreateBy(id);
userBank.setBankListId(bankListId);
List<Long> ids = userBankService.getUserBankIdsByUserId(id, 0, Integer.MAX_VALUE);
if (ids.size() == 0) {
userBank.setFirst(1);
} else if (ids.size() == 2) {
model.addAttribute("code", -3001);
return "/polyFinance-lgd-server/userBank/json/userBankDetailJson";
}
userBankService.insert(userBank);
model.addAttribute("code", 0);
} catch (Throwable t) {
t.printStackTrace();
log.error(t.getMessage());
log.error("add userBank error ");
model.addAttribute("code", -100000);
}
return "/polyFinance-lgd-server/userBank/json/userBankDetailJson";
}
3.后台:解绑银行卡
/**
* 后台:解绑用户银行卡
* @param model
* @param id 用户id
* @param userBankId 用户银行卡id
* @return
* @throws Exception
*/
@RequestMapping(value = "/a/u/userBank/{id}/{userBankId}", method = RequestMethod.DELETE, produces = "text/html;charset=UTF-8")
@ResponseBody
public String deleteUserBankJson(ModelMap model, @PathVariable Long id, @PathVariable Long userBankId) throws Exception {
log.info("delete userBank : id= " + id + " ;userBankId + " + userBankId);
JSONObject a = new JSONObject();
if (CommonUtil.isEmpty(id, userBankId)) {
a.put("code", -200000);
a.put("message", "necessary param missing");
return a.toString();
}
try {
List<Long> ids = userBankService.getUserBankIdsByUserId(id, 0, Integer.MAX_VALUE);
List<UserBank> userBanks = userBankService.getObjectsByIds(ids);
for (UserBank bank : userBanks) {
bank.setFirst(1);
if (bank.getId().equals(userBankId)) {
bank.setFirst(0);
}
}
userBankService.updateList(userBanks);
userBankService.delete(userBankId);
log.info("update userBank success");
a.put("code", 0);
a.put("message", "success");
} catch (Throwable t) {
t.printStackTrace();
log.error(t.getMessage());
log.error("delete userBank error , id= " + id + " ;userBankId + " + userBankId);
model.addAttribute("code", -6004);
}
return a.toString();
}
4.了解了一下spring事务的使用方法
先实现,再研究一些理论知识。
(1)基于注解方式的事务管理
mybatis,jdbc 使用DataSourceTransactionManager的事务管理器,将数据源注入
<bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager1"/>
</beans>
第二步,在需要进行事务管理的类或者方法上加上@Transactional标签,相应的属性也配置在其中。
@Autowired
StudentMapper studentMapper;
@Transactional
public void update() {
Student a = new Student();
a.setId(1);
a.setName("王9");
System.out.println(studentMapper.updateStudentById(a));
// int aaa = 1 / 0;
Student b = new Student();
b.setId(2);
b.setName("王10");
System.out.println(studentMapper.updateStudentById(b));
}
}
如果在两次更新过程中出现了异常,那么将进行回滚。
遇到问题
1.公司封装的框架还没搞清楚怎么使用事务。
明日计划
1.支付接口的完成。
收获
1.了解事务的原理
评论